Настройка

Выбор и сравнение моделей

Какая модель подходит

Любая с OpenAI-совместимым API: облачный провайдер или своя инсталляция. Модель выбирается при создании проекта — готовый вариант или свой адрес — и попадает в примеры на странице «Подключение»; ключ API хранится только в секретах вашего CI. Резервная модель — по желанию: на неё уходит запрос при сбоях или исчерпанной квоте основной.

Сменить модель — поменять LLM_API_BASE_URL, LLM_MODEL_NAME и ключ в переменных CI. В карточке ревью видно, какая модель фактически отвечала, в том числе при переходе на резервную.

Сравнение моделей — bench-models

Команда прогоняет до пяти моделей на одном merge request и пишет результаты в файлы. Ничего не публикует в MR и не тарифицируется; запросы к моделям оплачиваете вы. Контекст собирается один раз и переиспользуется всеми моделями — сравниваются модели, а не случайности сборки.

Описание моделей — JSON-файл. Ключей в нём нет: только имя переменной окружения, где лежит ключ, — файл можно спокойно переслать коллегам.

{
  "models": [
    { "label": "glm", "base_url": "https://api.z.ai/api/paas/v4", "model": "glm-5.3", "api_key_env": "GLM_KEY" },
    { "label": "other", "base_url": "https://<адрес API>", "model": "<модель>", "api_key_env": "OTHER_KEY" }
  ]
}

Запуск — из рабочей копии репозитория, с тем же .env, что для init, и каталогом для результатов:

mkdir -p ../cins-bench
docker run --rm --env-file .env -e GLM_KEY -e OTHER_KEY \
  -v "$PWD:/work:ro" -e REPO_PATH=/work -v "$PWD/../cins-bench:/out" -v "$PWD/models.json:/models.json:ro" \
  <образ со страницы «Подключение»> bench-models --mr 42 --models /models.json --out /out
  • Без --yes команда только выводит оценку стоимости и завершается: пять моделей на крупном MR — пятикратный расход.
  • --repeat N — несколько прогонов каждой модели: вывод моделей недетерминирован, и разброс между прогонами — такой же критерий, как точность.
  • На Linux дайте пользователю образа (UID 10001) право записи в каталог результатов: chmod o+w ../cins-bench.

Главное в результате — пересечение. Замечание, найденное четырьмя моделями из пяти, почти наверняка настоящее; уникальное для одной — обычно шум. Сводка содержит матрицу пересечений находок между моделями.