Voiid-m commited on
Commit
75757bc
·
verified ·
1 Parent(s): 7b12b9a

Generate img

Browse files
Files changed (1) hide show
  1. Gradio_UI.py +21 -2
Gradio_UI.py CHANGED
@@ -18,6 +18,7 @@ import os
18
  import re
19
  import shutil
20
  from typing import Optional
 
21
 
22
  from smolagents.agent_types import AgentAudio, AgentImage, AgentText, handle_agent_output_types
23
  from smolagents.agents import ActionStep, MultiStepAgent
@@ -122,6 +123,20 @@ def pull_messages_from_step(
122
  yield gr.ChatMessage(role="assistant", content=f"{step_footnote}")
123
  yield gr.ChatMessage(role="assistant", content="-----")
124
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
 
126
  def stream_to_gradio(
127
  agent,
@@ -170,13 +185,17 @@ def stream_to_gradio(
170
  # mais pour l’instant on laisse image_path = None.
171
 
172
  elif isinstance(final_answer, AgentImage):
173
- # On suppose que to_string() renvoie un chemin de fichier image
174
- image_path = final_answer.to_string()
 
175
  final_message = gr.ChatMessage(
176
  role="assistant",
177
  content=f"Image générée : {image_path}",
178
  )
179
 
 
 
 
180
  elif isinstance(final_answer, AgentAudio):
181
  final_message = gr.ChatMessage(
182
  role="assistant",
 
18
  import re
19
  import shutil
20
  from typing import Optional
21
+ from datetime import datetime
22
 
23
  from smolagents.agent_types import AgentAudio, AgentImage, AgentText, handle_agent_output_types
24
  from smolagents.agents import ActionStep, MultiStepAgent
 
123
  yield gr.ChatMessage(role="assistant", content=f"{step_footnote}")
124
  yield gr.ChatMessage(role="assistant", content="-----")
125
 
126
+ def save_agent_image_to_tmp(agent_image):
127
+ """
128
+ Prend un AgentImage (smolagents), récupère l'image PIL
129
+ et la sauvegarde dans /tmp, puis renvoie le chemin.
130
+ """
131
+ pil_img = agent_image.to_pil() # ou agent_image.image si l'attribut existe
132
+
133
+ ts = datetime.utcnow().strftime("%Y%m%d_%H%M%S")
134
+ filename = f"agent_image_{ts}.webp"
135
+ filepath = os.path.join("/tmp", filename)
136
+
137
+ pil_img.save(filepath, format="WEBP")
138
+ return filepath
139
+
140
 
141
  def stream_to_gradio(
142
  agent,
 
185
  # mais pour l’instant on laisse image_path = None.
186
 
187
  elif isinstance(final_answer, AgentImage):
188
+ # On convertit l'AgentImage en fichier sur disque
189
+ image_path = save_agent_image_to_tmp(final_answer)
190
+
191
  final_message = gr.ChatMessage(
192
  role="assistant",
193
  content=f"Image générée : {image_path}",
194
  )
195
 
196
+ yield final_message, image_path
197
+ return # pour éviter de retomber sur le dernier yield en bas si tu l'as gardé
198
+
199
  elif isinstance(final_answer, AgentAudio):
200
  final_message = gr.ChatMessage(
201
  role="assistant",