From d66bb1cd7a768a4da5da8ba62041515c04a2615e Mon Sep 17 00:00:00 2001 From: ThomasTaroni Date: Sun, 1 Jun 2025 12:19:21 +0200 Subject: [PATCH] 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. --- src/phoenix_technologies/gpt_researcher/server.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/phoenix_technologies/gpt_researcher/server.py b/src/phoenix_technologies/gpt_researcher/server.py index 59d08ab..9c87921 100644 --- a/src/phoenix_technologies/gpt_researcher/server.py +++ b/src/phoenix_technologies/gpt_researcher/server.py @@ -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.