mohammedelfeky-ai commited on
Commit
d8cd6bd
·
verified ·
1 Parent(s): 3fe540b

Update Gradio_UI.py

Browse files
Files changed (1) hide show
  1. Gradio_UI.py +31 -36
Gradio_UI.py CHANGED
@@ -134,7 +134,6 @@ def stream_to_gradio(
134
  actual_content_for_handling.save(tmp_file, format="PNG")
135
  image_path_for_gradio = tmp_file.name
136
  print(f"DEBUG Gradio: Saved PIL image to temp path: {image_path_for_gradio}")
137
- # MODIFIED: Yield tuple (filepath, alt_text)
138
  yield {"role": "assistant", "content": (image_path_for_gradio, "Generated Image")}
139
  return
140
  except Exception as e:
@@ -151,7 +150,6 @@ def stream_to_gradio(
151
  image_path = final_answer_processed.to_string()
152
  print(f"DEBUG Gradio (stream_to_gradio): final_answer_processed is AgentImage. Path: {image_path}")
153
  if image_path and os.path.exists(image_path):
154
- # MODIFIED: Yield tuple (filepath, alt_text)
155
  yield {"role": "assistant", "content": (image_path, "Generated Image (from AgentImage)")}
156
  else:
157
  err_msg = f"Error: Image path from AgentImage ('{image_path}') not found or invalid."
@@ -161,7 +159,6 @@ def stream_to_gradio(
161
  audio_path = final_answer_processed.to_string()
162
  print(f"DEBUG Gradio (stream_to_gradio): AgentAudio path: {audio_path}")
163
  if audio_path and os.path.exists(audio_path):
164
- # MODIFIED: Yield tuple (filepath, alt_text) for consistency, though Gradio might just use path for audio
165
  yield {"role": "assistant", "content": (audio_path, "Generated Audio")}
166
  else:
167
  err_msg = f"Error: Audio path from AgentAudio ('{audio_path}') not found"
@@ -182,40 +179,38 @@ class GradioUI:
182
  os.makedirs(self.file_upload_folder, exist_ok=True)
183
  self._latest_file_path_for_download = None
184
 
185
- def _check_for_created_file(self):
186
- self._latest_file_path_for_download = None
187
- if hasattr(self.agent, 'interaction_logs') and self.agent.interaction_logs:
188
- print(f"DEBUG Gradio UI: Checking {len(self.agent.interaction_logs)} interaction log entries for created files.")
189
- for log_entry in reversed(self.agent.interaction_logs):
190
- if isinstance(log_entry, ActionStep):
191
- observations = getattr(log_entry, 'observations', None)
192
-
193
- if observations and isinstance(observations, str):
194
- print(f"DEBUG Gradio UI: Log Entry Observations (for file check): {observations[:300]}") # Log more
195
-
196
- # Regex to find paths specifically printed by our create_document tool
197
- # It prints "Document created (docx): /path/to/file"
198
- # or "Document created (txt): /path/to/file"
199
- # or "Document converted to PDF: /path/to/file"
200
- match = re.search(
201
- r"(?:Document created \((?:docx|pdf|txt)\):|Document converted to PDF:)\s*(/tmp/[a-zA-Z0-9_]+/generated_document\.(?:docx|pdf|txt))",
202
- observations
203
- )
204
 
205
- if match:
206
- extracted_path = match.group(1) # Group 1 is the path
207
- normalized_path = os.path.normpath(extracted_path)
208
- if os.path.exists(normalized_path):
209
- self._latest_file_path_for_download = normalized_path
210
- print(f"DEBUG Gradio UI: File path for download set (from create_document output): {self._latest_file_path_for_download}")
211
- return True
212
- else:
213
- print(f"DEBUG Gradio UI: Path from create_document output ('{normalized_path}') does not exist.")
214
- # else: # Optional: Log if no match for create_document output specifically
215
- # print(f"DEBUG Gradio UI: No 'create_document' output pattern found in these observations.")
216
- print("DEBUG Gradio UI: No valid generated file path (from create_document) found in agent logs for download.")
217
- return False
218
-
 
 
 
 
 
 
 
 
 
 
219
  def interact_with_agent(self, prompt_text: str, current_chat_history: list):
220
  print(f"DEBUG Gradio: interact_with_agent called with prompt: '{prompt_text}'")
221
  print(f"DEBUG Gradio: Current chat history (input type {type(current_chat_history)}): {current_chat_history}")
 
134
  actual_content_for_handling.save(tmp_file, format="PNG")
135
  image_path_for_gradio = tmp_file.name
136
  print(f"DEBUG Gradio: Saved PIL image to temp path: {image_path_for_gradio}")
 
137
  yield {"role": "assistant", "content": (image_path_for_gradio, "Generated Image")}
138
  return
139
  except Exception as e:
 
150
  image_path = final_answer_processed.to_string()
151
  print(f"DEBUG Gradio (stream_to_gradio): final_answer_processed is AgentImage. Path: {image_path}")
152
  if image_path and os.path.exists(image_path):
 
153
  yield {"role": "assistant", "content": (image_path, "Generated Image (from AgentImage)")}
154
  else:
155
  err_msg = f"Error: Image path from AgentImage ('{image_path}') not found or invalid."
 
159
  audio_path = final_answer_processed.to_string()
160
  print(f"DEBUG Gradio (stream_to_gradio): AgentAudio path: {audio_path}")
161
  if audio_path and os.path.exists(audio_path):
 
162
  yield {"role": "assistant", "content": (audio_path, "Generated Audio")}
163
  else:
164
  err_msg = f"Error: Audio path from AgentAudio ('{audio_path}') not found"
 
179
  os.makedirs(self.file_upload_folder, exist_ok=True)
180
  self._latest_file_path_for_download = None
181
 
182
+ def _check_for_created_file(self): # Line 185 (ensure correct indentation below this line)
183
+ self._latest_file_path_for_download = None # Line 186 - START OF INDENTED BLOCK
184
+ if hasattr(self.agent, 'interaction_logs') and self.agent.interaction_logs:
185
+ print(f"DEBUG Gradio UI: Checking {len(self.agent.interaction_logs)} interaction log entries for created files.")
186
+ for log_entry in reversed(self.agent.interaction_logs):
187
+ if isinstance(log_entry, ActionStep):
188
+ observations = getattr(log_entry, 'observations', None)
 
 
 
 
 
 
 
 
 
 
 
 
189
 
190
+ if observations and isinstance(observations, str):
191
+ # This print statement is crucial for debugging this method
192
+ print(f"DEBUG Gradio UI (check_for_file): Log Entry Observations: '{observations[:300]}'")
193
+
194
+ # Refined regex to look for the specific output of your create_document tool
195
+ match = re.search(
196
+ r"(?:Document created \((?:docx|pdf|txt)\):|Document converted to PDF:)\s*(/tmp/[a-zA-Z0-9_]+/generated_document\.(?:docx|pdf|txt))",
197
+ observations
198
+ )
199
+
200
+ if match:
201
+ extracted_path = match.group(1)
202
+ normalized_path = os.path.normpath(extracted_path)
203
+ if os.path.exists(normalized_path):
204
+ self._latest_file_path_for_download = normalized_path
205
+ print(f"DEBUG Gradio UI: File path for download set (from create_document output): {self._latest_file_path_for_download}")
206
+ return True
207
+ else:
208
+ print(f"DEBUG Gradio UI: Path from create_document output ('{normalized_path}') does not exist.")
209
+ # else: # Optional: log if the specific pattern isn't found in this observation
210
+ # print(f"DEBUG Gradio UI: 'create_document' output pattern not found in this observation.")
211
+ print("DEBUG Gradio UI: No valid generated file path (from create_document) found in agent logs for download.")
212
+ return False # END OF INDENTED BLOCK for _check_for_created_file
213
+
214
  def interact_with_agent(self, prompt_text: str, current_chat_history: list):
215
  print(f"DEBUG Gradio: interact_with_agent called with prompt: '{prompt_text}'")
216
  print(f"DEBUG Gradio: Current chat history (input type {type(current_chat_history)}): {current_chat_history}")