From e26a7859a8900b152e10961d91fa6ad19a8deb9c Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期四, 06 三月 2025 14:41:27 +0800
Subject: [PATCH] 首页通用对话增加
---
app/service/ragflow.py | 34 +++++++++++++++++++++++++---------
1 files changed, 25 insertions(+), 9 deletions(-)
diff --git a/app/service/ragflow.py b/app/service/ragflow.py
index 34e8307..45961a6 100644
--- a/app/service/ragflow.py
+++ b/app/service/ragflow.py
@@ -1,3 +1,5 @@
+from datetime import datetime
+
import httpx
from typing import Union, Dict, List
from fastapi import HTTPException
@@ -17,7 +19,7 @@
return {}
data = response.json()
- ret_code = data.get("retcode")
+ ret_code = data.get("retcode", data.get("code"))
if ret_code == 401:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
@@ -34,7 +36,7 @@
else:
return {}
- async def register(self, username: str, password: str):
+ async def register(self, username: str, password: str, token:str=""):
password = RagflowCrypto(settings.PUBLIC_KEY, settings.PRIVATE_KEY).encrypt(password)
async with httpx.AsyncClient() as client:
response = await client.post(
@@ -46,13 +48,13 @@
raise Exception(f"Ragflow registration failed: {response.text}")
return self._handle_response(response)
- async def login(self, username: str, password: str) -> str:
+ async def login(self, username: str, password: str, email="") -> str:
password = RagflowCrypto(settings.PUBLIC_KEY, settings.PRIVATE_KEY).encrypt(password)
async with httpx.AsyncClient() as client:
response = await client.post(
f"{self.base_url}/v1/user/login",
headers={'Content-Type': 'application/json'},
- json={"email": f"{username}@example.com", "password": password}
+ json={"email": username if "@" in username else f"{username}@example.com", "password": password}
)
if response.status_code != 200:
raise Exception(f"Ragflow login failed: {response.text}")
@@ -97,7 +99,8 @@
{
"id": item["id"],
"name": item["name"],
- "updated_time": item["update_time"]
+ "updated_time": item["update_time"],
+ "update_date": datetime.fromtimestamp(item["update_time"] / 1000.0).strftime('%Y-%m-%d %H:%M:%S')
}
for item in data
if "id" in item and "name" in item and item["name"]
@@ -133,6 +136,8 @@
}
async with httpx.AsyncClient() as client:
response = await client.post(url, headers=headers, json=data)
+ print(response.status_code)
+ print(response.text)
data = self._handle_response(response)
return [
{
@@ -175,7 +180,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}")
@@ -209,15 +214,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)
+ 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)
--
Gitblit v1.8.0