From d1ab7124edff7a7740dcd05f636f5c93450291ef Mon Sep 17 00:00:00 2001 From: ulleo Date: Fri, 19 Sep 2025 17:03:15 +0800 Subject: [PATCH] fix: MCP chat run error while SQL execution result is empty --- backend/apps/chat/task/llm.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/backend/apps/chat/task/llm.py b/backend/apps/chat/task/llm.py index 9024dfa99..5f9881990 100644 --- a/backend/apps/chat/task/llm.py +++ b/backend/apps/chat/task/llm.py @@ -1103,11 +1103,14 @@ def run_task(self, in_chat: bool = True): _fields_list.append(field if not _fields.get(field) else _fields.get(field)) data.append(_row) _fields_skip = True - df = pd.DataFrame(np.array(data), columns=_fields_list) - markdown_table = df.to_markdown(index=False) - yield markdown_table + '\n\n' - record = self.finish() + if not data or not _fields_list: + yield 'The SQL execution result is empty.\n\n' + else: + df = pd.DataFrame(np.array(data), columns=_fields_list) + markdown_table = df.to_markdown(index=False) + yield markdown_table + '\n\n' + if in_chat: yield 'data:' + orjson.dumps({'type': 'finish'}).decode() + '\n\n' else: @@ -1135,6 +1138,8 @@ def run_task(self, in_chat: bool = True): yield 'data:' + orjson.dumps({'content': error_msg, 'type': 'error'}).decode() + '\n\n' else: yield f'> ❌ **ERROR**\n\n> \n\n> {error_msg}。' + finally: + self.finish() def run_recommend_questions_task_async(self): self.future = executor.submit(self.run_recommend_questions_task_cache)