provod.ai / docs
Интеграции

OpenCode

Добавление подключения provod.ai и доступного каталога моделей в OpenCode.

Обновлено

Выберите установщик или ручную настройку

В OpenCode поставщик — это именованное подключение к API с моделями и параметрами соединения. Установщик настраивает уже установленный OpenCode, но не устанавливает сам OpenCode. Он авторизованно запрашивает GET /v1/models, добавляет или обновляет поставщика provod и переносит в локальный файл названия, лимиты, возможности, типы данных и публичные цены из ответа.

Используйте установщик для настройки по актуальному каталогу. Ручное подключение подходит, когда нужно самостоятельно проверить и объединить каждое поле.

Запустите установщик

export PROVOD_API_KEY="sk_..."

curl -fsSL https://app.provod.ai/install/opencode.sh | \
  PROVOD_API_KEY="$PROVOD_API_KEY" sh

Чтобы использовать нестандартный файл, задайте OPENCODE_CONFIG до команды. Иначе установщик проверяет ~/.config/opencode/opencode.json, затем opencode.jsonc и создаёт opencode.json, если файлов нет.

Версия для macOS/Linux делает резервную копию существующего файла перед изменением. Установщик PowerShell не создаёт копию, поэтому заранее скопируйте важный файл настроек.

Настройте подключение вручную

Сначала экспортируйте ключ и выберите доступный точный идентификатор через GET /v1/models. Затем замените каждую строку model-id-from-GET-v1-models ниже на этот идентификатор, а вместо указанной в примере переменной PROVOD_API_KEY вставьте текущее значение ключа.

Terminal
export PROVOD_API_KEY="sk_..."

Ручная настройка сохраняет ключ открытым текстом

Значение apiKey записывается в локальный файл настроек OpenCode. Защищайте файл как секрет, не добавляйте его в репозитории и общие резервные копии, а для OpenCode создайте отдельный ключ с подходящим лимитом расходов.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "model": "provod/model-id-from-GET-v1-models",
  "provider": {
    "provod": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "provod.ai",
      "options": {
        "baseURL": "https://api.provod.ai/v1",
        "apiKey": "paste-value-from-PROVOD_API_KEY"
      },
      "models": {
        "model-id-from-GET-v1-models": {
          "name": "model-id-from-GET-v1-models"
        }
      }
    }
  }
}

Сохраните пример как ~/.config/opencode/opencode.json, затем ограничьте доступ к каталогу и файлу с ключом текущим пользователем. Если OPENCODE_CONFIG указывает другой путь, задайте этому файлу такие же права только для владельца:

Terminal
chmod 700 ~/.config/opencode
chmod 600 ~/.config/opencode/opencode.json

Ручной пример задаёт только подключение. Установщик удобнее, если OpenCode должен получить из каталога актуальные лимиты контекста и ответа, поддержку рассуждений, инструментов и изображений, а также цены.

Проверьте текущую конфигурацию

Выведите модели, которые OpenCode загрузил для поставщика:

Terminal
opencode models provod

Выберите одну через /models или напрямую запустите текущий ID из каталога:

Terminal
export PROVOD_MODEL="model-id-from-GET-v1-models"
opencode run --model "provod/$PROVOD_MODEL" "Reply with ok"

Восстановите или обновите конфигурацию

В macOS/Linux установщик выводит путь к резервной копии с отметкой времени. Если объединённый файл перестал загружаться, остановите OpenCode, сохраните нерабочий файл для сравнения, восстановите указанную копию и перед повторным запуском проверьте OPENCODE_CONFIG.

Если установщик для оболочки не может безопасно объединить настройки, он сохраняет копию и записывает отдельный фрагмент provod-opencode-provider.jsonc для проверки. В Windows восстановите копию, сделанную до запуска PowerShell. Повторный запуск обновляет каталог; копировать новые идентификаторы моделей с этой страницы не нужно.

Публичный код ошибки — это предназначенное для клиента значение error.code из ответа API. Сохраните его вместе с HTTP-статусом, точным идентификатором модели, временем, версией OpenCode, путём к файлу настроек и маскированным префиксом ключа. Безопасная работа с ключом описана в авторизации API, а формат запроса — в Chat Completions.

Решение проблем

На этой странице