feat:增加考试接口

This commit is contained in:
2026-08-02 22:57:36 +08:00
parent 5497b881c6
commit e84f4e7e18
7 changed files with 125 additions and 25 deletions

View File

@@ -1,10 +1,10 @@
from langchain_core.messages import AIMessageChunk, HumanMessage
from agent.study import question_agent, knowledge_agent
from schemas.agent import QueryQuestionRequest, QueryKnowledgeRequest
from agent.study import question_agent, knowledge_agent, exam_agent
from schemas.agent import QueryQuestionRequest, QueryKnowledgeRequest, QueryExamRequest
def query_question_agent(query: QueryQuestionRequest):
def generate_question_agent(query: QueryQuestionRequest):
try:
user_msg = f"学习内容:\n{query.message}"
@@ -21,7 +21,7 @@ def query_question_agent(query: QueryQuestionRequest):
yield "信息检索失败,请重新输入问题提问"
def query_knowledge_agent(query: QueryKnowledgeRequest):
def generate_knowledge_agent(query: QueryKnowledgeRequest):
try:
user_msg = f"学科:{query.subject},模块:{query.module} 名称:{query.name}"
@@ -36,3 +36,20 @@ def query_knowledge_agent(query: QueryKnowledgeRequest):
except Exception as e:
print(f"\n[错误]: {str(e)}")
yield "信息检索失败,请重新输入问题提问"
def generate_exam_agent(query: QueryExamRequest):
try:
user_msg = f"学科:{query.subject},题目总数:{query.total}"
# 流式调用Agent
for chunk, metadata in exam_agent.stream(
{"messages": [HumanMessage(content=user_msg)]},
stream_mode="messages"
):
if isinstance(chunk, AIMessageChunk):
if isinstance(chunk, AIMessageChunk) and chunk.content:
yield chunk.content
except Exception as e:
print(f"\n[错误]: {str(e)}")
yield "信息检索失败,请重新输入问题提问"