piyushdev commited on
Commit
c4de7c1
·
verified ·
1 Parent(s): 9bba7c4

Fix the image object

Browse files
Files changed (1) hide show
  1. Gradio_UI.py +31 -23
Gradio_UI.py CHANGED
@@ -159,31 +159,39 @@ def stream_to_gradio(
159
  yield message
160
 
161
  # FIX: Process the final answer correctly after the loop
162
- if final_answer_step:
163
- # Extract the actual value from the FinalAnswerStep object
164
- final_answer_value = getattr(final_answer_step, 'final_answer', final_answer_step)
165
-
166
- # Convert the value (e.g., a file path string) into the correct Agent type (e.g., AgentImage)
 
 
 
 
 
 
167
  processed_answer = handle_agent_output_types(final_answer_value)
168
 
169
- if isinstance(processed_answer, AgentText):
170
- yield gr.ChatMessage(
171
- role="assistant",
172
- content=f"**Final answer:**\n{processed_answer.to_string()}\n",
173
- )
174
- elif isinstance(processed_answer, AgentImage):
175
- yield gr.ChatMessage(
176
- role="assistant",
177
- content=processed_answer.to_string(), # Gradio automatically handles file paths
178
- )
179
- elif isinstance(processed_answer, AgentAudio):
180
- yield gr.ChatMessage(
181
- role="assistant",
182
- content=processed_answer.to_string(), # Gradio automatically handles file paths
183
- )
184
- else:
185
- # Fallback for any other type
186
- yield gr.ChatMessage(role="assistant", content=f"**Final answer:** {str(processed_answer)}")
 
 
187
 
188
 
189
  class GradioUI:
 
159
  yield message
160
 
161
  # FIX: Process the final answer correctly after the loop
162
+ if final_answer_step:
163
+ # Extract the actual value from the FinalAnswerStep object
164
+ final_answer_value = getattr(final_answer_step, 'final_answer', final_answer_step)
165
+
166
+ # Check if the final answer is a string that looks like an image file path
167
+ if isinstance(final_answer_value, str) and final_answer_value.endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp', '.webp')):
168
+ # It's an image file path, create an AgentImage object
169
+ from smolagents.agent_types import AgentImage
170
+ processed_answer = AgentImage(value=final_answer_value)
171
+ else:
172
+ # Try the default conversion
173
  processed_answer = handle_agent_output_types(final_answer_value)
174
 
175
+ if isinstance(processed_answer, AgentText):
176
+ yield gr.ChatMessage(
177
+ role="assistant",
178
+ content=f"**Final answer:**\n{processed_answer.to_string()}\n",
179
+ )
180
+ elif isinstance(processed_answer, AgentImage):
181
+ # For images, Gradio needs the file path directly
182
+ image_path = processed_answer.to_string()
183
+ yield gr.ChatMessage(
184
+ role="assistant",
185
+ content={"file": image_path, "alt_text": "Generated image"},
186
+ )
187
+ elif isinstance(processed_answer, AgentAudio):
188
+ yield gr.ChatMessage(
189
+ role="assistant",
190
+ content={"file": processed_answer.to_string(), "alt_text": "Generated audio"},
191
+ )
192
+ else:
193
+ # Fallback for any other type
194
+ yield gr.ChatMessage(role="assistant", content=f"**Final answer:** {str(processed_answer)}")
195
 
196
 
197
  class GradioUI: