"""Входные параметры агента «Погода». AMS валидирует входящие params этой моделью до вызова handler.step. Важно: loader AMS создаёт `Params()` без аргументов (для интроспекции UI), поэтому у всех полей обязаны быть значения по умолчанию. Пустой город отсекается уже в handler'е понятным сообщением. """ from pydantic import BaseModel, ConfigDict, Field class Params(BaseModel): # Обрезаем случайные пробелы по краям — « Казань » и «Казань» эквивалентны. model_config = ConfigDict(str_strip_whitespace=True) city: str = Field( default="", max_length=100, description="Название города (кириллица или латиница), например «Казань»", json_schema_extra={"ui_type": "input", "ui_main": True}, )