From 319e3e93bbb4807da58db2ac72bb8f3029738dd7 Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期二, 03 十二月 2024 13:48:40 +0800 Subject: [PATCH] dify报告合并 --- app/service/difyService.py | 49 ++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 44 insertions(+), 5 deletions(-) diff --git a/app/service/difyService.py b/app/service/difyService.py index 9aee918..93bc62b 100644 --- a/app/service/difyService.py +++ b/app/service/difyService.py @@ -6,7 +6,6 @@ from fastapi import HTTPException from starlette import status -from Log import logger from app.config.config import settings from app.utils.rsa_crypto import RagflowCrypto @@ -83,7 +82,7 @@ "inputs": {}, "query": message, "response_mode": "streaming", - "conversation_id": "", + "conversation_id": conversation_id, "user": str(user_id), "files": files } @@ -141,14 +140,54 @@ return data + async def save_images(self, url: str, filename: str): + url = f"{self.base_url}{url}" + + async with httpx.AsyncClient() as client: + response = await client.get(url) + + response.raise_for_status() + + # 鎵撳紑涓�涓枃浠剁敤浜庡啓鍏� + with open(f"app/images/{filename}", 'wb') as f: + # 鍐欏叆璇锋眰鐨勫唴瀹� + f.write(response.content) + + + async def workflow(self, token: str, user_id: int, inputs: dict): + + target_url = f"{self.base_url}/v1/workflows/run" + data = { + "inputs": inputs, + "response_mode": "streaming", + "user": str(user_id), + "files":[] + } + + async with httpx.AsyncClient(timeout=1800) as client: + headers = { + 'Content-Type': 'application/json', + 'Authorization': f'Bearer {token}' + } + async with client.stream("POST", target_url, data=json.dumps(data), headers=headers) as response: + if response.status_code == 200: + try: + async for answer in response.aiter_text(): + # print(f"response of ragflow chat: {answer}") + yield answer + except GeneratorExit as e: + print(e) + return + else: + yield f"Error: {response.status_code}" if __name__ == "__main__": async def a(): - a = DifyService("http://192.168.20.119:11080") - b = await a.get_knowledge_list("ImY3ZTZlZWQwYTY2NTExZWY5ZmFiMDI0MmFjMTMwMDA2Ig.Zzxwmw.uI_HAWzOkipQuga1aeQtoeIc3IM", 1, - 10) + a = DifyService("http://192.168.20.116") + b = await a.get_session_history("app-YmOAMDsPpDDlqryMHnc9TzTO", "f94c6328-8ff0-4713-af3f-e823d547682d", + "63") print(b) import asyncio -- Gitblit v1.8.0