From cf6dd8b28e2cc36cfad43218df1df9261b86bc08 Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Wed, 26 Mar 2025 11:37:44 +0800 Subject: [PATCH] 'commit' --- AI/WxMini/Start.py | 26 ++++++++++++++++++-------- AI/WxMini/Utils/MySQLUtil.py | 3 ++- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/AI/WxMini/Start.py b/AI/WxMini/Start.py index 76c9dafd..cac1a037 100644 --- a/AI/WxMini/Start.py +++ b/AI/WxMini/Start.py @@ -67,7 +67,6 @@ async def on_session_end(person_id): else: history = "无聊天记录" - # 将历史聊天记录发给大模型,让它帮我分析一下 prompt = ( "我将把用户与AI大模型交流的记录发给你,帮我分析一下这个用户是否存在心理健康方面的问题," @@ -106,7 +105,6 @@ client = AsyncOpenAI( ) - @app.post("/aichat/reply") async def reply(person_id: str = Form(...), prompt: str = Form(...)): """ @@ -242,11 +240,12 @@ async def reply(person_id: str = Form(...), prompt: str = Form(...)): # 获取聊天记录 from fastapi import Query + # 登录接口 @app.post("/aichat/login") async def login( - login_name: str = Form(..., description="用户名"), - password: str = Form(..., description="密码") + login_name: str = Form(..., description="用户名"), + password: str = Form(..., description="密码") ): """ 用户登录接口 @@ -254,20 +253,29 @@ async def login( :param password: 密码 :return: 登录结果 """ + flag = True if not login_name or not password: - raise HTTPException(status_code=400, detail="用户名和密码不能为空") + flag = False # 调用 get_user_by_login_name 方法 user = await get_user_by_login_name(app.state.mysql_pool, login_name) if not user: - raise HTTPException(status_code=404, detail="用户不存在") - if user['password'] != password: - raise HTTPException(status_code=401, detail="密码错误") + flag = False + if user and user['password'] != password: + flag = False + + if not flag: + return { + "code": 200, + "message": "登录失败", + "success": False + } # 返回带字段名称的数据 return { "code": 200, "message": "登录成功", + "success": True, "data": { "person_id": user["person_id"], "login_name": user["login_name"], @@ -282,6 +290,7 @@ async def login( } } + # 获取聊天记录 @app.get("/aichat/get_chat_log") async def get_chat_log( @@ -300,6 +309,7 @@ async def get_chat_log( result = await get_chat_log_by_session(app.state.mysql_pool, person_id, page, page_size) return result + @app.get("/aichat/get_risk_page") async def get_risk_page( risk_flag: int = Query(default=1, ge=1, description="1:有风险,0:无风险,2:有风险但已处理"), diff --git a/AI/WxMini/Utils/MySQLUtil.py b/AI/WxMini/Utils/MySQLUtil.py index 50647a2c..91cd6b48 100644 --- a/AI/WxMini/Utils/MySQLUtil.py +++ b/AI/WxMini/Utils/MySQLUtil.py @@ -84,7 +84,8 @@ async def get_chat_log_by_session(mysql_pool, person_id, page=1, page_size=10): records = await cur.fetchall() # 将查询结果反转,确保最新消息显示在最后 - records.reverse() + if records: + records.reverse() # 将查询结果转换为字典列表 result = [