Standardize SSE event types to "message"

Replaced various custom SSE event types like "tool_update", "tool_result", and "tool_error" with the unified "message" event type. This simplifies event handling logic and ensures consistency across all server-sent event flows.
This commit is contained in:
ThomasTaroni 2025-06-01 12:19:21 +02:00
parent cda44df1a0
commit d66bb1cd7a

View file

@ -111,7 +111,7 @@ async def deep_research(query: str) -> AsyncGenerator[str, None]:
try:
yield format_sse_event(
"tool_update",
"message",
{"research_id": research_id, "query": query, "status": "Research initiated"}
)
@ -123,14 +123,14 @@ async def deep_research(query: str) -> AsyncGenerator[str, None]:
mcp.researchers[research_id] = researcher # Speichere früh, falls benötigt
yield format_sse_event(
"tool_update",
"message",
{"research_id": research_id, "status": "GPT Researcher initialized. Starting information gathering."}
)
await asyncio.sleep(0.1) # Kurze Pause, damit das Event sicher gesendet wird
# Simuliertes Update: Beginn der Recherche
yield format_sse_event(
"tool_update",
"message",
{"research_id": research_id, "status": "Starting web crawling and source analysis...", "progress": 10}
)
@ -139,7 +139,7 @@ async def deep_research(query: str) -> AsyncGenerator[str, None]:
# Simuliertes Update: Recherche abgeschlossen, beginne mit der Verarbeitung
yield format_sse_event(
"tool_update",
"message",
{"research_id": research_id, "status": "Web crawling finished. Processing and consolidating information...", "progress": 70}
)
await asyncio.sleep(0.1)
@ -167,7 +167,7 @@ async def deep_research(query: str) -> AsyncGenerator[str, None]:
}
# Sende das finale Ergebnis als 'tool_result' Event
yield format_sse_event("tool_result", final_data_payload)
yield format_sse_event("message", final_data_payload)
logger.info(f"Sent final research result for ID: {research_id}")
except Exception as e:
@ -180,7 +180,7 @@ async def deep_research(query: str) -> AsyncGenerator[str, None]:
"error_message": str(e),
"error_details": "Check server logs for more information."
}
yield format_sse_event("tool_error", error_payload) # Eigener Event-Typ für Fehler
yield format_sse_event("message", error_payload) # Eigener Event-Typ für Fehler
# Du könntest hier auch handle_exception verwenden, wenn es ein SSE-Event zurückgibt
# oder die Exception weiter werfen, wenn FastMCP das besser handhabt.