From b24fbbcb8b42d147fa81b22275e57b5844a1fdc8 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期三, 25 十二月 2024 09:43:54 +0800
Subject: [PATCH] 问题优化

---
 app/models/role_model.py     |    2 +-
 app/service/ragflow.py       |   34 ++++++++++++++++++++++------------
 app/service/service_token.py |    7 -------
 app/service/group.py         |    7 ++++---
 app/task/fetch_agent.py      |    6 +++---
 app/models/group_model.py    |    3 ++-
 6 files changed, 32 insertions(+), 27 deletions(-)

diff --git a/app/models/group_model.py b/app/models/group_model.py
index d5135b2..281692d 100644
--- a/app/models/group_model.py
+++ b/app/models/group_model.py
@@ -6,6 +6,7 @@
 from pydantic import BaseModel
 from sqlalchemy.orm import relationship, backref
 
+from app.config.const import Dialog_STATSU_DELETE
 from app.models.base_model import Base
 
 
@@ -94,7 +95,7 @@
         json['knowledges'] = [knowledge.to_json() for knowledge in self.knowledges]
 
         # if len(self.dialogs.all()) > 0:
-        json['dialogs'] = [dialog.to_json() for dialog in self.dialogs]
+        json['dialogs'] = [dialog.to_json() for dialog in self.dialogs if dialog.status != Dialog_STATSU_DELETE]
 
         # if len(self.agents.all()) > 0:
         #     json['agents'] = [agent.to_json() for agent in self.agents]
diff --git a/app/models/role_model.py b/app/models/role_model.py
index 23231de..3d4dbda 100644
--- a/app/models/role_model.py
+++ b/app/models/role_model.py
@@ -62,7 +62,7 @@
         # if len(self.resources) > 0:
         json['resources'] = [resource.to_json() for resource in self.resources if resource.status != DEPT_STATUS_DELETE]
 
-        json['dept'] = [dept.to_base_json() for dept in self.organizationsif if dept.status != RESOURCE_STATUS_DELETE]
+        json['dept'] = [dept.to_base_json() for dept in self.organizations if dept.status != RESOURCE_STATUS_DELETE]
 
         return json
 
diff --git a/app/service/group.py b/app/service/group.py
index 7218e3a..474084b 100644
--- a/app/service/group.py
+++ b/app/service/group.py
@@ -1,5 +1,7 @@
 from app.config.config import settings
-from app.models import CanvasModel, DialogModel, KnowledgeModel
+from app.models.dialog_model import DialogModel
+from app.models.knowledge_model import KnowledgeModel
+from app.models.llm_model import CommonLlmModel
 from app.models.group_model import GroupModel
 from app.models.user_model import UserModel
 from app.service.ragflow import RagflowService
@@ -15,7 +17,6 @@
     if keyword:
         query = query.filter(GroupModel.group_name.like('%{}%'.format(keyword)))
     total = query.count()
-    print(total)
     items = query.order_by(GroupModel.id.desc()).limit(page_size).offset((page_index - 1) * page_size)
 
     return {"total":total , "items": [item.to_json() for item in items.all()]}
@@ -115,7 +116,7 @@
 async def save_group_resource(db, user_id, group_id, llms, dialogs, knowledges):
     try:
         group = db.query(GroupModel).filter(GroupModel.id.__eq__(group_id)).first()
-        group.llms = [db.get(CommonLlmModel, user) for user in llms]
+
         group.dialogs = [db.get(DialogModel, user) for user in dialogs]
         group.knowledges = [db.get(KnowledgeModel, user) for user in knowledges]
         db.commit()
diff --git a/app/service/ragflow.py b/app/service/ragflow.py
index d45806d..f10902f 100644
--- a/app/service/ragflow.py
+++ b/app/service/ragflow.py
@@ -178,7 +178,7 @@
         data = {"email": email, "user_id": user_id}
         async with httpx.AsyncClient(timeout=60) as client:
             response = await client.post(url, headers=headers, json=data)
-            print(response)
+            print(response.text)
             if response.status_code != 200:
                 raise Exception(f"Ragflow add user to tenant failed: {response.text}")
 
@@ -212,16 +212,26 @@
             # logger.info("set_user_password:{}".format(data))
             return data
 
+    async def agree_tenant_role(self, token: str, tenant_id: str) -> str:
+        url = f"{self.base_url}/v1/tenant/agree/{tenant_id}"
+        headers = {"Authorization": token}
+        data = {}
+        async with httpx.AsyncClient(timeout=60) as client:
+            response = await client.put(url, headers=headers, json=data)
+            print(response.text)
+            if response.status_code != 200:
+                raise Exception(f"Ragflow add user to tenant failed: {response.text}")
+
 
 if __name__ == "__main__":
-    # async def a():
-    #     a = RagflowService("http://192.168.20.119:11080")
-    #     b = await a.get_knowledge_list("ImY3ZTZlZWQwYTY2NTExZWY5ZmFiMDI0MmFjMTMwMDA2Ig.Zzxwmw.uI_HAWzOkipQuga1aeQtoeIc3IM", 1,
-    #                              10)
-    #     print(b)
-    #
-    # import asyncio
-    #
-    # asyncio.run(a())
-    password = RagflowCrypto(settings.PUBLIC_KEY, settings.PRIVATE_KEY).encrypt("123456")
-    print(password)
+    async def a():
+        a = RagflowService("http://192.168.20.119:11080")
+        b = await a.agree_tenant_role("ImQ3MGY1NGFhYzFkZjExZWY5MDFmMDI0MmFjMTMwMDA2Ig.Z2qJfA.hJX4rPnnmlkUzpjIl0YGcM-yp1M", "fe24dd2c9be611ef92880242ac160006")
+        print(b)
+        print(b)
+
+    import asyncio
+
+    asyncio.run(a())
+    # password = RagflowCrypto(settings.PUBLIC_KEY, settings.PRIVATE_KEY).encrypt("123456")
+    # print(password)
diff --git a/app/service/service_token.py b/app/service/service_token.py
index 8838b22..604946c 100644
--- a/app/service/service_token.py
+++ b/app/service/service_token.py
@@ -114,13 +114,6 @@
             await ragflow_service.add_user_tenant(token,u.app_id,
                                                       user.email,
                                                       user.app_id)
-
-            await ragflow_service.add_user_tenant(token, u.app_id,
-                                                  user.email,
-                                                  user.app_id)
             await ragflow_service.add_user_tenant(token, user.app_id,
                                                   u.email,
                                                   u.app_id)
-            await ragflow_service.add_user_tenant(token, user.app_id,
-                                                  u.email,
-                                                  u.app_id)
\ No newline at end of file
diff --git a/app/task/fetch_agent.py b/app/task/fetch_agent.py
index a97f59b..00d2cc6 100644
--- a/app/task/fetch_agent.py
+++ b/app/task/fetch_agent.py
@@ -228,9 +228,9 @@
     try:
         if names:
             query = db.query(Dialog.id, Dialog.name, Dialog.description, Dialog.status, Dialog.tenant_id) \
-                .filter( Dialog.name.in_(names))
+                .filter( Dialog.name.in_(names), Dialog.status == "1")
         else:
-            query = db.query(Dialog.id, Dialog.name, Dialog.description, Dialog.status, Dialog.tenant_id)
+            query = db.query(Dialog.id, Dialog.name, Dialog.description, Dialog.status, Dialog.tenant_id).filter( Dialog.status == "1")
 
         results = query.all()
         formatted_results = [
@@ -271,7 +271,7 @@
             if existing_agent:
                 existing_agent.name = row["name"]
                 existing_agent.description = row["description"]
-                existing_agent.status = row["status"]
+                # existing_agent.status = row["status"]
                 existing_agent.mode = row["mode"]
                 # existing_agent.tenant_id = get_rag_user_id(db, row["user_id"], type_dict[dialog_type])
             else:

--
Gitblit v1.8.0