Spaces:
Paused
Paused
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,11 +1,13 @@
|
|
| 1 |
import os
|
| 2 |
import subprocess
|
|
|
|
| 3 |
import streamlit as st
|
| 4 |
import black
|
| 5 |
from pylint import lint
|
| 6 |
from io import StringIO
|
| 7 |
from mixtral import InstructModel # Import Mixtral Instruct
|
| 8 |
|
|
|
|
| 9 |
HUGGING_FACE_REPO_URL = "https://huggingface.co/spaces/acecalisto3/DevToolKit"
|
| 10 |
PROJECT_ROOT = "projects"
|
| 11 |
AGENT_DIRECTORY = "agents"
|
|
@@ -81,6 +83,15 @@ def create_agent_from_text(name, text):
|
|
| 81 |
save_agent_to_file(agent)
|
| 82 |
return agent.create_agent_prompt()
|
| 83 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 84 |
def chat_interface_with_agent(input_text, agent_name):
|
| 85 |
agent_prompt = load_agent_prompt(agent_name)
|
| 86 |
if agent_prompt is None:
|
|
@@ -141,28 +152,32 @@ def code_editor_interface(code):
|
|
| 141 |
formatted_code = black.format_str(code, mode=black.FileMode())
|
| 142 |
except black.NothingChanged:
|
| 143 |
formatted_code = code
|
|
|
|
|
|
|
|
|
|
| 144 |
result = StringIO()
|
| 145 |
sys.stdout = result
|
| 146 |
sys.stderr = result
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
|
|
|
|
|
|
| 153 |
return formatted_code, lint_message
|
| 154 |
|
| 155 |
def translate_code(code, input_language, output_language):
|
| 156 |
try:
|
| 157 |
-
model = InstructModel()
|
|
|
|
|
|
|
|
|
|
| 158 |
except EnvironmentError as e:
|
| 159 |
-
return f"Error loading model: {e}"
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
translated_code = model.generate_response(prompt)
|
| 163 |
-
st.session_state.current_state['toolbox']['translated_code'] = translated_code
|
| 164 |
-
return translated_code
|
| 165 |
-
|
| 166 |
def generate_code(code_idea):
|
| 167 |
try:
|
| 168 |
model = InstructModel() # Initialize Mixtral Instruct model
|
|
@@ -175,17 +190,16 @@ def generate_code(code_idea):
|
|
| 175 |
return generated_code
|
| 176 |
|
| 177 |
def commit_and_push_changes(commit_message):
|
| 178 |
-
"""Commits and pushes changes to the Hugging Face repository."""
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
"git
|
| 183 |
-
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
break
|
| 189 |
|
| 190 |
# Streamlit App
|
| 191 |
st.title("AI Agent Creator")
|
|
|
|
| 1 |
import os
|
| 2 |
import subprocess
|
| 3 |
+
import sys # Add sys import
|
| 4 |
import streamlit as st
|
| 5 |
import black
|
| 6 |
from pylint import lint
|
| 7 |
from io import StringIO
|
| 8 |
from mixtral import InstructModel # Import Mixtral Instruct
|
| 9 |
|
| 10 |
+
|
| 11 |
HUGGING_FACE_REPO_URL = "https://huggingface.co/spaces/acecalisto3/DevToolKit"
|
| 12 |
PROJECT_ROOT = "projects"
|
| 13 |
AGENT_DIRECTORY = "agents"
|
|
|
|
| 83 |
save_agent_to_file(agent)
|
| 84 |
return agent.create_agent_prompt()
|
| 85 |
|
| 86 |
+
def chat_interface(input_text):
|
| 87 |
+
"""Handles chat interactions without a specific agent."""
|
| 88 |
+
try:
|
| 89 |
+
model = InstructModel()
|
| 90 |
+
response = model.generate_response(f"User: {input_text}\nAI:")
|
| 91 |
+
return response
|
| 92 |
+
except EnvironmentError as e:
|
| 93 |
+
return f"Error communicating with AI: {e}"
|
| 94 |
+
|
| 95 |
def chat_interface_with_agent(input_text, agent_name):
|
| 96 |
agent_prompt = load_agent_prompt(agent_name)
|
| 97 |
if agent_prompt is None:
|
|
|
|
| 152 |
formatted_code = black.format_str(code, mode=black.FileMode())
|
| 153 |
except black.NothingChanged:
|
| 154 |
formatted_code = code
|
| 155 |
+
except Exception as e:
|
| 156 |
+
return None, f"Error formatting code with black: {e}"
|
| 157 |
+
|
| 158 |
result = StringIO()
|
| 159 |
sys.stdout = result
|
| 160 |
sys.stderr = result
|
| 161 |
+
try:
|
| 162 |
+
(pylint_stdout, pylint_stderr) = lint.py_run(code, return_std=True)
|
| 163 |
+
lint_message = pylint_stdout.getvalue() + pylint_stderr.getvalue()
|
| 164 |
+
except Exception as e:
|
| 165 |
+
return None, f"Error linting code with pylint: {e}"
|
| 166 |
+
finally:
|
| 167 |
+
sys.stdout = sys.__stdout__
|
| 168 |
+
sys.stderr = sys.__stderr__
|
| 169 |
return formatted_code, lint_message
|
| 170 |
|
| 171 |
def translate_code(code, input_language, output_language):
|
| 172 |
try:
|
| 173 |
+
model = InstructModel()
|
| 174 |
+
prompt = f"Translate the following {input_language} code to {output_language}:\n\n{code}"
|
| 175 |
+
translated_code = model.generate_response(prompt)
|
| 176 |
+
return translated_code
|
| 177 |
except EnvironmentError as e:
|
| 178 |
+
return f"Error loading model or translating code: {e}"
|
| 179 |
+
except Exception as e: # Catch other potential errors during translation.
|
| 180 |
+
return f"An unexpected error occurred during code translation: {e}"
|
|
|
|
|
|
|
|
|
|
|
|
|
| 181 |
def generate_code(code_idea):
|
| 182 |
try:
|
| 183 |
model = InstructModel() # Initialize Mixtral Instruct model
|
|
|
|
| 190 |
return generated_code
|
| 191 |
|
| 192 |
def commit_and_push_changes(commit_message):
|
| 193 |
+
"""Commits and pushes changes to the Hugging Face repository (needs improvement)."""
|
| 194 |
+
try:
|
| 195 |
+
# Add error checking for git repository existence.
|
| 196 |
+
subprocess.run(["git", "add", "."], check=True, capture_output=True, text=True)
|
| 197 |
+
subprocess.run(["git", "commit", "-m", commit_message], check=True, capture_output=True, text=True)
|
| 198 |
+
subprocess.run(["git", "push"], check=True, capture_output=True, text=True)
|
| 199 |
+
except subprocess.CalledProcessError as e:
|
| 200 |
+
st.error(f"Git command failed: {e.stderr}")
|
| 201 |
+
except FileNotFoundError:
|
| 202 |
+
st.error("Git not found. Please ensure Git is installed and configured.")
|
|
|
|
| 203 |
|
| 204 |
# Streamlit App
|
| 205 |
st.title("AI Agent Creator")
|