From d961b5e9290edef3bee5cd6adc4a636af209c1e7 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期四, 09 一月 2025 18:52:21 +0800
Subject: [PATCH] tmp

---
 app/service/v2/app_driver/chat_agent.py |   75 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/app/service/v2/app_driver/chat_agent.py b/app/service/v2/app_driver/chat_agent.py
index e69de29..45f804e 100644
--- a/app/service/v2/app_driver/chat_agent.py
+++ b/app/service/v2/app_driver/chat_agent.py
@@ -0,0 +1,75 @@
+import json
+
+# from Log import logger
+from app.models.v2.session_model import ChatData
+from app.service.v2.app_driver.chat_base import ChatBase
+
+
+class ChatAgent(ChatBase):
+
+    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()
+            elif line.startswith("Error: "):
+                yield {"event": "error", "message": line}
+            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)
+
+    @staticmethod
+    async def request_data(query: str, conversation_id: str, user:str, chat_data: ChatData) -> dict:
+        inputs = []
+        files = []
+        if hasattr(chat_data,  "inputs"):
+            inputs = chat_data.inputs
+        if hasattr(chat_data,  "files"):
+            files = chat_data.files
+
+        return {
+            "inputs":inputs,
+            "query": query,
+            "response_mode": "streaming",
+            "conversation_id": conversation_id,
+            "user": user,
+            "files": files
+        }
+
+
+if __name__ == "__main__":
+    async def aa():
+        chat_id = "16954f6d-c1e6-4a0b-b371-363c28e8a48b"
+        token = "app-79ndndjNAFSV3qTuDAjDwuSO"
+        base_url = "http://192.168.20.116"
+        url = f"{base_url}/v1/chat-messages"
+        chat = ChatAgent()
+        data = {
+            "inputs":{},
+            "query": "浣犲ソ锛屼綘鑳藉仛浠�涔堬紵",
+            "response_mode": "streaming",
+            "conversation_id": "",
+            "user": "1",
+            "files": []
+        }
+        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