Spaces:
Sleeping
Sleeping
Generate img
Browse files- 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
|
| 174 |
-
image_path = final_answer
|
|
|
|
| 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",
|