article_quiz.py 825 B

123456789101112131415161718192021222324
  1. from fastapi import APIRouter
  2. from app.models.article_quiz import ArticleQuizRequest, ArticleQuizResponse
  3. from app.graphs.article_quiz_graph import ArticleQuizAgent
  4. import logging
  5. logger = logging.getLogger(__name__)
  6. router = APIRouter(prefix="/api/v1", tags=["article_quiz"])
  7. _agent = None
  8. def get_agent() -> ArticleQuizAgent:
  9. global _agent
  10. if _agent is None:
  11. _agent = ArticleQuizAgent()
  12. return _agent
  13. @router.post("/article/quiz/generate", response_model=ArticleQuizResponse)
  14. async def generate_article_quiz(req: ArticleQuizRequest):
  15. agent = get_agent()
  16. result = await agent.run(req.article_title, req.article_content, req.profile_summary)
  17. return ArticleQuizResponse(questions=result.get("questions", []),
  18. fallback_used=result.get("fallback_used", True))