exam_qa.py 902 B

1234567891011121314151617181920212223242526272829303132
  1. from fastapi import APIRouter, Depends
  2. from fastapi.responses import StreamingResponse
  3. from pydantic import BaseModel, Field
  4. from app.core.security import get_current_user
  5. router = APIRouter(prefix="/exam/qa", tags=["学习-答疑"])
  6. class ExamQARequest(BaseModel):
  7. question: str = Field(..., min_length=1, max_length=2000)
  8. subject: str = Field(default="", description="科目过滤")
  9. @router.post("/ask")
  10. async def exam_ask(
  11. req: ExamQARequest,
  12. user: dict = Depends(get_current_user),
  13. ):
  14. return {"answer": "待考试知识库构建后可用", "sources": []}
  15. @router.post("/stream")
  16. async def exam_stream(
  17. req: ExamQARequest,
  18. user: dict = Depends(get_current_user),
  19. ):
  20. async def stream_gen():
  21. yield "data: 待考试知识库构建后可用\n\n"
  22. yield "data: [DONE]\n\n"
  23. return StreamingResponse(stream_gen(), media_type="text/event-stream")