# Интерфейс для функций с ИИ: ожидание, ошибки и доверие

> Как показывать ожидание и потоковый ответ, что делать с ошибками, почему результат должен легко правиться и какие сигналы помогают человеку доверять ответу.

Published: 2026-08-02 · Source: https://subxcat.com/ru/articles/ai-ux-patterns · Author: SUBXCAT

Функция с моделью отличается от обычной кнопки тремя вещами: она отвечает долго, отвечает каждый раз немного по-разному и иногда ошибается уверенным тоном. Интерфейс, сделанный по привычным правилам, этого не учитывает — и хорошая модель выглядит в нём хуже, чем есть.

## Ожидание

Несколько секунд с неподвижным экраном воспринимаются как зависание. Человек нажимает кнопку ещё раз, обновляет страницу или уходит. Что помогает:

- **мгновенная реакция на нажатие** — кнопка блокируется, появляется индикатор, запрос виден как принятый. Повторное нажатие не должно отправлять второй запрос;
- **понятные этапы** — если работа идёт в несколько шагов, покажи их: «ищу в документах», «составляю ответ». Только настоящие этапы, а не декоративные надписи, которые меняются по таймеру;
- **возможность отменить** — длинную генерацию должно быть можно остановить. Это заодно экономит деньги на ответах, которые никто не дочитает.

## Потоковый вывод

Если ответ — текст для человека, показывай его по мере генерации. Первые слова через секунду ощущаются быстрее, чем весь ответ через восемь, даже если общее время одинаковое.

Но поток подходит не всегда:

- если результат — данные для интерфейса (форма, таблица, карточка), показывать полусобранный JSON бессмысленно. Лучше дождаться и проверить;
- если ответ нужно проверить до показа — на запрещённое содержимое, на соответствие формату, — поток показывает то, что потом, возможно, придётся забрать;
- при потоке не дёргай вёрстку: текст должен расти вниз, а не сдвигать кнопки под пальцем.

## Ошибки

Ошибки у функций с ИИ бывают двух видов, и их нужно различать.

**Технические** — провайдер не ответил, превышен лимит, сеть. Здесь работает обычная вежливость: человеческое сообщение вместо кода ошибки, кнопка «попробовать ещё раз», сохранённый ввод. Самое обидное — потерять длинный запрос, который человек набирал пять минут.

**Содержательные** — модель ответила, но плохо: не по теме, неточно, не в том тоне. Технически всё хорошо, поэтому система об этом не знает. Значит, сказать об этом должен человек, и сделать это должно быть легко:

- кнопка «повторить» рядом с ответом;
- возможность уточнить запрос, не начиная заново;
- простой отзыв «полезно / не то», который ты потом действительно читаешь.

## Результат должен правиться

Ответ модели — черновик, пока человек его не принял. Интерфейс должен это поддерживать:

- сгенерированный текст открывается в редактируемом поле, а не в красивом блоке, из которого его надо копировать;
- можно переделать часть — один абзац, одно поле, — не перезапуская всё;
- прошлый вариант не исчезает при повторе: человеку часто нравилась первая версия больше;
- ничего не отправляется и не сохраняется без явного действия человека.

Хороший признак — когда результат модели и ручной ввод выглядят и ведут себя одинаково. Тогда ИИ ощущается как помощник в форме, а не как отдельная сущность со своими правилами.

## Сигналы доверия

Человек не может проверить, насколько модель уверена, — значит, ему нужно дать, на что опереться:

- **источники** — если ответ основан на документах, покажи, на каких, со ссылкой на конкретное место;
- **честная пометка** — короткое «ответ сгенерирован, проверь важные детали» рядом с результатом, а не в мелком шрифте внизу страницы;
- **видимые границы** — если функция работает только с определёнными данными, скажи об этом: «отвечаю по базе знаний за этот год»;
- **«не знаю» как допустимый ответ** — интерфейс, в котором модель всегда что-то отвечает, приучает к ответам, которым нельзя верить.

Чего не стоит делать: показывать проценты уверенности, которые модель сама себе назначила. Выглядит научно, а по смыслу — случайное число.

## Итог

Для ИИ-функций годятся старые правила интерфейса — обратная связь, обработка ошибок, контроль у пользователя, — просто ставки выше: ответ медленнее, менее предсказуем и иногда неверен. Интерфейс, который честно это показывает, выигрывает у того, который делает вид, что всё мгновенно и безошибочно.

SUBXCAT может посмотреть на ИИ-функции в твоём продукте глазами пользователя и предложить, что поправить в интерфейсе.
