|
|
|
@ -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:有风险但已处理"),
|
|
|
|
|