Spaces:
Running
Running
from typing import List | |
from autogen_agentchat.base import Response, TaskResult | |
from autogen_agentchat.messages import AgentMessage, MultiModalMessage | |
class AutoGenFormatter: | |
def _message_to_str(self, message: AgentMessage) -> str: | |
if isinstance(message, MultiModalMessage): | |
result: List[str] = [] | |
for c in message.content: | |
if isinstance(c, str): | |
result.append(c) | |
else: | |
result.append("<image>") | |
return "\n".join(result) | |
else: | |
return f"{message.content}" | |
async def to_output(self, message: AgentMessage) -> str: | |
try: | |
if isinstance(message, TaskResult): | |
output = ( | |
f"{'-' * 10} Summary {'-' * 10}\n" | |
f"Number of messages: {len(message.messages)}\n" | |
f"Finish reason: {message.stop_reason}\n" | |
) | |
return output | |
if isinstance(message, Response): | |
output = f"{'-' * 10} {message.chat_message.source} {'-' * 10}\n{self._message_to_str(message.chat_message)}\n" | |
return output | |
else: | |
output = f"{'-' * 10} {message.source} {'-' * 10}\n{self._message_to_str(message)}\n" | |
return output | |
except Exception as e: | |
return "" |