Skip to content

Commit b7df544

Browse files
committed
fix invoke response
1 parent eba8a5a commit b7df544

File tree

1 file changed

+40
-2
lines changed
  • python/packages/autogen-studio/autogenstudio/web/routes

1 file changed

+40
-2
lines changed

python/packages/autogen-studio/autogenstudio/web/routes/invoke.py

+40-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
from fastapi import APIRouter
44
from autogen_core import ComponentModel
55
from autogenstudio.teammanager import TeamManager
6-
from autogenstudio.datamodel import Response
6+
from autogenstudio.datamodel import Response, TeamResult
7+
from autogen_agentchat.base import TaskResult
78
from typing import Union
89
from pydantic import BaseModel
10+
from autogen_agentchat.messages import BaseTextChatMessage
911

1012
router = APIRouter()
1113
team_manager = TeamManager()
@@ -19,8 +21,44 @@ async def invoke(request: InvokeTaskRequest):
1921
response = Response(message="Task successfully completed", status=True, data=None)
2022
try:
2123
result_message = await team_manager.run(task=request.task, team_config=request.team_config)
22-
response.data = result_message
24+
response.data = _format_team_result(result_message)
2325
except Exception as e:
2426
response.message = str(e)
2527
response.status = False
2628
return response
29+
30+
def _format_team_result(team_result: TeamResult) -> dict:
31+
"""
32+
Format the result from TeamResult to a dictionary.
33+
"""
34+
formatted_result = {
35+
"task_result": _format_task_result(team_result.task_result),
36+
"usage": team_result.usage,
37+
"duration": team_result.duration,
38+
}
39+
return formatted_result
40+
41+
def _format_task_result(task_result: TaskResult) -> dict:
42+
"""
43+
Format the result from TeamResult to a dictionary.
44+
"""
45+
for message in task_result.messages:
46+
print(f"Message: {message}, Type: {type(message)}")
47+
formatted_result = {
48+
"messages": [
49+
_format_message(message) for message in task_result.messages
50+
],
51+
"stop_reason": task_result.stop_reason,
52+
}
53+
return formatted_result
54+
55+
def _format_message(message: BaseTextChatMessage) -> dict:
56+
"""
57+
Format the message to a dictionary.
58+
"""
59+
return {
60+
"source": message.source,
61+
"models_usage": message.models_usage,
62+
"metadata": message.metadata,
63+
"content": message.content,
64+
}

0 commit comments

Comments
 (0)