Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -51,6 +51,14 @@ chat_model = AutoModelForSeq2SeqLM.from_pretrained("microsoft/DialoGPT-medium")
|
|
51 |
# Load tokenizer
|
52 |
tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-medium")
|
53 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
def process_input(user_input):
|
55 |
# Input pipeline: Tokenize and preprocess user input
|
56 |
input_ids = tokenizer(user_input, return_tensors="pt").input_ids
|
@@ -70,7 +78,8 @@ def process_input(user_input):
|
|
70 |
# Output pipeline: Return final response
|
71 |
return refined_response
|
72 |
|
73 |
-
|
|
|
74 |
project_path = os.path.join(PROJECT_ROOT, project_name)
|
75 |
if os.path.exists(project_path):
|
76 |
return f"Project '{project_name}' already exists."
|
@@ -79,7 +88,8 @@ def workspace_interface(project_name):
|
|
79 |
st.session_state.workspace_projects[project_name] = {'files': []}
|
80 |
return f"Project '{project_name}' created successfully."
|
81 |
|
82 |
-
|
|
|
83 |
project_path = os.path.join(PROJECT_ROOT, project_name)
|
84 |
if not os.path.exists(project_path):
|
85 |
return f"Project '{project_name}' does not exist."
|
@@ -94,6 +104,7 @@ def add_code_to_workspace(project_name, code, file_name):
|
|
94 |
logging.error(f"Error adding code: {file_name}: {e}")
|
95 |
return f"Error adding code: {file_name}"
|
96 |
|
|
|
97 |
def run_code(command, project_name=None):
|
98 |
if project_name:
|
99 |
project_path = os.path.join(PROJECT_ROOT, project_name)
|
@@ -102,12 +113,14 @@ def run_code(command, project_name=None):
|
|
102 |
result = subprocess.run(command, shell=True, capture_output=True, text=True)
|
103 |
return result.stdout
|
104 |
|
|
|
105 |
def display_chat_history(history):
|
106 |
chat_history = ""
|
107 |
for user_input, response in history:
|
108 |
chat_history += f"User: {user_input}\nAgent: {response}\n\n"
|
109 |
return chat_history
|
110 |
|
|
|
111 |
def display_workspace_projects(projects):
|
112 |
workspace_projects = ""
|
113 |
for project, details in projects.items():
|
@@ -116,6 +129,7 @@ def display_workspace_projects(projects):
|
|
116 |
workspace_projects += f" - {file}\n"
|
117 |
return workspace_projects
|
118 |
|
|
|
119 |
def download_models():
|
120 |
for model in AVAILABLE_CODE_GENERATIVE_MODELS:
|
121 |
try:
|
@@ -124,6 +138,7 @@ def download_models():
|
|
124 |
except Exception as e:
|
125 |
logging.error(f"Error downloading model '{model}': {e}")
|
126 |
|
|
|
127 |
def deploy_space_to_hf(project_name, hf_token):
|
128 |
repository_name = f"my-awesome-space_{datetime.now().timestamp()}"
|
129 |
files = get_built_space_files()
|
@@ -134,6 +149,7 @@ def deploy_space_to_hf(project_name, hf_token):
|
|
134 |
else:
|
135 |
return "Failed to commit changes to Space."
|
136 |
|
|
|
137 |
def get_built_space_files():
|
138 |
projects = st.session_state.workspace_projects
|
139 |
files = []
|
@@ -144,6 +160,7 @@ def get_built_space_files():
|
|
144 |
files.append(file.read())
|
145 |
return files
|
146 |
|
|
|
147 |
def deploy_to_git(project_name, repository_name, files):
|
148 |
project_path = os.path.join(PROJECT_ROOT, project_name)
|
149 |
git_repo_url = hf_hub_url(repository_name)
|
@@ -166,16 +183,18 @@ def deploy_to_git(project_name, repository_name, files):
|
|
166 |
|
167 |
return git.returncode == 0
|
168 |
|
|
|
169 |
def publish_space(repository_name, hf_token):
|
170 |
api = HfApi(token=hf_token)
|
171 |
api.create_model(repository_name, files=[], push_to_hub=True)
|
172 |
|
|
|
173 |
def handle_autonomous_build():
|
174 |
if not st.session_state.workspace_projects or not st.session_state.available_agents:
|
175 |
st.error("No projects or agents available to build.")
|
176 |
return
|
177 |
|
178 |
-
project_name = st.session_state.workspace_projects.keys()[0]
|
179 |
selected_agent = st.session_state.available_agents[0]
|
180 |
code_idea = st.session_state.current_state["workspace_chat"]["user_input"]
|
181 |
code_generative_model = next((model for model in AVAILABLE_CODE_GENERATIVE_MODELS if model in st.session_state.current_state["toolbox"]["selected_models"]), None)
|
@@ -201,6 +220,7 @@ def handle_autonomous_build():
|
|
201 |
logging.error(f"Error during build process: {e}")
|
202 |
st.error("Error during build process.")
|
203 |
|
|
|
204 |
def build_project(project_name, agent, code_idea, code_generative_model):
|
205 |
# TODO: Add code to build the project here
|
206 |
# This could include generating code, running it, and updating the workspace projects
|
@@ -209,6 +229,7 @@ def build_project(project_name, agent, code_idea, code_generative_model):
|
|
209 |
next_step = ""
|
210 |
return summary, next_step
|
211 |
|
|
|
212 |
def main():
|
213 |
# Initialize the app
|
214 |
st.title("AI Agent Creator")
|
@@ -257,13 +278,13 @@ def main():
|
|
257 |
st.subheader("Project Management")
|
258 |
project_name_input = st.text_input("Enter Project Name:")
|
259 |
if st.button("Create Project"):
|
260 |
-
status =
|
261 |
st.write(status)
|
262 |
|
263 |
code_to_add = st.text_area("Enter Code to Add to Workspace:", height=150)
|
264 |
file_name_input = st.text_input("Enter File Name (e.g., 'app.py'):")
|
265 |
if st.button("Add Code"):
|
266 |
-
status =
|
267 |
st.write(status)
|
268 |
|
269 |
# Display Chat History
|
|
|
51 |
# Load tokenizer
|
52 |
tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-medium")
|
53 |
|
54 |
+
# Define a class for the AI Agent
|
55 |
+
class AIAgent:
|
56 |
+
def __init__(self, name, description, skills):
|
57 |
+
self.name = name
|
58 |
+
self.description = description
|
59 |
+
self.skills = skills
|
60 |
+
|
61 |
+
# Define a function to process user input
|
62 |
def process_input(user_input):
|
63 |
# Input pipeline: Tokenize and preprocess user input
|
64 |
input_ids = tokenizer(user_input, return_tensors="pt").input_ids
|
|
|
78 |
# Output pipeline: Return final response
|
79 |
return refined_response
|
80 |
|
81 |
+
# Define a function to create a new project
|
82 |
+
def create_project(project_name):
|
83 |
project_path = os.path.join(PROJECT_ROOT, project_name)
|
84 |
if os.path.exists(project_path):
|
85 |
return f"Project '{project_name}' already exists."
|
|
|
88 |
st.session_state.workspace_projects[project_name] = {'files': []}
|
89 |
return f"Project '{project_name}' created successfully."
|
90 |
|
91 |
+
# Define a function to add code to a project
|
92 |
+
def add_code_to_project(project_name, code, file_name):
|
93 |
project_path = os.path.join(PROJECT_ROOT, project_name)
|
94 |
if not os.path.exists(project_path):
|
95 |
return f"Project '{project_name}' does not exist."
|
|
|
104 |
logging.error(f"Error adding code: {file_name}: {e}")
|
105 |
return f"Error adding code: {file_name}"
|
106 |
|
107 |
+
# Define a function to run code
|
108 |
def run_code(command, project_name=None):
|
109 |
if project_name:
|
110 |
project_path = os.path.join(PROJECT_ROOT, project_name)
|
|
|
113 |
result = subprocess.run(command, shell=True, capture_output=True, text=True)
|
114 |
return result.stdout
|
115 |
|
116 |
+
# Define a function to display chat history
|
117 |
def display_chat_history(history):
|
118 |
chat_history = ""
|
119 |
for user_input, response in history:
|
120 |
chat_history += f"User: {user_input}\nAgent: {response}\n\n"
|
121 |
return chat_history
|
122 |
|
123 |
+
# Define a function to display workspace projects
|
124 |
def display_workspace_projects(projects):
|
125 |
workspace_projects = ""
|
126 |
for project, details in projects.items():
|
|
|
129 |
workspace_projects += f" - {file}\n"
|
130 |
return workspace_projects
|
131 |
|
132 |
+
# Define a function to download models
|
133 |
def download_models():
|
134 |
for model in AVAILABLE_CODE_GENERATIVE_MODELS:
|
135 |
try:
|
|
|
138 |
except Exception as e:
|
139 |
logging.error(f"Error downloading model '{model}': {e}")
|
140 |
|
141 |
+
# Define a function to deploy a space to Hugging Face Hub
|
142 |
def deploy_space_to_hf(project_name, hf_token):
|
143 |
repository_name = f"my-awesome-space_{datetime.now().timestamp()}"
|
144 |
files = get_built_space_files()
|
|
|
149 |
else:
|
150 |
return "Failed to commit changes to Space."
|
151 |
|
152 |
+
# Define a function to get built space files
|
153 |
def get_built_space_files():
|
154 |
projects = st.session_state.workspace_projects
|
155 |
files = []
|
|
|
160 |
files.append(file.read())
|
161 |
return files
|
162 |
|
163 |
+
# Define a function to deploy to Git
|
164 |
def deploy_to_git(project_name, repository_name, files):
|
165 |
project_path = os.path.join(PROJECT_ROOT, project_name)
|
166 |
git_repo_url = hf_hub_url(repository_name)
|
|
|
183 |
|
184 |
return git.returncode == 0
|
185 |
|
186 |
+
# Define a function to publish a space
|
187 |
def publish_space(repository_name, hf_token):
|
188 |
api = HfApi(token=hf_token)
|
189 |
api.create_model(repository_name, files=[], push_to_hub=True)
|
190 |
|
191 |
+
# Define a function to handle autonomous build
|
192 |
def handle_autonomous_build():
|
193 |
if not st.session_state.workspace_projects or not st.session_state.available_agents:
|
194 |
st.error("No projects or agents available to build.")
|
195 |
return
|
196 |
|
197 |
+
project_name = list(st.session_state.workspace_projects.keys())[0]
|
198 |
selected_agent = st.session_state.available_agents[0]
|
199 |
code_idea = st.session_state.current_state["workspace_chat"]["user_input"]
|
200 |
code_generative_model = next((model for model in AVAILABLE_CODE_GENERATIVE_MODELS if model in st.session_state.current_state["toolbox"]["selected_models"]), None)
|
|
|
220 |
logging.error(f"Error during build process: {e}")
|
221 |
st.error("Error during build process.")
|
222 |
|
223 |
+
# Define a function to build a project
|
224 |
def build_project(project_name, agent, code_idea, code_generative_model):
|
225 |
# TODO: Add code to build the project here
|
226 |
# This could include generating code, running it, and updating the workspace projects
|
|
|
229 |
next_step = ""
|
230 |
return summary, next_step
|
231 |
|
232 |
+
# Define the main function
|
233 |
def main():
|
234 |
# Initialize the app
|
235 |
st.title("AI Agent Creator")
|
|
|
278 |
st.subheader("Project Management")
|
279 |
project_name_input = st.text_input("Enter Project Name:")
|
280 |
if st.button("Create Project"):
|
281 |
+
status = create_project(project_name_input)
|
282 |
st.write(status)
|
283 |
|
284 |
code_to_add = st.text_area("Enter Code to Add to Workspace:", height=150)
|
285 |
file_name_input = st.text_input("Enter File Name (e.g., 'app.py'):")
|
286 |
if st.button("Add Code"):
|
287 |
+
status = add_code_to_project(project_name_input, code_to_add, file_name_input)
|
288 |
st.write(status)
|
289 |
|
290 |
# Display Chat History
|