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