AI后端程序增加对RabbitMQ的使用

This commit is contained in:
BBIT-Kai
2025-10-09 14:11:37 +08:00
parent 3fb43c09f3
commit 4d38f5483e
12 changed files with 175 additions and 134 deletions
+12
View File
@@ -0,0 +1,12 @@
from fastapi import APIRouter
from models.AnalysisRequest import AnalysisRequest
from service.Analyze import mq_new_analysis
rqRouter = APIRouter()
@rqRouter.post("/analyze")
def send_analysis_request(req: AnalysisRequest):
mq_new_analysis(req)
return {"status": "queued"}
+32 -10
View File
@@ -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,
}
)