Added code samples for AI-Agents
This commit is contained in:
50
models/conversation.py
Normal file
50
models/conversation.py
Normal file
@@ -0,0 +1,50 @@
|
||||
"""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
|
||||
|
||||
Reference in New Issue
Block a user