From 7329ed833dd7cac3cf41d95ff73fdc5a39db08d3 Mon Sep 17 00:00:00 2001 From: fengyingbanbo <782368028@qq.com> Date: Tue, 9 Apr 2024 21:23:43 +0800 Subject: [PATCH] =?UTF-8?q?dify=5Fbot.py=E9=87=8C=E9=9D=A2=5Fparse=5Fsse?= =?UTF-8?q?=5Fevent=20=E6=96=B9=E6=B3=95=E5=A2=9E=E5=8A=A0=20json.decoder.?= =?UTF-8?q?JSONDecodeError=E7=9A=84=E5=A4=84=E7=90=86=20(#10)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bot/dify/dify_bot.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/bot/dify/dify_bot.py b/bot/dify/dify_bot.py index 126d3f7..3bf0055 100644 --- a/bot/dify/dify_bot.py +++ b/bot/dify/dify_bot.py @@ -207,9 +207,19 @@ class DifyBot(Bot): event_prefix = "data: " if not event_str.startswith(event_prefix): return None - trimed_event_str = event_str[len(event_prefix):] - event = json.loads(trimed_event_str) - return event + trimmed_event_str = event_str[len(event_prefix):] + + # Check if trimmed_event_str is not empty and is a valid JSON string + if trimmed_event_str: + try: + event = json.loads(trimmed_event_str) + return event + except json.JSONDecodeError: + logger.error(f"Failed to decode JSON from SSE event: {trimmed_event_str}") + return None + else: + logger.warn("Received an empty SSE event.") + return None # TODO: 异步返回events def _handle_sse_response(self, response: requests.Response):