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,8 +1,10 @@
from .agent import router as agent_router
from .library import router as library_router
from .practice import router as practice_router
from .mistake import router as mistake_router
routers = [
agent_router,
library_router,
practice_router,
mistake_router,

31
routers/agent.py Normal file
View File

@@ -0,0 +1,31 @@
from fastapi import APIRouter
from starlette.responses import StreamingResponse
from schemas.agent import QueryQuestionRequest, QueryKnowledgeRequest, QueryExamRequest
from service import agent_service
router = APIRouter(prefix="/agent", tags=["Agent"])
@router.post("/question")
def generate_question(query: QueryQuestionRequest):
return StreamingResponse(
agent_service.generate_question_agent(query),
media_type="text/event-stream",
)
@router.post("/knowledge")
def generate_knowledge(query: QueryKnowledgeRequest):
return StreamingResponse(
agent_service.generate_knowledge_agent(query),
media_type="text/event-stream",
)
@router.post("/exam")
def generate_exam(query: QueryExamRequest):
return StreamingResponse(
agent_service.generate_exam_agent(query),
media_type="text/event-stream",
)

View File

@@ -1,12 +1,10 @@
from typing import List
from fastapi import APIRouter, Depends, File, Form, UploadFile
from sqlalchemy.ext.asyncio import AsyncSession
from starlette.responses import StreamingResponse
from database import get_db
from schemas.library import LibraryFileRequest, LibraryFileResponse
from schemas.agent import QueryQuestionRequest, QueryKnowledgeRequest
from service import library_service, agent_service
from service import library_service
from storage import upload_rustfs
from ocr import ocr_from_url
@@ -19,22 +17,6 @@ def upload(file: UploadFile = File(...), filename: str = Form(...)):
return ocr_from_url(url)
@router.post("/question")
def generate_question(query: QueryQuestionRequest):
return StreamingResponse(
agent_service.query_question_agent(query),
media_type="text/event-stream",
)
@router.post("/knowledge")
def generate_knowledge(query: QueryKnowledgeRequest):
return StreamingResponse(
agent_service.query_knowledge_agent(query),
media_type="text/event-stream",
)
@router.get("/files", response_model=List[LibraryFileResponse])
async def list_files(db: AsyncSession = Depends(get_db)):
return await library_service.list_files(db)