Spaces:
Sleeping
Sleeping
| from fastapi import APIRouter, status, Depends, BackgroundTasks, HTTPException | |
| from fastapi.responses import JSONResponse | |
| from src.utils.logger import logger | |
| from pydantic import BaseModel, Field | |
| from typing import List, Dict, Any, Optional | |
| from src.agents.lesson_practice.flow import lesson_practice_agent | |
| import json | |
| import os | |
| import uuid | |
| from datetime import datetime | |
| router = APIRouter(prefix="/lesson", tags=["AI"]) | |
| class LessonPracticeRequest(BaseModel): | |
| unit: str = Field(..., description="Unit of the lesson") | |
| vocabulary: list = Field(..., description="Vocabulary for the lesson") | |
| key_structures: list = Field(..., description="Key structures for the lesson") | |
| practice_questions: list = Field( | |
| ..., description="Practice questions for the lesson" | |
| ) | |
| student_level: str = Field("beginner", description="Student's level of English") | |
| query: str = Field(..., description="User query for the lesson") | |
| session_id: str = Field(..., description="Session ID for the lesson") | |
| async def chat(request: LessonPracticeRequest): | |
| response = await lesson_practice_agent().ainvoke( | |
| { | |
| "unit": request.unit, | |
| "vocabulary": request.vocabulary, | |
| "key_structures": request.key_structures, | |
| "practice_questions": request.practice_questions, | |
| "student_level": request.student_level, | |
| "messages": [request.query], | |
| }, | |
| {"configurable": {"thread_id": request.session_id}}, | |
| ) | |
| return JSONResponse( | |
| content=response["messages"][-1].content, status_code=status.HTTP_200_OK | |
| ) | |