chatbot-gitconnect / app /models.py
quantumbit's picture
preprocessing endpoint fixed and chat endpoint has been updated to specific results-sem wise
d0220ae
from typing import Dict, List, Literal
from pydantic import BaseModel, Field, HttpUrl
LangCode = Literal["en", "hn", "mr", "kn"]
class CourseInput(BaseModel):
course_code: str = Field(..., min_length=1)
name: str = Field(..., min_length=1)
course_type: str = Field(..., min_length=1)
syllabus_url: HttpUrl
semester: int = Field(..., ge=1, le=12)
class CourseSummary(BaseModel):
course_code: str
ai_summary: Dict[LangCode, str]
class CourseProcessError(BaseModel):
course_code: str
error: str
class SyllabusProcessResponse(BaseModel):
results: List[CourseSummary]
failed: List[CourseProcessError] = Field(default_factory=list)
total_received: int
total_processed: int
total_failed: int
class ChatMessage(BaseModel):
role: Literal["user", "assistant", "system"]
content: str
class ChatRequest(BaseModel):
query: str
history: List[ChatMessage] = Field(default_factory=list, max_length=5)
student_id: int = Field(..., ge=1)
lang_code: LangCode
semester: int = Field(..., ge=1, le=12)
class ChatResponse(BaseModel):
reply_markdown: str