Spaces:
Running
Running
add user workspace
Browse files
app.py
CHANGED
@@ -5,12 +5,33 @@ from typing import Dict
|
|
5 |
import streamlit as st
|
6 |
import yaml
|
7 |
from loguru import logger as _logger
|
|
|
|
|
8 |
|
9 |
from metagpt.const import METAGPT_ROOT
|
10 |
from metagpt.ext.spo.components.optimizer import PromptOptimizer
|
11 |
from metagpt.ext.spo.utils.llm_client import SPO_LLM, RequestType
|
12 |
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
def load_yaml_template(template_path: Path) -> Dict:
|
15 |
if template_path.exists():
|
16 |
with open(template_path, "r", encoding="utf-8") as f:
|
@@ -76,6 +97,8 @@ def main():
|
|
76 |
if "optimization_results" not in st.session_state:
|
77 |
st.session_state.optimization_results = []
|
78 |
|
|
|
|
|
79 |
st.title("SPO | Self-Supervised Prompt Optimization 🤖")
|
80 |
|
81 |
# Sidebar for configurations
|
@@ -213,7 +236,7 @@ def main():
|
|
213 |
|
214 |
# Create optimizer instance
|
215 |
optimizer = PromptOptimizer(
|
216 |
-
optimized_path=
|
217 |
initial_round=initial_round,
|
218 |
max_rounds=max_rounds,
|
219 |
template=f"{template_name}.yaml",
|
|
|
5 |
import streamlit as st
|
6 |
import yaml
|
7 |
from loguru import logger as _logger
|
8 |
+
import shutil
|
9 |
+
import uuid
|
10 |
|
11 |
from metagpt.const import METAGPT_ROOT
|
12 |
from metagpt.ext.spo.components.optimizer import PromptOptimizer
|
13 |
from metagpt.ext.spo.utils.llm_client import SPO_LLM, RequestType
|
14 |
|
15 |
|
16 |
+
|
17 |
+
def get_user_workspace():
|
18 |
+
if "user_id" not in st.session_state:
|
19 |
+
st.session_state.user_id = str(uuid.uuid4())
|
20 |
+
|
21 |
+
workspace_dir = Path("workspace") / st.session_state.user_id
|
22 |
+
workspace_dir.mkdir(parents=True, exist_ok=True)
|
23 |
+
return workspace_dir
|
24 |
+
|
25 |
+
def cleanup_workspace(workspace_dir: Path) -> None:
|
26 |
+
try:
|
27 |
+
if workspace_dir.exists():
|
28 |
+
shutil.rmtree(workspace_dir)
|
29 |
+
_logger.info(f"Cleaned up workspace directory: {workspace_dir}")
|
30 |
+
except Exception as e:
|
31 |
+
_logger.error(f"Error cleaning up workspace: {e}")
|
32 |
+
|
33 |
+
|
34 |
+
|
35 |
def load_yaml_template(template_path: Path) -> Dict:
|
36 |
if template_path.exists():
|
37 |
with open(template_path, "r", encoding="utf-8") as f:
|
|
|
97 |
if "optimization_results" not in st.session_state:
|
98 |
st.session_state.optimization_results = []
|
99 |
|
100 |
+
workspace_dir = get_user_workspace()
|
101 |
+
|
102 |
st.title("SPO | Self-Supervised Prompt Optimization 🤖")
|
103 |
|
104 |
# Sidebar for configurations
|
|
|
236 |
|
237 |
# Create optimizer instance
|
238 |
optimizer = PromptOptimizer(
|
239 |
+
optimized_path=str(workspace_dir),
|
240 |
initial_round=initial_round,
|
241 |
max_rounds=max_rounds,
|
242 |
template=f"{template_name}.yaml",
|