From 3b1bf7da6771bd1d6852d3dcc1f906d5ae5c95d1 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期三, 12 三月 2025 13:49:12 +0800
Subject: [PATCH] 增加内容优化
---
app/service/v2/app_driver/chat_workflow.py | 71 +++++++++++++++++++++++++++++++++++
1 files changed, 71 insertions(+), 0 deletions(-)
diff --git a/app/service/v2/app_driver/chat_workflow.py b/app/service/v2/app_driver/chat_workflow.py
index e69de29..047cb66 100644
--- a/app/service/v2/app_driver/chat_workflow.py
+++ b/app/service/v2/app_driver/chat_workflow.py
@@ -0,0 +1,71 @@
+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 ChatWorkflow(ChatBase):
+
+ async def chat_completions(self, url, data, headers):
+ complete_response = ""
+ async for line in self.http_stream(url, data, headers):
+ 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:
+ data = {"response_mode": "streaming",
+ "conversation_id": conversation_id,
+ "user": user}
+ inputs = {}
+ # files = []
+ if hasattr(chat_data, "inputs"):
+ inputs = chat_data.inputs
+ if hasattr(chat_data, "files"):
+ files = chat_data.files
+ data["files"] = files
+ data["inputs"] = inputs
+ return data
+
+
+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