acecalisto3 commited on
Commit
e4fd1d6
·
verified ·
1 Parent(s): dc81bad

Update app2.py

Browse files
Files changed (1) hide show
  1. app2.py +21 -9
app2.py CHANGED
@@ -1,9 +1,11 @@
 
1
  import streamlit as st
2
- from langchain.utilities import GoogleSearchAPIWrapper # Corrected import
3
  from langchain.chains import ConversationChain
4
  from langchain.memory import ConversationBufferMemory
5
  import subprocess
6
  import git
 
7
 
8
  # API Key Input
9
  if "GOOGLE_API_KEY" not in st.session_state:
@@ -73,10 +75,14 @@ if st.session_state.GOOGLE_API_KEY:
73
  return f"An unexpected error occurred while running the command."
74
 
75
  def get_agent_response(message: str, system_prompt: str):
76
- llm = GoogleSearchAPIWrapper(google_api_key=st.session_state.GOOGLE_API_KEY) # Access API key from session state
 
77
  memory = ConversationBufferMemory()
78
  conversation = ConversationChain(llm=llm, memory=memory)
79
- response = conversation.run(system_prompt + "\n" + message)
 
 
 
80
  return response
81
 
82
  def display_agent_info(agent_name: str):
@@ -102,7 +108,9 @@ if st.session_state.GOOGLE_API_KEY:
102
  st.info("Starting autonomous build process...")
103
  for agent in selected_agents:
104
  st.write(f"Agent {agent} is working on the project...")
105
- code = get_agent_response(f"Generate code for a simple web application in project {project_name}", agents[agent]['system_prompt'])
 
 
106
  add_code_to_workspace(project_name, code, f"{agent.lower()}_app.py")
107
  st.write(f"Agent {agent} has completed its task.")
108
  st.success("Autonomous build process completed!")
@@ -122,6 +130,7 @@ if st.session_state.GOOGLE_API_KEY:
122
  def combine_and_process_responses(responses: dict[str, str], task: str) -> str:
123
  combined = "\n\n".join([f"{agent}: {response}" for agent, response in responses.items()])
124
  return f"Combined response for task '{task}':\n\n{combined}"
 
125
  # Streamlit UI
126
  st.title("DevToolKit: AI-Powered Development Environment")
127
 
@@ -132,6 +141,8 @@ if st.session_state.GOOGLE_API_KEY:
132
  if project_name and project_name not in st.session_state.workspace_projects:
133
  st.session_state.workspace_projects[project_name] = {'files': []}
134
  st.success(f"Created project: {project_name}")
 
 
135
  elif project_name in st.session_state.workspace_projects:
136
  st.warning(f"Project {project_name} already exists")
137
  else:
@@ -140,17 +151,18 @@ if st.session_state.GOOGLE_API_KEY:
140
  # Code Editor
141
  st.subheader("Code Editor")
142
  if st.session_state.workspace_projects:
143
- selected_project = st.selectbox("Select project", list(st.session_state.workspace_projects.keys()))
144
- if selected_project:
145
- files = [file['file_name'] for file in st.session_state.workspace_projects[selected_project]['files']]
146
- selected_file = st.selectbox("Select file to edit", files) if files else None
147
  if selected_file:
148
  file_content = next((file['code'] for file in st.session_state.workspace_projects[selected_project]['files'] if file['file_name'] == selected_file), "")
149
- edited_code = st.text_area("Edit code", value=file_content, height=300) # Using st.text_area for now
150
  if st.button("Save Changes"):
151
  for file in st.session_state.workspace_projects[selected_project]['files']:
152
  if file['file_name'] == selected_file:
153
  file['code'] = edited_code
 
 
 
 
154
  st.success("Changes saved successfully!")
155
  break
156
  else:
 
1
+ import os
2
  import streamlit as st
3
+ from langchain.utilities import GoogleSearchAPIWrapper
4
  from langchain.chains import ConversationChain
5
  from langchain.memory import ConversationBufferMemory
6
  import subprocess
7
  import git
8
+ import logging
9
 
10
  # API Key Input
11
  if "GOOGLE_API_KEY" not in st.session_state:
 
75
  return f"An unexpected error occurred while running the command."
76
 
77
  def get_agent_response(message: str, system_prompt: str):
78
+ # Access API key from session state
79
+ llm = GoogleSearchAPIWrapper(google_api_key=st.session_state.GOOGLE_API_KEY)
80
  memory = ConversationBufferMemory()
81
  conversation = ConversationChain(llm=llm, memory=memory)
82
+
83
+ # Combine system prompt and user message
84
+ full_prompt = f"{system_prompt}\n{message}"
85
+ response = conversation.run(full_prompt)
86
  return response
87
 
88
  def display_agent_info(agent_name: str):
 
108
  st.info("Starting autonomous build process...")
109
  for agent in selected_agents:
110
  st.write(f"Agent {agent} is working on the project...")
111
+ # More specific prompt for code generation
112
+ prompt = f"Generate Python code for a simple web application using Flask framework in project {project_name}. Include instructions for running the application."
113
+ code = get_agent_response(prompt, agents[agent]['system_prompt'])
114
  add_code_to_workspace(project_name, code, f"{agent.lower()}_app.py")
115
  st.write(f"Agent {agent} has completed its task.")
116
  st.success("Autonomous build process completed!")
 
130
  def combine_and_process_responses(responses: dict[str, str], task: str) -> str:
131
  combined = "\n\n".join([f"{agent}: {response}" for agent, response in responses.items()])
132
  return f"Combined response for task '{task}':\n\n{combined}"
133
+
134
  # Streamlit UI
135
  st.title("DevToolKit: AI-Powered Development Environment")
136
 
 
141
  if project_name and project_name not in st.session_state.workspace_projects:
142
  st.session_state.workspace_projects[project_name] = {'files': []}
143
  st.success(f"Created project: {project_name}")
144
+ # Create the project directory
145
+ os.makedirs(project_name, exist_ok=True)
146
  elif project_name in st.session_state.workspace_projects:
147
  st.warning(f"Project {project_name} already exists")
148
  else:
 
151
  # Code Editor
152
  st.subheader("Code Editor")
153
  if st.session_state.workspace_projects:
154
+ selected_project = st.selectbox("Select file to edit", files) if files else None
 
 
 
155
  if selected_file:
156
  file_content = next((file['code'] for file in st.session_state.workspace_projects[selected_project]['files'] if file['file_name'] == selected_file), "")
157
+ edited_code = st.text_area("Edit code", value=file_content, height=300) # Using st.text_area for now
158
  if st.button("Save Changes"):
159
  for file in st.session_state.workspace_projects[selected_project]['files']:
160
  if file['file_name'] == selected_file:
161
  file['code'] = edited_code
162
+ # Save the changes to the actual file in the project directory
163
+ file_path = os.path.join(selected_project, selected_file)
164
+ with open(file_path, "w") as f:
165
+ f.write(edited_code)
166
  st.success("Changes saved successfully!")
167
  break
168
  else: