Проверка не может быть вероятностной

У любой языковой модели есть параметр случайности, поэтому на один и тот же вопрос она отвечает по-разному. Сегодня она скажет, что ответ API корректный, а завтра найдёт в том же ответе проблему. Для черновика письма это не страшно. Для проверки это приговор, потому что смысл проверки в повторяемости. Если результат меняется сам по себе, вы не знаете, что именно сломалось, релиз или инструмент.

Вторая беда в том, что модель не показывает основания. Она пишет «всё в порядке» и не объясняет, какое поле смотрела и по какому правилу. Прийти с таким к разработчику нельзя, потому что первый же вопрос про конкретное поле остаётся без ответа. Проверка ценна ровно тем, что называет нарушенное ожидание, а не настроение модели.

Представьте бухгалтера, который ошибается в восьми случаях из ста и никогда не говорит, в каких именно. Ровно это вы получаете, когда вместо правил ставите вероятностный ответ.

Проверять за нейросетью дороже, чем сделать самому

Знакомая история. Модель уверенно выдаёт двести строк проверок, выглядит убедительно, а внутри половина привязана к полям, которых в ответе нет. Чтобы это увидеть, приходится прочитать всё и сверить с документацией, то есть выполнить ту самую работу, которую вы хотели отдать. На выходе времени ушло больше, а доверия к результату меньше.

Отдельная ловушка появляется, когда модель работает с большим текстом. Начало и конец она держит хорошо, а середина размывается. Именно поэтому сгенерированные наборы проверок часто выглядят полными, но в середине списка живут поля, которых никто не описывал, и молчание про те, что действительно важны.

Где нейросеть действительно помогает

Будет нечестно сказать, что она бесполезна. Она хорошо работает там, где ошибка не стоит ничего, а результат всё равно проверит человек.

  • Черновик идей. Спросить, что ещё стоит проверить в этом методе, и получить список, из которого вы возьмёте четверть.
  • Объяснение чужого формата. Незнакомый XML или мутное поле в документации она распишет быстрее, чем вы найдёте нужную страницу.
  • Тестовые данные. Придумать сто правдоподобных адресов или наименований товара скучно, и это как раз её работа.
  • Черновик текста. Описание дефекта, письмо, заготовка отчёта.

Заметьте, во всех четырёх случаях решение о том, что считать нормой, остаётся за вами. Как только это решение отдаётся модели, начинаются сюрпризы.

Ваши ответы API в чужой модели

Про это думают в последнюю очередь, а вспоминают первым делом. Ответ рабочего API это персональные данные, токены, внутренние адреса и суммы. Когда вы вставляете такой ответ в публичный чат, вы передаёте всё это внешнему обработчику, и вопрос уже не в удобстве, а в требованиях вашей организации. Инструмент, который считает проверку у вас на компьютере, снимает этот разговор целиком.

Что мы сделали вместо этого

Checkcraft не содержит моделей внутри проверок, и это осознанное решение. Вы задаёте правило для поля, а приложение всегда выполняет его одинаково. Одинаковый ответ даёт одинаковый результат, и по каждому расхождению видно, какое правило сработало и на каком поле. Такой результат можно приложить к задаче и обсуждать с разработчиком, не пересказывая, что там подумала нейросеть.

Нейросеть в роли проверяющего

  • Результат меняется от запуска к запуску
  • Основания решения не показывает
  • Уверенно ошибается в середине больших ответов
  • Ваши данные уходят внешнему обработчику
  • Проверять за ней дольше, чем сделать самому

Правила в Checkcraft

  • Одинаковый ответ всегда даёт одинаковый результат
  • Видно правило и поле, на котором нашлось расхождение
  • Работает одинаково и на трёх полях, и на трёхстах
  • Рабочее пространство лежит локально на вашей машине
  • Проверки задаются один раз и повторяются каждый релиз

Кому это близко

Если вам говорят, что проверки теперь нужно отдать нейросети, а вы понимаете, что после неё придётся перепроверять всё руками, вы не ретроград. Вы просто отвечаете за результат. Инструменту проверки положено быть скучным, повторяемым и объяснимым, и в этом нет ничего старомодного.

Рядом полезно почитать сравнение с Postman, правила для JSON и XML и поиск логов в Kibana.