From 74d286ea8e5be898d142f9ebed0d0c72dbdc5900 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期五, 14 二月 2025 16:30:18 +0800
Subject: [PATCH] merge master
---
app/service/ragflow.py | 2 +-
app/api/chat.py | 6 ++++--
app/service/difyService.py | 2 +-
app/api/agent.py | 2 ++
app/api/user.py | 2 ++
app/api/auth.py | 6 +++---
6 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/app/api/agent.py b/app/api/agent.py
index fd31c96..0a6429e 100644
--- a/app/api/agent.py
+++ b/app/api/agent.py
@@ -231,6 +231,8 @@
for i in session.log_to_json().get("message", []):
if i.get("role") == "user":
tmp_data["question"] = i.get("content")
+ if "upload_filenames" in i:
+ tmp_data["upload_filenames"] = i.get("upload_filenames")
elif i.get("role") == "assistant":
if isinstance(i.get("content"), dict):
content = i.get("content", {})
diff --git a/app/api/auth.py b/app/api/auth.py
index b43e9d1..00b70be 100644
--- a/app/api/auth.py
+++ b/app/api/auth.py
@@ -126,16 +126,14 @@
continue
try:
name = login_data.username
- email = ""
app_password = login_data.password
user_app = await UserAppDao(db).get_data_by_id(user.id, app["id"])
if user_app:
name = user_app.username
- email = user_app.email
app_password = user_app.decrypted_password(user_app.password)
else:
await update_user_info(db, user.id)
- token = await service.login(name, app_password,email=email)
+ token = await service.login(name, app_password)
token_dict[app["id"]] = token
except Exception as e:
return Response(code=500, msg=f"Failed to login with {app['id']}: {str(e)}")
@@ -178,6 +176,8 @@
@router.post("/v2/register", response_model=Response)
async def register_v2(user: UserCreate, db=Depends(get_db)):
+ if "@" in user.username:
+ return Response(code=400, msg="Username cannot contain @")
password = await password_rsa(user.password)
if not is_valid_password(password):
return Response(code=400, msg="The password must be at least 8 and contain both numbers and letters")
diff --git a/app/api/chat.py b/app/api/chat.py
index 8845322..6e54cb9 100644
--- a/app/api/chat.py
+++ b/app/api/chat.py
@@ -435,6 +435,7 @@
receive_message = await websocket.receive_json()
print(f"Received from client {chat_id}: {receive_message}")
upload_files = receive_message.get('upload_files', [])
+ upload_filenames = receive_message.get('upload_filenames', [])
title = receive_message.get('title', "")
sub_titles = receive_message.get('sub_titles', "")
workflow_type = receive_message.get('workflow', 1)
@@ -458,7 +459,7 @@
AgentType.DIFY,
current_user.id,
{"role": "user", "content": title if title else title_query, "type": workflow_type,
- "is_clean": is_clean},
+ "is_clean": is_clean, "upload_filenames":upload_filenames},
workflow_type
)
conversation_id = session.conversation_id
@@ -823,6 +824,7 @@
receive_message = await websocket.receive_json()
print(f"Received from client {chat_id}: {receive_message}")
upload_file_id = receive_message.get('upload_file_id', [])
+ upload_filenames = receive_message.get('upload_filenames', [])
question = receive_message.get('message', "")
if not question and not image_url:
await websocket.send_json({"message": "Invalid request", "type": "error"})
@@ -834,7 +836,7 @@
agent_id,
AgentType.DIFY,
current_user.id,
- {"role": "user", "content": question}
+ {"role": "user", "content": question, "upload_filenames": upload_filenames}
)
conversation_id = session.conversation_id
except Exception as e:
diff --git a/app/api/user.py b/app/api/user.py
index 57171ff..c66869e 100644
--- a/app/api/user.py
+++ b/app/api/user.py
@@ -23,6 +23,8 @@
async def add_user(user: UserInfo, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
if not user.userName:
return Response(code=400, msg="The userName cannot be empty!")
+ if "@" in user.userName:
+ return Response(code=400, msg="Username cannot contain @")
if user.pwd:
if not is_valid_password(user.pwd):
return Response(code=400, msg="The password must be at least 8 and contain both numbers and letters")
diff --git a/app/service/difyService.py b/app/service/difyService.py
index 21117e8..595ca4c 100644
--- a/app/service/difyService.py
+++ b/app/service/difyService.py
@@ -74,7 +74,7 @@
async def login(self, username: str, password: str, remember_me=True, invite_token:str="", email="") -> str:
# password = RagflowCrypto(settings.PUBLIC_KEY, settings.PRIVATE_KEY).encrypt(password)
- data = {"email":email if email else f"{username}@basic.com", "password": password, "remember_me": remember_me, "invite_token": invite_token,
+ data = {"email":username if "@" in username else f"{username}@basic.com", "password": password, "remember_me": remember_me, "invite_token": invite_token,
"language": "zh-Hans"}
async with httpx.AsyncClient() as client:
diff --git a/app/service/ragflow.py b/app/service/ragflow.py
index 08cc26f..f0e6fd8 100644
--- a/app/service/ragflow.py
+++ b/app/service/ragflow.py
@@ -54,7 +54,7 @@
response = await client.post(
f"{self.base_url}/v1/user/login",
headers={'Content-Type': 'application/json'},
- json={"email": email if email else 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}")
--
Gitblit v1.8.0