Quick-Understand / api /models /pydantic_models.py
mafzaal's picture
Refactor user session management and prompt handling in FastAPI and frontend
73641c0
from typing import List, Dict, Optional
from pydantic import BaseModel
# Model for prompt templates
class PromptTemplate(BaseModel):
system_template: str
user_template: str
# Model for user identification
class UserIdentification(BaseModel):
user_id: str
# Extended query request with optional user ID
class QueryRequest(BaseModel):
session_id: str
query: str
user_id: Optional[str] = None
class QueryResponse(BaseModel):
response: str
session_id: str
# Document summary models
class DocumentSummaryRequest(BaseModel):
session_id: str
user_id: Optional[str] = None
class DocumentSummaryResponse(BaseModel):
keyTopics: List[str]
entities: List[str]
wordCloudData: List[dict]
documentStructure: List[dict]
# Quiz models
class QuizQuestion(BaseModel):
id: str
text: str
options: List[str]
correctAnswer: str
class GenerateQuizRequest(BaseModel):
session_id: str
num_questions: int = 5
user_id: Optional[str] = None
class GenerateQuizResponse(BaseModel):
questions: List[QuizQuestion]