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 |   54 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 51 insertions(+), 3 deletions(-)

diff --git a/app/service/v2/app_driver/chat_dialog.py b/app/service/v2/app_driver/chat_dialog.py
index 0ad7c3c..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
 
 
@@ -15,6 +18,51 @@
         }
 
 
-    async def chat_completions(self):
-        async for rag_response in self.http_stream(token, chat_id, chat_history):
-            ...
\ No newline at end of file
+    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
+
+            except json.JSONDecodeError as e:
+                logger.info("Invalid JSON data------------------")
+                # print(e)
+
+
+
+
+
+
+
+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