| from pydantic import BaseModel, Field
|
| from typing import Optional, Union, List
|
| from datetime import datetime
|
| from .source import SourceResponse
|
|
|
|
|
| class MessageBase(BaseModel):
|
| session_id: int
|
|
|
| content: Union[dict, list[dict]]
|
| parent_message_id: Optional[int] = None
|
| model_used: Optional[str] = None
|
| confidence_score: Optional[float] = None
|
| liked: Optional[bool] = None
|
| feedback: Optional[str] = ""
|
| stars: Optional[int] = 0
|
| generation_metadata: Optional[dict] = None
|
|
|
|
|
| class MessageCreate(MessageBase):
|
| user_id: Optional[int] = None
|
|
|
|
|
| class MessageUpdate(BaseModel):
|
| content: Optional[Union[dict, list[dict]]] = None
|
| liked: Optional[bool] = None
|
| feedback: Optional[str] = None
|
| stars: Optional[int] = None
|
|
|
|
|
| class MessageResponse(MessageBase):
|
| id: int
|
| user_id: Optional[int] = None
|
| created_at: datetime
|
| updated_at: datetime
|
| sources: List[SourceResponse] = []
|
|
|
| class Config:
|
| from_attributes = True
|
|
|