Перейти к навигации

Подключение BeatAPI к Gemini CLI

Подключение BeatAPI к Gemini CLI

Gemini CLI — терминальный клиент для моделей Gemini. Он использует нативный API Gemini — POST /v1beta/models/{model}:generateContent, который BeatAPI поддерживает напрямую. Для подключения достаточно изменить базовый адрес API; промежуточное преобразование не требуется.

Адрес должен поддерживать нативный API Gemini. OpenAI-совместимый метод здесь не подойдёт: CLI обращается к {base}/v1beta/models/{model}:{action}, а не к /chat/completions. Используйте https://api.beatapi.io точно в таком виде, без дополнительного пути.

Что понадобится

  1. Node.js и npm: v16 или новее.
  2. API-ключ BeatAPI: создайте его в Dashboard → API Keys.

Шаг 1. Установите Gemini CLI

npm install -g @google/gemini-cli

Проверьте установку:

gemini --version

Если команда не найдена, перезапустите терминал или проверьте глобальный PATH npm.

Шаг 2. Подключите BeatAPI

Для подключения достаточно двух переменных.

Постоянная настройка (рекомендуется)

echo 'export GEMINI_API_KEY="<BEATAPI_API_KEY>"' >> ~/.zshrc
echo 'export GEMINI_BASE_URL="https://api.beatapi.io"' >> ~/.zshrc
source ~/.zshrc

Только для текущего терминала

export GEMINI_API_KEY="<BEATAPI_API_KEY>"
export GEMINI_BASE_URL="https://api.beatapi.io"
gemini

Через файл .env

# .env
GEMINI_API_KEY=<BEATAPI_API_KEY>
GEMINI_BASE_URL=https://api.beatapi.io

Добавьте .env в .gitignore, чтобы ключ не попал в коммит.

Проверьте, что значения применились

echo $GEMINI_API_KEY
echo $GEMINI_BASE_URL

Шаг 3. Начните работу

Интерактивная сессия:

gemini

Один запрос:

gemini "Summarise the architecture of this repository"

Явный выбор модели:

gemini --model gemini-3.1-pro-preview

Указывайте модель явно, не полагаясь на модель по умолчанию в CLI. Если она недоступна аккаунту, запрос вернёт not_found. Явный ID также не позволит обновлению CLI незаметно переключить вас на другой тариф.

Модели

ID моделиДля каких задач подходит
gemini-3.1-pro-previewСамый сильный вариант для сложных рассуждений и глубокого анализа
gemini-3.7-flashАктуальная быстрая модель для повседневной работы и большого числа запросов
gemini-3.6-flashПредыдущее быстрое поколение для интеграций с закреплённой версией

Тарифы есть на странице цен, формат запроса — в разделе Gemini API.

Вызов тех же моделей из кода

Gemini-совместимый API — один из четырёх форматов BeatAPI. За пределами CLI вы не ограничены исходным форматом Gemini.

from openai import OpenAI
client = OpenAI(
api_key="<BEATAPI_API_KEY>",
base_url="https://api.beatapi.io/v1",
)
response = client.chat.completions.create(
model="gemini-3.7-flash",
messages=[{"role": "user", "content": "Explain this stack trace"}],
)
print(response.choices[0].message.content)
curl https://api.beatapi.io/v1/chat/completions \
-H "Authorization: Bearer <BEATAPI_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.7-flash",
"messages": [{"role": "user", "content": "Explain this stack trace"}]
}'

Частые вопросы

Ошибки авторизации

  1. Убедитесь, что обе переменные заданы в том терминале, из которого вы запустили gemini:

    echo $GEMINI_API_KEY
    echo $GEMINI_BASE_URL
  2. Убедитесь, что ключ активен, в Dashboard → API Keys.

Все запросы возвращают 404

GEMINI_BASE_URL должен быть равен https://api.beatapi.io: без /v1, /v1beta и завершающего слеша. CLI добавляет оставшийся путь сам. Если дописать его вручную, получится несуществующий /v1/v1beta/models/....

Список моделей пуст

Укажите модель через --model, а не выбирайте из списка. Доступные аккаунту модели также есть в GET /v1/models и на странице цен.

402 insufficient_credits

Баланс равен нулю или меньше стоимости запроса. Пополните его в панели управления.

429 rate_limit_exceeded

Ключ превысил лимит частоты запросов. Подождите время из Retry-After. Минутный лимит растёт с общей суммой пополнений и отображается в панели управления.

Ошибки подключения

Проверьте доступ к сети и отсутствие опечаток в GEMINI_BASE_URL. При корпоративном прокси разрешите доступ к api.beatapi.io.

Поддержка

Создайте обращение в панели управления и укажите request_id из ответа с ошибкой.