Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность
Специализация
Инженер по ручному тестированию, Инженер по обеспечению качества
Ведущий
Английский язык
Docker
REST
RabbitMQ
MySQL
Nginx
Базы данных
Apache Kafka
Kubernetes
Высоконагруженные системы
Я бы к такой подборке ещё добавил один критерий, который становится неприятно важным, когда API подключается не для поиграться, а внутрь продукта: насколько можно доверять заявленной идентичности и возможностям модели.
OpenAI-compatible endpoint сам по себе мало что гарантирует.
/chat/completionsможет отвечать, а потом выясняется, что structured output работает иначе, tool calls ведут себя по-другому, нужная модель временно недоступна или роутер незаметно отправил запрос куда-то ещё.У себя сейчас как раз пришёл к тому, что провайдера приходится рассматривать не просто как URL + API key. Нужны отдельно фактический model ID, capabilities, явное поведение при fallback и правило «нет нужной возможности — запрос не отправляем», а не пытаемся тихо деградировать.
Для личного чата это, наверное, избыточно. А вот если через такой роутер гонять документы или строить поверх него воспроизводимый пайплайн, уже хочется после каждого ответа понимать: кто реально ответил, какой моделью и с какими гарантиями.
Было бы интересно во второй части увидеть тест именно этого слоя: requested model → actual model, structured output/tool calls и что происходит при недоступности выбранной модели.
У меня был почти зеркальный кейс, только не с кодом, а с генерацией чек-листа по ТЗ.
HTTP 200, JSON валиден, схема пройдена, результат сохранился — с точки зрения пайплайна всё зелёное. Открываю результат: 271 строка, где рядом с нормальными проверками модель добавила цели исследования, элементы матрицы рисков, служебные формулировки про готовность и вопросы, на которые исходное ТЗ вообще не отвечало. После этого для меня окончательно развалилось «валидный = пригодный».
Для таких артефактов нет удобного execution oracle, как у кода, поэтому пришлось переносить жёсткий гейт ближе к источнику: существенный пункт результата должен иметь связь с конкретным требованием или фрагментом исходного документа. То, что источником не подтверждается, не становится успешным результатом — максимум уходит на ручную проверку.
И есть ещё обратная проблема: модель может ничего не выдумать, но тихо пропустить половину критичных требований. Поэтому одной проверки faithfulness тоже мало, нужен ещё контроль покрытия.
По сути, у меня получилось очень похоже на ваш принцип «детерминированное раньше вероятностного», только детерминированная часть строится вокруг traceability и контракта результата, а LLM остаётся скорее детективом, чем судьёй.
Интересно, как бы вы строили такой гейт для текстового артефакта без исполнимого оракула: claim → source binding, отдельный контроль покрытия или уже human review на остатке?