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