Spaces:
Sleeping
Sleeping
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] |