Настройки API-сервера BeeCR
В случае развертывания BeeCR на вашем локальном сервере или виртуальной машине может возникнуть необходимость осуществить дополнительную настройку API сервера. API-cервер BeeCR можно настроить с помощью переменных окружения. В данном разделе документации вы найдете обзор всех переменных окружения, которые вы можете использовать для управления настройками API-сервера.
⚠️ Примечание:
Клиент API может переопределить любую из настроек в запросе (через HTTP-заголовки и/или параметры запроса и/или тело HTTP-запроса и/или даже через файл конфигурации в репозитории, анализ которого выполняется в данный момент). Если клиент API каким-либо образом передает параметр в запросе, то значение от клиента будет иметь больший приоритет, чем настройки сервера.
Адрес GitLab и токен доступа
Если вы собираетесь использовать предоставленные компоненты/шаблоны CI/CD, то обычно нет необходимости переопределять GITLAB_HOST
и GITLAB_TOKEN
, потому что компоненты/шаблоны CI/CD передают адрес GitLab в параметрах запроса.
Пример:
Модель ИИ
BeeCR поддерживает два альтернативных API для взаимодействия с моделями ИИ: OpenAI и Ollama.
- Для OpenAI-совместимых API используйте имена моделей "как есть".
Пример:gpt-4o
. - Для Ollama-совместимых API используйте имена моделей с префиксом
ollama/
.
Пример:ollama/codestral:22b
.
Пример:
Ollama
Задайте переменную среды OLLAMA_HOST
, если вы хотите использовать ИИ сервер на базе Ollama.
Пример:
По умолчанию BeeCR предполагает, что сервер ИИ с Ollama оснащён видеокартой с 24 ГБ видеопамяти (VRAM). Если ваше оборудование более производительное и имеет одну или несколько видеокарт с суммарным объёмом видеопамяти более 24 ГБ (например, 48 ГБ или 80 ГБ), рекомендуется указать BeeCR API серверу доступный объём VRAM. Это позволит BeeCR загружать больше информации в контекст ИИ, что приведёт к более точным комментариям. Если на вашем сервере ИИ установлено несколько видеокарт, укажите суммарный объём их видеопамяти.
Ollama может быть настроена для обработки одного или нескольких запросов одновременно. По умолчанию BeeCR API сервер ожидает, что Ollama настроена на 2 параллельных потока обработки. В зависимости от вашего оборудования и приоритетов (скорость обработки или полнота комментариев) вы можете увеличить количество параллельных потоков. Однако имейте в виду, что большее количество потоков означает большую параллельную обработку, но и больший расход видеопамяти (VRAM). Держите эту настройку согласованной между Ollama и BeeCR API серверами.
OpenAI
Задайте переменный среды OPENAI_HOST
и OPENAI_API_KEY
, если вы хотите использовать модели семейства ChatGPT (или любую другую модель через API, совместимый с OpenAI). Если же вы собираетесь использовать модель через Ollama-совместимый API, то задавать значения опций OPENAI_HOST
и OPENAI_API_KEY
не имеет смысла.
OPENAI_HOST
: Адрес OpenAI-совместимого API сервера. По умолчаниюhttps://api.openai.com
.OPENAI_API_KEY
: Ваш ключ доступа к OpenAI API.
Пример:
Определение файлов, подлежащих анализу
Основная настройка (target)
TARGET
задаёт регулярное выражение, которое определяет файлы, подлежащие проверке.
Значение по умолчанию:
Использование данного регулярного выражения приведет к проверке файлов для следующих языков программирования:
- Python:
.py
- C/C++:
.h
,.hpp
,.c
,.cpp
- C#:
.cs
- Java:
.java
- Kotlin:
.kr
- Swift:
.swift
- PHP:
.php
- Go:
.go
- Bash/Shell:
.sh
- JavaScript/Typescript:
.js
,.jsx
,.mjs
,.mjsx
,.ts
,.tsx
Однако вы можете настроить ее так, как вам удобно, чтобы поддерживать больше языков или, наоборот, исключить некоторые из стандартных. Пример регулярного выражения:
Дополнительная настройка (target extra)
TARGET_EXTRA
позволяет задать дополнительное регулярное выражение. Полезно, например, в тех случаях, когда вы не хотите переопределять TARGET
, а лишь "дополнить" его.
По умолчанию параметр TARGET_EXTRA
не задан.
Пример:
Настройка исключений (target exclude)
TARGET_EXCLUDE
позволяет задать регулярное выражение для исключения файлов из проверки (даже если они соответствуют TARGET
или TARGET_EXTRA
). Полезно, например, если вы не хотите переопределять TARGET
.
По умолчанию параметр TARGET_EXCLUDE
не задан.
Пример:
Язык
Мы рекомендуем использовать английский язык, так как в этому случае комментарии от модели ИИ наиболее полные и качественные для всех протестированных моделей.
Если вы собираетесь использовать предоставленные компоненты/шаблоны CI/CD, то обычно нет необходимости задавать язык, так как компоненты/шаблоны CI/CD передают значение данного параметра вместе с запросом на анализ.
Значение по умолчанию: English
.
Пример:
Конфигурационный файл в репозитории
По умолчанию, API сервер будет пытаться в т.ч. получить настройки из файла .beecr.yml
в корне репозитория проекта. При желании путь к файлу можно переопределить через параметр REPO_CONFIG_PATH
.
Пример:
Ключевое выражение-триггер в комментариях
В случае интеграции GitLab и BeeCR с помощью вебхуков для событий "Comment" изменения в запросах на слияния (Merge Requests) будут анализироваться только в том случае, если появился комментарий, который содержит выражение (триггер) /beecr
.
При желании триггер можно переопределить через параметр NOTE_TRIGGER
.
Пример: