|
|
@ -17,7 +17,7 @@ from WxMini.Milvus.Utils.MilvusCollectionManager import MilvusCollectionManager
|
|
|
|
from WxMini.Milvus.Utils.MilvusConnectionPool import *
|
|
|
|
from WxMini.Milvus.Utils.MilvusConnectionPool import *
|
|
|
|
from WxMini.Utils.EmbeddingUtil import text_to_embedding
|
|
|
|
from WxMini.Utils.EmbeddingUtil import text_to_embedding
|
|
|
|
from WxMini.Utils.MySQLUtil import init_mysql_pool, save_chat_to_mysql, get_chat_log_by_session, get_user_by_login_name, \
|
|
|
|
from WxMini.Utils.MySQLUtil import init_mysql_pool, save_chat_to_mysql, get_chat_log_by_session, get_user_by_login_name, \
|
|
|
|
get_chat_logs_by_risk_flag
|
|
|
|
get_chat_logs_by_risk_flag, get_chat_logs_summary
|
|
|
|
from WxMini.Utils.MySQLUtil import update_risk, get_last_chat_log_id
|
|
|
|
from WxMini.Utils.MySQLUtil import update_risk, get_last_chat_log_id
|
|
|
|
from WxMini.Utils.OssUtil import upload_mp3_to_oss_from_memory, get_sts_token
|
|
|
|
from WxMini.Utils.OssUtil import upload_mp3_to_oss_from_memory, get_sts_token
|
|
|
|
from WxMini.Utils.TtsUtil import TTS
|
|
|
|
from WxMini.Utils.TtsUtil import TTS
|
|
|
@ -402,7 +402,7 @@ async def get_risk_chat_logs(
|
|
|
|
offset = (page - 1) * page_size
|
|
|
|
offset = (page - 1) * page_size
|
|
|
|
|
|
|
|
|
|
|
|
# 调用 get_chat_logs_by_risk_flag 方法
|
|
|
|
# 调用 get_chat_logs_by_risk_flag 方法
|
|
|
|
logs, total = await get_chat_logs_by_risk_flag(app.state.mysql_pool, risk_flag, offset, page_size)
|
|
|
|
logs, total = await get_chat_logs_by_risk_flag(app.state.mysql_pool, risk_flag,current_user["person_id"], offset, page_size)
|
|
|
|
if not logs:
|
|
|
|
if not logs:
|
|
|
|
raise HTTPException(status_code=404, detail="未找到符合条件的记录")
|
|
|
|
raise HTTPException(status_code=404, detail="未找到符合条件的记录")
|
|
|
|
|
|
|
|
|
|
|
@ -414,13 +414,70 @@ async def get_risk_chat_logs(
|
|
|
|
"total": total,
|
|
|
|
"total": total,
|
|
|
|
"page": page,
|
|
|
|
"page": page,
|
|
|
|
"page_size": page_size,
|
|
|
|
"page_size": page_size,
|
|
|
|
|
|
|
|
"logs": logs
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 获取风险统计接口
|
|
|
|
|
|
|
|
@app.get("/aichat/chat_logs_summary")
|
|
|
|
|
|
|
|
async def chat_logs_summary(
|
|
|
|
|
|
|
|
risk_flag: int = Query(..., description="风险标志(1 表示有风险,0 表示无风险 ,2:处理完毕)"),
|
|
|
|
|
|
|
|
page: int = Query(default=1, ge=1, description="当前页码(默认值为 1)"),
|
|
|
|
|
|
|
|
page_size: int = Query(default=10, ge=1, le=100, description="每页记录数(默认值为 10,最大值为 100)"),
|
|
|
|
|
|
|
|
current_user: dict = Depends(get_current_user)
|
|
|
|
|
|
|
|
):
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
获取风险统计接口,支持分页和风险标志过滤
|
|
|
|
|
|
|
|
:param risk_flag: 风险标志
|
|
|
|
|
|
|
|
:param page: 当前页码
|
|
|
|
|
|
|
|
:param page_size: 每页记录数
|
|
|
|
|
|
|
|
:param current_user: 当前用户信息
|
|
|
|
|
|
|
|
:return: 分页数据
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
# 验证 risk_flag 的值
|
|
|
|
|
|
|
|
if risk_flag not in {0, 1, 2}:
|
|
|
|
|
|
|
|
raise HTTPException(status_code=400, detail="risk_flag 的值必须是 0、1 或 2")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 计算分页偏移量
|
|
|
|
|
|
|
|
offset = (page - 1) * page_size
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 调用 get_chat_logs_summary 方法
|
|
|
|
|
|
|
|
logs, total = await get_chat_logs_summary(app.state.mysql_pool, risk_flag, offset, page_size)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 如果未找到记录,返回友好提示
|
|
|
|
|
|
|
|
if not logs:
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
|
|
"success": True,
|
|
|
|
|
|
|
|
"message": "未找到符合条件的记录",
|
|
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
|
|
"total": 0,
|
|
|
|
|
|
|
|
"page": page,
|
|
|
|
|
|
|
|
"page_size": page_size,
|
|
|
|
|
|
|
|
"total_pages": 0,
|
|
|
|
|
|
|
|
"logs": []
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 计算总页数
|
|
|
|
|
|
|
|
total_pages = (total + page_size - 1) // page_size
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 返回分页数据
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
|
|
"success": True,
|
|
|
|
|
|
|
|
"message": "查询成功",
|
|
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
|
|
"total": total,
|
|
|
|
|
|
|
|
"page": page,
|
|
|
|
|
|
|
|
"page_size": page_size,
|
|
|
|
|
|
|
|
"total_pages": total_pages,
|
|
|
|
"logs": logs,
|
|
|
|
"logs": logs,
|
|
|
|
"login_name": current_user["login_name"],
|
|
|
|
"login_name": current_user["login_name"],
|
|
|
|
"person_name": current_user["person_name"]
|
|
|
|
"person_name": current_user["person_name"]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 获取上传OSS的授权Token
|
|
|
|
# 获取上传OSS的授权Token
|
|
|
|
@app.get("/aichat/get_oss_upload_token")
|
|
|
|
@app.get("/aichat/get_oss_upload_token")
|
|
|
|
async def get_oss_upload_token(current_user: dict = Depends(get_current_user)):
|
|
|
|
async def get_oss_upload_token(current_user: dict = Depends(get_current_user)):
|
|
|
|