From 081a109d369966182e5d6e4ff3ab38bb8512b498 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期三, 20 十一月 2024 15:59:01 +0800
Subject: [PATCH] 优化

---
 app/service/ragflow.py       |   12 +++++-------
 app/service/service_token.py |   35 +++++++++++++++++++++++++++++++++++
 app/service/dialog.py        |    3 +--
 app/service/user.py          |    6 ++----
 4 files changed, 43 insertions(+), 13 deletions(-)

diff --git a/app/service/dialog.py b/app/service/dialog.py
index 3af1363..ea75db8 100644
--- a/app/service/dialog.py
+++ b/app/service/dialog.py
@@ -1,6 +1,5 @@
 from datetime import datetime
 
-from app.api.user import user_list
 from app.models import KnowledgeModel, GroupModel, DialogModel, ConversationModel
 from app.models.user_model import UserModel
 from Log import logger
@@ -29,7 +28,7 @@
     session_id = data.get("id")
     if not session_id:
         logger.error("鏇存柊鍥炶瘽璁板綍澶辫触锛亄}".format(data))
-
+        return
     data["create_date"] = datetime.strptime(data["create_date"], '%a, %d %b %Y %H:%M:%S %Z')
     data["update_date"] = datetime.strptime(data["update_date"], '%a, %d %b %Y %H:%M:%S %Z')
     if is_new:
diff --git a/app/service/ragflow.py b/app/service/ragflow.py
index 03e92ea..34e8307 100644
--- a/app/service/ragflow.py
+++ b/app/service/ragflow.py
@@ -182,11 +182,11 @@
     async def get_knowledge_list(self, token: str, page_index: int, page_size: int) -> str:
         url = f"{self.base_url}/v1/kb/list"
         headers = {"Authorization": token}
-        params = {"page": page_index, "page_size": page_size}
+        # params = {"page": page_index, "page_size": page_size}
+        params = {}
         async with httpx.AsyncClient(timeout=60) as client:
             response = await client.get(url, headers=headers, params=params)
             res = self._handle_response(response)
-            print(res)
             return res
 
 
@@ -204,10 +204,8 @@
         data = {"password": password, "new_password":new_password}
 
         async with httpx.AsyncClient(timeout=60) as client:
-            response = await client.post(url, headers=headers, data=data)
-            print(response.text)
+            response = await client.post(url, headers=headers, json=data)
             data = self._handle_response(response)
-            print(data)
             # logger.info("set_user_password:{}".format(data))
             return data
 
@@ -215,8 +213,8 @@
 if __name__ == "__main__":
     async def a():
         a = RagflowService("http://192.168.20.119:11080")
-        b = await a.set_user_password("IjYwYjg1MTFjYTY1NTExZWY4ODZlMDI0MmFjMTMwMDA2Ig.ZzxUxQ.8rIH2HifXNWtkNsnODv6XFHjGVU", "123456",
-                                 "000000")
+        b = await a.get_knowledge_list("ImY3ZTZlZWQwYTY2NTExZWY5ZmFiMDI0MmFjMTMwMDA2Ig.Zzxwmw.uI_HAWzOkipQuga1aeQtoeIc3IM", 1,
+                                 10)
         print(b)
 
     import asyncio
diff --git a/app/service/service_token.py b/app/service/service_token.py
index 9c54fed..15ded3b 100644
--- a/app/service/service_token.py
+++ b/app/service/service_token.py
@@ -1,4 +1,9 @@
+from Log import logger
+from app.config.config import settings
+from app.models import UserModel
 from app.models.token_model import TokenModel
+from app.service.bisheng import BishengService
+from app.service.ragflow import RagflowService
 
 
 def get_bisheng_token(db, user_id: int):
@@ -13,3 +18,33 @@
     if not token:
         return None
     return token.ragflow_token
+
+
+async def get_ragflow_new_token(db, user_id: int, app_type):
+    user = db.query(UserModel).filter(UserModel.id == user_id).first()
+    if not user:
+        return None
+    if app_type == 1:
+        ragflow_service = RagflowService(settings.fwr_base_url)
+        # 鐧诲綍鍒皉agflow
+        try:
+            ragflow_token = await ragflow_service.login(user.username, user.decrypted_password())
+            return ragflow_token
+        except Exception as e:
+            logger.error(e)
+            # return Response(code=500, msg=f"Failed to login with Ragflow: {str(e)}")
+            return None
+    elif  app_type == 2:
+        bisheng_service = BishengService(settings.sgb_base_url)
+        # 鐧诲綍鍒版瘯鏄�
+        try:
+            bisheng_token = await bisheng_service.login(user.username, user.decrypted_password())
+            return bisheng_token
+        except Exception as e:
+            logger.error(e)
+            # return Response(code=500, msg=f"Failed to login with Ragflow: {str(e)}")
+            return None
+
+    else:
+        logger.error("閿欒鐨勫簲鐢ㄧ被鍨媨}".format(app_type))
+
diff --git a/app/service/user.py b/app/service/user.py
index 6cf7c1e..f5cc7ea 100644
--- a/app/service/user.py
+++ b/app/service/user.py
@@ -8,7 +8,7 @@
 from app.service.bisheng import BishengService
 from app.service.common.app_register import AppRegister
 from app.service.ragflow import RagflowService
-from app.service.service_token import get_ragflow_token, get_bisheng_token
+from app.service.service_token import get_ragflow_token, get_bisheng_token, get_ragflow_new_token
 
 
 async def get_user_list(db, page_index: int, page_size: int, keyword: str, role_key:str, user_id):
@@ -104,11 +104,9 @@
     try:
         user = db.query(UserModel).filter(UserModel.id == user_id).first()
         pwd = user.decrypted_password()
-        print(pwd)
-        print(new_password)
         for app_type in AppRegister(db).get_app():
             if app_type == AgentType.RAGFLOW:
-                token = get_ragflow_token(db, user_id)
+                token = await get_ragflow_new_token(db, user_id, app_type)
                 ragflow_service = RagflowService(settings.fwr_base_url)
                 await ragflow_service.set_user_password(token, pwd, new_password)
             elif app_type == AgentType.BISHENG:

--
Gitblit v1.8.0