Files
New-planet-ai-agent/models/conversation.py
T

51 lines
1.3 KiB
Python

"""Pydantic модели для диалогов с ИИ."""
from datetime import datetime
from typing import List, Optional
from uuid import UUID
from pydantic import BaseModel, Field
class Message(BaseModel):
"""Модель сообщения в диалоге."""
role: str = Field(..., description="Роль: system, user, assistant")
content: str = Field(..., description="Текст сообщения")
timestamp: Optional[datetime] = None
class ConversationCreate(BaseModel):
"""Модель для создания диалога."""
user_id: UUID
title: Optional[str] = None
class ConversationResponse(BaseModel):
"""Модель ответа с диалогом."""
id: UUID
user_id: UUID
title: Optional[str]
messages: List[Message] = Field(default_factory=list)
created_at: datetime
updated_at: datetime
class ChatRequest(BaseModel):
"""Запрос на отправку сообщения в чат."""
message: str = Field(..., min_length=1, max_length=2000)
conversation_id: Optional[UUID] = None
user_id: UUID
class ChatResponse(BaseModel):
"""Ответ от ИИ-агента."""
response: str
conversation_id: UUID
tokens_used: Optional[int] = None
model: Optional[str] = None