import json from Log import logger from app.service.v2.app_driver.chat_base import ChatBase class ChatDialog(ChatBase): async def chat_completions(self, url, data, headers): complete_response = "" async for line in self.http_stream(url, data, headers): print(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) async def chat_sessions(self, url, data, headers): res = await self.http_post(url, data, headers) if res.status_code == 200: return res.json() else: return {} @staticmethod async def request_data(question, session_id=""): return { "question": question, "stream": True, "session_id": session_id } 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())