|
|
|
@ -3,7 +3,7 @@ import logging
|
|
|
|
|
import time
|
|
|
|
|
import uuid
|
|
|
|
|
from contextlib import asynccontextmanager
|
|
|
|
|
|
|
|
|
|
from fastapi import Query
|
|
|
|
|
from fastapi import FastAPI, Form, HTTPException
|
|
|
|
|
from openai import AsyncOpenAI
|
|
|
|
|
from WxMini.Milvus.Config.MulvusConfig import *
|
|
|
|
@ -104,6 +104,58 @@ client = AsyncOpenAI(
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 登录接口
|
|
|
|
|
@app.post("/aichat/login")
|
|
|
|
|
async def login(
|
|
|
|
|
login_name: str = Form(..., description="用户名"),
|
|
|
|
|
password: str = Form(..., description="密码")
|
|
|
|
|
):
|
|
|
|
|
"""
|
|
|
|
|
用户登录接口
|
|
|
|
|
:param login_name: 用户名
|
|
|
|
|
:param password: 密码
|
|
|
|
|
:return: 登录结果
|
|
|
|
|
"""
|
|
|
|
|
flag = True
|
|
|
|
|
if not login_name or not password:
|
|
|
|
|
flag = False
|
|
|
|
|
|
|
|
|
|
# 调用 get_user_by_login_name 方法
|
|
|
|
|
user = await get_user_by_login_name(app.state.mysql_pool, login_name)
|
|
|
|
|
if not user:
|
|
|
|
|
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"],
|
|
|
|
|
"identity_id": user["identity_id"],
|
|
|
|
|
"person_name": user["person_name"],
|
|
|
|
|
"xb_name": user["xb_name"],
|
|
|
|
|
"city_name": user["city_name"],
|
|
|
|
|
"area_name": user["area_name"],
|
|
|
|
|
"school_name": user["school_name"],
|
|
|
|
|
"grade_name": user["grade_name"],
|
|
|
|
|
"class_name": user["class_name"]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 与用户交流聊天
|
|
|
|
|
@app.post("/aichat/reply")
|
|
|
|
|
async def reply(person_id: str = Form(...), prompt: str = Form(...)):
|
|
|
|
|
"""
|
|
|
|
@ -236,60 +288,6 @@ async def reply(person_id: str = Form(...), prompt: str = Form(...)):
|
|
|
|
|
milvus_pool.release_connection(connection)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 获取聊天记录
|
|
|
|
|
from fastapi import Query
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 登录接口
|
|
|
|
|
@app.post("/aichat/login")
|
|
|
|
|
async def login(
|
|
|
|
|
login_name: str = Form(..., description="用户名"),
|
|
|
|
|
password: str = Form(..., description="密码")
|
|
|
|
|
):
|
|
|
|
|
"""
|
|
|
|
|
用户登录接口
|
|
|
|
|
:param login_name: 用户名
|
|
|
|
|
:param password: 密码
|
|
|
|
|
:return: 登录结果
|
|
|
|
|
"""
|
|
|
|
|
flag = True
|
|
|
|
|
if not login_name or not password:
|
|
|
|
|
flag = False
|
|
|
|
|
|
|
|
|
|
# 调用 get_user_by_login_name 方法
|
|
|
|
|
user = await get_user_by_login_name(app.state.mysql_pool, login_name)
|
|
|
|
|
if not user:
|
|
|
|
|
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"],
|
|
|
|
|
"identity_id": user["identity_id"],
|
|
|
|
|
"person_name": user["person_name"],
|
|
|
|
|
"xb_name": user["xb_name"],
|
|
|
|
|
"city_name": user["city_name"],
|
|
|
|
|
"area_name": user["area_name"],
|
|
|
|
|
"school_name": user["school_name"],
|
|
|
|
|
"grade_name": user["grade_name"],
|
|
|
|
|
"class_name": user["class_name"]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 获取聊天记录
|
|
|
|
|
@app.get("/aichat/get_chat_log")
|
|
|
|
|
async def get_chat_log(
|
|
|
|
|