From 4e301c1fcf4a0b6e2e797acaa3169d5ff4fe92f5 Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期三, 08 一月 2025 13:50:52 +0800 Subject: [PATCH] sse --- app/service/v2/app_driver/chat_dialog.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 48 insertions(+), 2 deletions(-) diff --git a/app/service/v2/app_driver/chat_dialog.py b/app/service/v2/app_driver/chat_dialog.py index 9a7bf88..27807fd 100644 --- a/app/service/v2/app_driver/chat_dialog.py +++ b/app/service/v2/app_driver/chat_dialog.py @@ -1,3 +1,6 @@ +import json + +from Log import logger from app.service.v2.app_driver.chat_base import ChatBase @@ -16,7 +19,50 @@ async def chat_completions(self, url, data, headers): + complete_response = "" + async for line in self.http_stream(url, data, headers): + # logger.error(line) + if line.startswith("data:"): + complete_response = line.strip("data:").strip() + else: + complete_response += line.strip() + try: + json_data = json.loads(complete_response) + # 澶勭悊 JSON 鏁版嵁 + # print(json_data) + complete_response = "" + yield json_data - async for rag_response in self.http_stream(url, data, headers): + except json.JSONDecodeError as e: + logger.info("Invalid JSON data------------------") + # print(e) - yield rag_response + + + + + + +if __name__ == "__main__": + async def aa(): + chat_id = "6b8ee426c67511efb1510242ac1b0006" + token = "ragflow-YzMzE1NDRjYzMyZjExZWY5ZjkxMDI0Mm" + base_url = "http://192.168.20.116:11080" + url = f"{base_url}/api/v1/chats/{chat_id}/completions" + chat = ChatDialog(token) + data = { + "question": "鐢电綉鎶�鏈�荤粨300瀛�", + "stream": True, + "session_id": "9969c152cce411ef8a140242ac1b0002" + } + headers = { + 'Content-Type': 'application/json', + 'Authorization': f"Bearer {token}" + } + async for ans in chat.chat_completions(url, data, headers): + print(ans) + + + import asyncio + + asyncio.run(aa()) -- Gitblit v1.8.0