a649fb1192
-добавлены нетворки в докер композ -исправлен рутинг (баг пайчарма) -запросы к ии агентам не проходят из-за ссл сертификата (пробовали отключить, но пока не выходит, нужно доделать)
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 |