Jeremy Live commited on
Commit
9b08ac4
·
1 Parent(s): b78f40d
Files changed (1) hide show
  1. app.py +27 -18
app.py CHANGED
@@ -128,17 +128,21 @@ def run_crewai_process(user_query, model, temperature):
128
  final_answer_chat = [{"role": "user", "content": user_query}]
129
 
130
  try:
131
- # Kick off the crew process
132
- # CrewAI's kickoff doesn't directly support streaming to a buffer
133
- # We'll run it and then capture the full output at the end of the CrewAI process
134
- # However, for demonstration, we can yield intermediate status updates.
135
- yield "Starting CrewAI process...", final_answer_chat, agent_thoughts, generated_code, execution_output, generated_plot_path
136
 
 
137
  final_result = crew.kickoff(inputs={"query": user_query})
138
 
139
  # Get the captured CrewAI output (agent thoughts)
140
  agent_thoughts = output_buffer.getvalue()
141
- yield agent_thoughts, final_answer_chat, generated_code, execution_output, generated_plot_path
 
 
 
 
142
 
143
  # The final result is the generated code from the code_output_agent
144
  generated_code_raw = str(final_result).strip()
@@ -157,11 +161,9 @@ def run_crewai_process(user_query, model, temperature):
157
  return # Exit the generator
158
 
159
  # Format for Gradio Chatbot (list of dictionaries with 'role' and 'content' keys only)
160
- final_answer_chat = [
161
- {"role": "user", "content": str(user_query)},
162
- {"role": "assistant", "content": "Code generation complete. See the 'Generated Code' box. Attempting to execute code..."}
163
- ]
164
- yield agent_thoughts, final_answer_chat, generated_code, execution_output, generated_plot_path
165
 
166
  # --- Execute the generated code ---
167
  plot_file_path = 'plot.png' # Expected plot file name
@@ -212,14 +214,21 @@ def run_crewai_process(user_query, model, temperature):
212
  execution_output = "No code was generated to execute."
213
 
214
  # Update final answer chat to reflect execution attempt
215
- final_answer_chat = [
216
- {"role": "user", "content": str(user_query)},
217
- {"role": "assistant", "content": "Code execution finished. See 'Execution Output'."}
218
- ]
219
  if generated_plot_path:
220
- final_answer_chat.append({"role": "assistant", "content": "Plot generated successfully. See 'Generated Plot'."})
 
 
 
 
 
221
  else:
222
- final_answer_chat.append({"role": "assistant", "content": "No plot was generated. Check the execution output for details."})
 
 
 
 
 
223
 
224
  yield agent_thoughts, final_answer_chat, generated_code, execution_output, generated_plot_path
225
 
@@ -232,7 +241,7 @@ def run_crewai_process(user_query, model, temperature):
232
  {"role": "user", "content": str(user_query)},
233
  {"role": "assistant", "content": error_message}
234
  ]
235
- yield agent_thoughts, final_answer_chat, generated_code, execution_output, generated_plot_path
236
 
237
  finally:
238
  # Restore original stdout
 
128
  final_answer_chat = [{"role": "user", "content": user_query}]
129
 
130
  try:
131
+ # Initial status update with proper message format
132
+ initial_message = {"role": "assistant", "content": "Starting CrewAI process..."}
133
+ final_answer_chat = [{"role": "user", "content": str(user_query)}, initial_message]
134
+ yield final_answer_chat, agent_thoughts, generated_code, execution_output, None, None
 
135
 
136
+ # Run the crew process
137
  final_result = crew.kickoff(inputs={"query": user_query})
138
 
139
  # Get the captured CrewAI output (agent thoughts)
140
  agent_thoughts = output_buffer.getvalue()
141
+
142
+ # Update with processing message
143
+ processing_message = {"role": "assistant", "content": "Processing complete. Generating code..."}
144
+ final_answer_chat = [{"role": "user", "content": str(user_query)}, processing_message]
145
+ yield final_answer_chat, agent_thoughts, generated_code, execution_output, None, None
146
 
147
  # The final result is the generated code from the code_output_agent
148
  generated_code_raw = str(final_result).strip()
 
161
  return # Exit the generator
162
 
163
  # Format for Gradio Chatbot (list of dictionaries with 'role' and 'content' keys only)
164
+ code_gen_message = {"role": "assistant", "content": "Code generation complete. See the 'Generated Code' box. Attempting to execute code..."}
165
+ final_answer_chat = [{"role": "user", "content": str(user_query)}, code_gen_message]
166
+ yield final_answer_chat, agent_thoughts, generated_code, execution_output, None, None
 
 
167
 
168
  # --- Execute the generated code ---
169
  plot_file_path = 'plot.png' # Expected plot file name
 
214
  execution_output = "No code was generated to execute."
215
 
216
  # Update final answer chat to reflect execution attempt
217
+ execution_complete_msg = "Code execution finished. See 'Execution Output'."
 
 
 
218
  if generated_plot_path:
219
+ plot_msg = "Plot generated successfully. See 'Generated Plot'."
220
+ final_answer_chat = [
221
+ {"role": "user", "content": str(user_query)},
222
+ {"role": "assistant", "content": execution_complete_msg},
223
+ {"role": "assistant", "content": plot_msg}
224
+ ]
225
  else:
226
+ no_plot_msg = "No plot was generated. Check the execution output for details."
227
+ final_answer_chat = [
228
+ {"role": "user", "content": str(user_query)},
229
+ {"role": "assistant", "content": execution_complete_msg},
230
+ {"role": "assistant", "content": no_plot_msg}
231
+ ]
232
 
233
  yield agent_thoughts, final_answer_chat, generated_code, execution_output, generated_plot_path
234
 
 
241
  {"role": "user", "content": str(user_query)},
242
  {"role": "assistant", "content": error_message}
243
  ]
244
+ yield final_answer_chat, agent_thoughts, generated_code, execution_output, None, None
245
 
246
  finally:
247
  # Restore original stdout