Pix-Agent / app /models /mongodb_models.py
Cuong2004's picture
first commit
ac0f906
raw
history blame
1.64 kB
from pydantic import BaseModel, Field, ConfigDict
from typing import Optional, List, Dict, Any
from datetime import datetime
import uuid
class SessionBase(BaseModel):
"""Base model for session data"""
session_id: str = Field(default_factory=lambda: str(uuid.uuid4()))
factor: str
action: str
first_name: str
last_name: Optional[str] = None
message: Optional[str] = None
user_id: str
username: Optional[str] = None
class SessionCreate(SessionBase):
"""Model for creating new session"""
response: Optional[str] = None
class SessionResponse(SessionBase):
"""Response model for session data"""
created_at: str
response: Optional[str] = None
model_config = ConfigDict(
json_schema_extra={
"example": {
"session_id": "123e4567-e89b-12d3-a456-426614174000",
"factor": "user",
"action": "asking_freely",
"created_at": "2023-06-01 14:30:45",
"first_name": "John",
"last_name": "Doe",
"message": "How can I find emergency contacts?",
"user_id": "12345678",
"username": "johndoe",
"response": "You can find emergency contacts in the Emergency section..."
}
}
)
class HistoryRequest(BaseModel):
"""Request model for history"""
user_id: str
n: int = 3
class QuestionAnswer(BaseModel):
"""Model for question-answer pair"""
question: str
answer: str
class HistoryResponse(BaseModel):
"""Response model for history"""
history: List[QuestionAnswer]