Spaces:
Sleeping
Sleeping
File size: 1,215 Bytes
709e4f0 551e5f1 709e4f0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
from transformers.agents.agent_types import AgentAudio, AgentImage, AgentText, AgentType
from transformers.agents import CodeAgent
import spaces
@spaces.GPU
def stream_to_gradio(agent: CodeAgent, task: str, **kwargs):
"""Runs an agent with the given task and streams the messages from the agent as gradio ChatMessages."""
try:
from gradio import ChatMessage
except ImportError:
raise ImportError("Gradio should be installed in order to launch a gradio demo.")
class Output:
output: AgentType | str = None
Output.output = agent.run(task,**kwargs)
if isinstance(Output.output, AgentText):
yield ChatMessage(role="assistant", content=f"{Output.output}")
elif isinstance(Output.output, AgentImage):
yield ChatMessage(
role="assistant",
content={"path": Output.output.to_string(), "mime_type": "image/png"},
)
elif isinstance(Output.output, AgentAudio):
yield ChatMessage(
role="assistant",
content={"path": Output.output.to_string(), "mime_type": "audio/wav"},
)
else:
yield ChatMessage(role="assistant", content=Output.output) |