From 43ea5f5a6d972b94c660c0f2052c68c5b7048eb7 Mon Sep 17 00:00:00 2001 From: Maxime Jublou Date: Tue, 18 Feb 2025 12:10:32 +0100 Subject: [PATCH] fix: utf-8 streaming --- lib/abi/services/agent/Agent.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/abi/services/agent/Agent.py b/lib/abi/services/agent/Agent.py index cd00e380..b619111b 100644 --- a/lib/abi/services/agent/Agent.py +++ b/lib/abi/services/agent/Agent.py @@ -396,7 +396,7 @@ async def stream_completion(query: CompletionQuery): new_agent.state.set_thread_id(query.thread_id) return EventSourceResponse( new_agent.stream_invoke(query.prompt), - media_type='text/event-stream' + media_type='text/event-stream; charset=utf-8' ) def stream_invoke(self, prompt: str): @@ -429,12 +429,12 @@ def run_invoke(): if isinstance(message, ToolUsageEvent): yield { "event": "tool_usage", - "data": message.payload.tool_calls[0]['name'] + "data": str(message.payload.tool_calls[0]['name']) } elif isinstance(message, ToolResponseEvent): yield { "event": "tool_response", - "data": message.payload.content + "data": str(message.payload.content) } elif isinstance(message, FinalStateEvent): final_state = message.payload @@ -454,11 +454,11 @@ def run_invoke(): for char in response: buffer += char if char in ['\n', '\r']: - if buffer.strip(): # Only send non-empty lines - yield { - "event": "message", - "data": buffer.rstrip() - } + # if buffer.strip(): # Only send non-empty lines + yield { + "event": "message", + "data": buffer.rstrip() + } buffer = "" # Don't forget remaining text