AI后端程序增加对RabbitMQ的使用
This commit is contained in:
@@ -1,22 +1,27 @@
|
||||
from models.ChatRequest import ChatRequest
|
||||
from models.BaseResponse import BaseResponse
|
||||
import uuid
|
||||
import db.postgres as pg
|
||||
import uuid
|
||||
from fastapi import APIRouter, Depends
|
||||
from uuid import UUID
|
||||
|
||||
from fastapi import APIRouter, Depends
|
||||
|
||||
import db.postgres as pg
|
||||
from config.security import get_user_id_from_token
|
||||
from models.BaseResponse import BaseResponse
|
||||
from models.ChatRequest import ChatRequest
|
||||
|
||||
serviceRouter = APIRouter()
|
||||
from llm.titleChain import get_title
|
||||
from agent.serviceAgent import get_service_agent_reply
|
||||
from llm.memLLM import take_memory
|
||||
import utils.MyUtils as utils
|
||||
|
||||
|
||||
# 对话列表
|
||||
@serviceRouter.get("/sessionsForService")
|
||||
def getSessions(user_id: UUID = Depends(get_user_id_from_token)):
|
||||
if not user_id:
|
||||
return {"error": "userId is required"}
|
||||
return BaseResponse(data=pg.get_sessions(user_id,'service'))
|
||||
return BaseResponse(data=pg.get_sessions(user_id, "service"))
|
||||
|
||||
|
||||
# 对话
|
||||
@serviceRouter.post("/chatForService")
|
||||
@@ -30,7 +35,7 @@ def chat(req: ChatRequest, user_id: UUID = Depends(get_user_id_from_token)):
|
||||
if not req.sessionId:
|
||||
isNewSession = True
|
||||
req.sessionId = str(uuid.uuid4())
|
||||
pg.insert_session(user_id,req.aiId, req.sessionId, sessionName, "service")
|
||||
pg.insert_session(user_id, req.aiId, req.sessionId, sessionName, "service")
|
||||
else:
|
||||
isNewSession = False
|
||||
pg.update_session_updated_at(req.sessionId)
|
||||
@@ -38,10 +43,27 @@ def chat(req: ChatRequest, user_id: UUID = Depends(get_user_id_from_token)):
|
||||
# 插入用户消息
|
||||
pg.insert_message(req.sessionId, False, req.userInput)
|
||||
|
||||
answer = get_service_agent_reply(aiId=req.aiId,history=pg.get_history_with_time(req.sessionId,6), userInput= req.userInput,kn_bases=pg.get_ai_available_kn_bases(req.aiId))
|
||||
answer = get_service_agent_reply(
|
||||
aiId=req.aiId,
|
||||
history=pg.get_history_with_time(req.sessionId, 6),
|
||||
userInput=req.userInput,
|
||||
kn_bases=pg.get_ai_available_kn_bases(req.aiId),
|
||||
)
|
||||
# 插入 AI 回复
|
||||
pg.insert_message(req.sessionId, True, answer)
|
||||
|
||||
# 异步执行:记忆判断
|
||||
utils.async_db_task(take_memory,req.aiId,req.sessionId,user_id,)
|
||||
return BaseResponse(data={"sessionName":sessionName,"isNewSession":isNewSession,"content":answer,"sessionId": req.sessionId})
|
||||
utils.async_new_task(
|
||||
take_memory,
|
||||
req.aiId,
|
||||
req.sessionId,
|
||||
user_id,
|
||||
)
|
||||
return BaseResponse(
|
||||
data={
|
||||
"sessionName": sessionName,
|
||||
"isNewSession": isNewSession,
|
||||
"content": answer,
|
||||
"sessionId": req.sessionId,
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user