in src/smolagents/gradio_ui.py [0:0]
def _process_final_answer_step(step_log: FinalAnswerStep) -> Generator:
"""
Process a [`FinalAnswerStep`] and yield appropriate gradio.ChatMessage objects.
Args:
step_log ([`FinalAnswerStep`]): FinalAnswerStep to process.
Yields:
`gradio.ChatMessage`: Gradio ChatMessages representing the final answer.
"""
import gradio as gr
final_answer = step_log.output
if isinstance(final_answer, AgentText):
yield gr.ChatMessage(
role=MessageRole.ASSISTANT,
content=f"**Final answer:**\n{final_answer.to_string()}\n",
metadata={"status": "done"},
)
elif isinstance(final_answer, AgentImage):
yield gr.ChatMessage(
role=MessageRole.ASSISTANT,
content={"path": final_answer.to_string(), "mime_type": "image/png"},
metadata={"status": "done"},
)
elif isinstance(final_answer, AgentAudio):
yield gr.ChatMessage(
role=MessageRole.ASSISTANT,
content={"path": final_answer.to_string(), "mime_type": "audio/wav"},
metadata={"status": "done"},
)
else:
yield gr.ChatMessage(
role=MessageRole.ASSISTANT, content=f"**Final answer:** {str(final_answer)}", metadata={"status": "done"}
)