From c1768114de381e37e272e9faf7db8e95a93ff381 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期一, 11 十一月 2024 16:37:12 +0800
Subject: [PATCH] role group user..

---
 app/service/ragflow.py |   21 ++++++++++++++++++---
 1 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/app/service/ragflow.py b/app/service/ragflow.py
index 65c5a27..1677ed5 100644
--- a/app/service/ragflow.py
+++ b/app/service/ragflow.py
@@ -1,6 +1,5 @@
 import httpx
 from typing import Union, Dict, List
-
 from fastapi import HTTPException
 from starlette import status
 
@@ -44,6 +43,7 @@
             )
             if response.status_code != 200:
                 raise Exception(f"Ragflow registration failed: {response.text}")
+            return self._handle_response(response)
 
     async def login(self, username: str, password: str) -> str:
         password = RagflowCrypto(settings.PUBLIC_KEY, settings.PRIVATE_KEY).encrypt(password)
@@ -66,7 +66,8 @@
             "messages": chat_history
         }
 
-        print(data)
+        print(f"send to ragflow chat: {data}")
+
         target_url = f"{self.base_url}/v1/conversation/completion"
         async with httpx.AsyncClient(timeout=300.0) as client:
             headers = {
@@ -77,6 +78,7 @@
                 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)
@@ -117,7 +119,11 @@
                     "content": "浣犲ソ锛� 鎴戞槸浣犵殑鍔╃悊锛屾湁浠�涔堝彲浠ュ府鍒颁綘鐨勫悧锛�",
                     "role": "assistant"
                 },
-                message,
+                {
+                    "content": message["message"],
+                    "doc_ids":message.get("doc_ids", []),
+                    "role": "user"
+                }
             ] if data else []
 
     async def get_session_history(self, token: str, chat_id: str) -> list:
@@ -139,3 +145,12 @@
             response = await client.post(url, headers=headers, files=files, data=data)
             data = self._handle_response(response)
             return data
+
+    async def add_user_tenant(self, token: str, tenant_id: str, email: str, user_id: str) -> str:
+        url = f"{self.base_url}/v1/tenant/{tenant_id}/user"
+        headers = {"Authorization": token}
+        data = {"email": email, "user_id": user_id}
+        async with httpx.AsyncClient(timeout=60) as client:
+            response = await client.post(url, headers=headers, json=data)
+            if response.status_code != 200:
+                raise Exception(f"Ragflow add user to tenant failed: {response.text}")

--
Gitblit v1.8.0