-добавлены нетворки в докер композ -исправлен рутинг (баг пайчарма) -запросы к ии агентам не проходят из-за ссл сертификата (пробовали отключить, но пока не выходит, нужно доделать)
78 lines
2.4 KiB
Python
78 lines
2.4 KiB
Python
from pydantic import BaseModel, Field
|
||
from typing import Optional, List, Dict, Any
|
||
from datetime import datetime
|
||
|
||
|
||
class ChatRequest(BaseModel):
|
||
message: str = Field(..., min_length=1, max_length=2000)
|
||
conversation_id: Optional[str] = None
|
||
|
||
|
||
class ChatResponse(BaseModel):
|
||
response: str
|
||
conversation_id: str
|
||
tokens_used: Optional[int] = None
|
||
model: Optional[str] = None
|
||
|
||
|
||
class ScheduleGenerateRequest(BaseModel):
|
||
child_age: int = Field(..., ge=1, le=18)
|
||
preferences: List[str] = Field(default_factory=list)
|
||
date: str # ISO format date string
|
||
description: Optional[str] = None
|
||
|
||
|
||
class ScheduleGenerateResponse(BaseModel):
|
||
schedule_id: str
|
||
title: str
|
||
tasks: List[Dict[str, Any]]
|
||
tokens_used: Optional[int] = None
|
||
|
||
|
||
class ConversationHistory(BaseModel):
|
||
conversation_id: str
|
||
messages: List[Dict[str, Any]]
|
||
created_at: datetime
|
||
updated_at: datetime
|
||
|
||
class Config:
|
||
from_attributes = True
|
||
|
||
|
||
class ConversationListItem(BaseModel):
|
||
"""Элемент списка разговоров"""
|
||
conversation_id: str
|
||
last_message: Optional[str] = None
|
||
created_at: datetime
|
||
updated_at: datetime
|
||
message_count: int = 0
|
||
|
||
class Config:
|
||
from_attributes = True
|
||
|
||
|
||
class ScheduleUpdateRequest(BaseModel):
|
||
"""Запрос на обновление расписания через ИИ"""
|
||
user_request: str = Field(..., min_length=1, max_length=1000, description="Описание желаемых изменений")
|
||
|
||
|
||
class ScheduleUpdateResponse(BaseModel):
|
||
"""Ответ после обновления расписания"""
|
||
schedule_id: str
|
||
title: str
|
||
tasks: List[Dict[str, Any]]
|
||
tokens_used: Optional[int] = None
|
||
|
||
|
||
class RecommendationRequest(BaseModel):
|
||
"""Запрос на получение рекомендаций"""
|
||
preferences: List[str] = Field(default_factory=list, description="Предпочтения пользователя")
|
||
category: Optional[str] = Field(None, description="Категория заданий")
|
||
completed_tasks: Optional[List[str]] = Field(default_factory=list, description="Уже выполненные задания")
|
||
top_k: int = Field(5, ge=1, le=20, description="Количество рекомендаций")
|
||
|
||
|
||
class RecommendationResponse(BaseModel):
|
||
"""Ответ с рекомендациями"""
|
||
recommendations: List[Dict[str, Any]]
|
||
total: int |