AI в продукте — это не «прикрутить чат» в углу. Это переговоры с моделью на каждом запросе: что мы готовы ей отдать, что мы готовы от неё принять и что мы скажем пользователю, если она ответила странно.

Контракт с моделью
- Жёсткий формат на входе — минимум свободного текста, максимум структурированных полей.
- Контролируемый формат на выходе — function-calling или json-schema, и валидатор поверх.
- Таймауты и fallback: если модель не ответила за N секунд — рисуем плейсхолдер, не белый экран.
Контракт с пользователем
Главное правило — не врать. Если ответ сгенерирован — это видно. Если ответ не уверенный — это видно. Если что-то пошло не так — пользователь видит причину, а не «попробуйте позже».
Модель — это зависимость с нестабильным SLA. Относись к ней как к внешнему сервису, который иногда врёт, и проектируй интерфейс вокруг этого факта.