From 9c275b214f9619a64cd2998596ce696610185eb4 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期二, 19 十一月 2024 10:05:56 +0800
Subject: [PATCH] 增加删除

---
 app/service/bisheng.py |   53 +++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 49 insertions(+), 4 deletions(-)

diff --git a/app/service/bisheng.py b/app/service/bisheng.py
index d56a00d..2316e61 100644
--- a/app/service/bisheng.py
+++ b/app/service/bisheng.py
@@ -33,7 +33,7 @@
                 json={"user_name": username, "password": password},
                 headers={'Content-Type': 'application/json'}
             )
-            self._check_response(response)
+            return self._check_response(response)
 
     async def login(self, username: str, password: str) -> str:
         public_key = await self.get_public_key_api()
@@ -73,6 +73,30 @@
             ]
             return result
 
+    async def get_session_log(self, token: str, agent_id: str, conversation_id: str):
+        url = (
+            f"{self.base_url}/api/v1/chat/history?"
+            f"flow_id={agent_id}&"
+            f"chat_id={conversation_id}&page_size=30&id="
+        )
+        headers = {'cookie': f"access_token_cookie={token};"}
+        async with httpx.AsyncClient() as client:
+            response = await client.get(url, headers=headers)
+            response.raise_for_status()
+            data = self._check_response(response)
+            session_log = [
+                    {
+                        "message": message.get("message"),
+                        "role": message.get("category"),
+                        "ts": message.get("create_time")
+                    }
+                    for message in data
+                ]
+
+            # 鎶妔ession_log 鎸塼s 鍗囧簭鎺掑簭
+            session_log.sort(key=lambda x: x['ts'])
+            return session_log
+
     async def variable_list(self, token: str, agent_id: str) -> list:
         url = f"{self.base_url}/api/v1/variable/list?flow_id={agent_id}"
         headers = {'cookie': f"access_token_cookie={token};"}
@@ -81,13 +105,12 @@
             data = self._check_response(response)
             return data
 
-    async def upload(self, token: str, file: bytes) -> dict:
+    async def upload(self, token: str, filename: str, file: bytes) -> dict:
         url = f"{self.base_url}/api/v1/knowledge/upload"
         headers = {'cookie': f"access_token_cookie={token};"}
 
         # 鍒涘缓琛ㄥ崟鏁版嵁锛屽寘鍚枃浠�
-        files = {"file": ("file", file)}  # 浣跨敤榛樿鏂囦欢鍚� "file"
-
+        files = {"file": (filename, file)}
         async with httpx.AsyncClient() as client:
             response = await client.post(url, headers=headers, files=files)
             data = self._check_response(response)
@@ -97,3 +120,25 @@
             }
 
             return result
+
+    async def user_list(self, token: str) -> list:
+        url = f"{self.base_url}/api/v1/user/list"
+        headers = {'cookie': f"access_token_cookie={token};"}
+        async with httpx.AsyncClient() as client:
+            response = await client.get(url, headers=headers)
+            data = self._check_response(response)
+            return data
+
+
+    async def change_password_public(self, token: str, username: str, password: str, new_password:str) -> dict:
+        url = f"{self.base_url}/api/v1/user/change_password_public"
+        headers = {'cookie': f"access_token_cookie={token};"}
+        public_key = await self.get_public_key_api()
+        password = BishengCrypto(public_key, settings.PRIVATE_KEY).encrypt(password)
+        new_password = BishengCrypto(public_key, settings.PRIVATE_KEY).encrypt(new_password)
+        json = {"username": username, "password": password, "new_password": new_password}
+        async with httpx.AsyncClient() as client:
+            response = await client.post(url, headers=headers, json=json)
+            data = self._check_response(response)
+
+            return data

--
Gitblit v1.8.0