Инструкция не равна проверке
В одном из моих проектов модель должна была готовить русскоязычные новостные тексты. В инструкции это было явно написано, но в выпуск попали английские заголовки. Проблема показала: успешный ответ API не означает, что пользователь получил подходящий результат.
Языковая модель вероятностна. Формулировка запроса влияет на ответ, но сама по себе не гарантирует соблюдение всех условий. У программной проверки тоже есть ограничения: их нужно учитывать в критериях качества.
Какие требования можно проверять
- Ответ содержит нужные поля и читается в ожидаемом формате.
- Обязательные части не пустые.
- Текст соответствует требуемому языку с учётом имён и терминов.
- Ссылки не подменены придуманными адресами.
- Ответ относится к текущей задаче и укладывается в допустимый объём.
Проверка структуры обычно надёжнее проверки смысла. Названия продуктов и фрагменты кода могут быть латинскими внутри русского текста. Простое правило «нет латиницы» будет отвергать нормальные ответы.
Что делать при неудаче
Сервису нужен ограниченный сценарий исправления: уточнение запроса, повторная попытка или понятная ошибка пользователю. Бесконечные повторы увеличивают время ожидания и расходы. Подстановка случайного текста скрывает сбой и ухудшает доверие.
Сбой внешнего API, нарушение формата и недостаток контекста нужно различать. Эти ситуации требуют разных действий и разного объяснения в интерфейсе.
Как проверять качество системы
Полезен набор реальных по форме запросов: коротких, смешанных по языку, с уточнениями и неоднозначными данными. После изменения модели или инструкции его проверяют снова. Важны не только лучшие ответы, но и случаи отказа.
Для AI-ассистента под вашу задачу заранее определим измеримые критерии качества. Внутренние инструкции и правила продукта остаются закрытыми; публичный вывод прост: обещание в промпте должно сопровождаться проверкой результата.