Настройка, расширение, параметры платформы и справочник API для Pi.

Providers

Pi поддерживает поставщиков на основе подписки через поставщиков OAuth и API key через переменные среды или файл аутентификации. Встроенные каталоги поставляются с числом pi; настроенные поставщики могут обновлять новые каталоги и кэшировать их в ~/.pi/agent/models-store.json для автономного использования.

Оглавление

Подписки

Используйте /login в интерактивном режиме, затем выберите провайдера:

  • ChatGPT Plus/Pro (Кодекс)
  • Клод Про/Макс
  • GitHub Второй пилот
  • xAI (подписка Grok/X)
  • OpenRouter (OAuth-отчеканено API key, оплата осуществляется за счет кредитов OpenRouter)
  • Радиус

Используйте /logout для очистки учетных данных. Токены хранятся в ~/.pi/agent/auth.json и автоматически обновляются по истечении срока их действия. Вместо этого OpenRouter выпускает управляемый пользователем API key, срок действия которого не истекает автоматически.

Кодекс OpenAI

  • Требуется подписка ChatGPT Plus или Pro.
  • Официально одобрено OpenAI: Codex for OSS

Клод Про/Макс

Аутентификация подписки Anthropic активна для учетных записей Claude Pro/Max. Использование сторонних средств связи начинается с extra usage и оплачивается за токен, а не в соответствии с ограничениями плана Claude.

GitHub Второй пилот

  • Нажмите Enter для github.com или введите свой домен GitHub Enterprise Server.
  • Если вы получаете сообщение «модель не поддерживается», включите ее в VS Code: Чат Copilot → выбор модели → выберите модель → «Включить».

xAI (подписка Grok/X)

  • Нажмите /login xai, затем выберите Использовать подписку.
  • XAI_API_KEY остается доступным через Используйте API key

OpenRouter

  • Запустите /login openrouter, затем выберите Войти с помощью OpenRouter, чтобы открыть поток авторизации OpenRouter PKCE.
  • Авторизация создает управляемый пользователем OpenRouter API key, оплата которого осуществляется за счет ваших кредитов OpenRouter.
  • На удаленных/безголовых машинах (например, выше SSH) браузер не может связаться с обратным вызовом обратной связи; вместо этого вставьте окончательный URL-адрес перенаправления (или код авторизации) в приглашение для входа в систему.
  • OPENROUTER_API_KEY остается доступным через Используйте API key

Радиус

Radius — это динамический шлюз pi-messages. /login radius хранит токены OAuth в auth.json; каталог шлюзов обновляется независимо и кэшируется в models-store.json. Пользовательские шлюзы Radius можно объявить в models.json с помощью "oauth": "radius" и шлюза baseUrl.

API Ключи

Переменные среды или файл аутентификации

Используйте /login в интерактивном режиме и выберите поставщика для хранения API key в auth.json или установите учетные данные через переменную среды:

export ANTHROPIC_API_KEY=sk-ant-...
pi
Поставщик Переменная среды клавиша auth.json
антропный ANTHROPIC_API_KEY anthropic
Муравей Линг ANT_LING_API_KEY ant-ling
Ответы Azure OpenAI AZURE_OPENAI_API_KEY azure-openai-responses
ОпенАИ OPENAI_API_KEY openai
ДипСик DEEPSEEK_API_KEY deepseek
NVIDIA НИМ NVIDIA_API_KEY nvidia
Гугл Близнецы GEMINI_API_KEY google
Амазонка AWS_BEARER_TOKEN_BEDROCK amazon-bedrock
Мистраль MISTRAL_API_KEY mistral
Грок GROQ_API_KEY groq
Церебрас CEREBRAS_API_KEY cerebras
Cloudflare AI-шлюз CLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_GATEWAY_ID) cloudflare-ai-gateway
ИИ работников Cloudflare CLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID) cloudflare-workers-ai
xAI XAI_API_KEY xai
OpenRouter OPENROUTER_API_KEY openrouter
AI-шлюз Vercel AI_GATEWAY_API_KEY vercel-ai-gateway
План кодирования ZAI (глобальный) ZAI_API_KEY zai
План кодирования ZAI (Китай) ZAI_CODING_CN_API_KEY zai-coding-cn
OpenCode Дзен OPENCODE_API_KEY opencode
OpenCode Go OPENCODE_API_KEY opencode-go
Радиус RADIUS_API_KEY radius
Hugging Face HF_TOKEN huggingface
Фейерверк FIREWORKS_API_KEY fireworks
Вместе ИИ TOGETHER_API_KEY together
Бастен BASETEN_API_KEY baseten
Кими для кодирования KIMI_API_KEY kimi-coding
МиниМакс MINIMAX_API_KEY minimax
МиниМакс (Китай) MINIMAX_CN_API_KEY minimax-cn
План Qwen Token (существующий каталог) QWEN_TOKEN_PLAN_API_KEY qwen-token-plan
План токенов Qwen (индивидуальный) QWEN_TOKEN_PLAN_API_KEY qwen-token-plan-individual
План токенов Qwen (Китай) QWEN_TOKEN_PLAN_CN_API_KEY qwen-token-plan-cn
Сяоми МиМо XIAOMI_API_KEY xiaomi
План токена Xiaomi MiMo (Китай) XIAOMI_TOKEN_PLAN_CN_API_KEY xiaomi-token-plan-cn
План токена Xiaomi MiMo (Амстердам) XIAOMI_TOKEN_PLAN_AMS_API_KEY xiaomi-token-plan-ams
План токена Xiaomi MiMo (Сингапур) XIAOMI_TOKEN_PLAN_SGP_API_KEY xiaomi-token-plan-sgp

Ссылка на переменные среды и ключи auth.json: const envMap в packages/ai/src/env-api-keys.ts.

Файл аутентификации

Сохраните учетные данные в ~/.pi/agent/auth.json:

{
  "anthropic": { "type": "api_key", "key": "sk-ant-..." },
  "ant-ling": { "type": "api_key", "key": "..." },
  "openai": { "type": "api_key", "key": "sk-..." },
  "deepseek": { "type": "api_key", "key": "sk-..." },
  "nvidia": { "type": "api_key", "key": "nvapi-..." },
  "google": { "type": "api_key", "key": "..." },
  "opencode": { "type": "api_key", "key": "..." },
  "opencode-go": { "type": "api_key", "key": "..." },
  "together": { "type": "api_key", "key": "..." },
  "qwen-token-plan":  { "type": "api_key", "key": "sk-sp-..." },
  "qwen-token-plan-individual": { "type": "api_key", "key": "sk-sp-..." },
  "qwen-token-plan-cn": { "type": "api_key", "key": "sk-sp-..." },
  "xiaomi": { "type": "api_key", "key": "..." },
  "xiaomi-token-plan-cn":  { "type": "api_key", "key": "..." },
  "xiaomi-token-plan-ams": { "type": "api_key", "key": "..." },
  "xiaomi-token-plan-sgp": { "type": "api_key", "key": "..." }
}

qwen-token-plan-individual использует ту же международную конечную точку и QWEN_TOKEN_PLAN_API_KEY, что и qwen-token-plan, но ограничивает выбор моделями, документированными для индивидуальных подписок. Существующие Поставщик сохраняет свой более широкий каталог для обратной совместимости. При использовании auth.json сохраните учетные данные выбранного вами провайдера; переменная среды используется обоими международными поставщиками.

Файл создается с разрешениями 0600 (только чтение/запись пользователя). Учетные данные файла аутентификации имеют приоритет над переменными среды.

API key учетные данные также могут включать значения среды на уровне поставщика. Эти значения используются перед переменными среды процесса при разрешении ключа учетных данных, заголовков поставщика/модели и конфигурации поставщика, таких как идентификаторы учетных записей Cloudflare, настройки Azure OpenAI, проект/расположение Vertex, настройки Bedrock, PI_CACHE_RETENTION и HTTP_PROXY/HTTPS_PROXY.

{
  "cloudflare-ai-gateway": {
    "type": "api_key",
    "key": "$CLOUDFLARE_API_KEY",
    "env": {
      "CLOUDFLARE_API_KEY": "...",
      "CLOUDFLARE_ACCOUNT_ID": "account-id",
      "CLOUDFLARE_GATEWAY_ID": "gateway-id"
    }
  }
}

Используйте это, когда pi должен использовать настройки поставщика, отличные от настроек среды оболочки проекта.

Ключевое разрешение

Поле key поддерживает выполнение команд, интерполяцию среды и литералы:

  • Команда оболочки: "!command" в начале выполняет все значение как команду и использует stdout (кэшируется на время существования процесса)
    { "type": "api_key", "key": "!security find-generic-password -ws 'anthropic'" }
    { "type": "api_key", "key": "!op read 'op://vault/item/credential'" }
  • Интерполяция среды: "$ENV_VAR" или "${ENV_VAR}" использует значение именованной переменной. Интерполяция работает внутри больших литералов.
    { "type": "api_key", "key": "$MY_ANTHROPIC_KEY" }
    { "type": "api_key", "key": "${KEY_PREFIX}_${KEY_SUFFIX}" }
    $FOO_BAR — переменная FOO_BAR; используйте ${FOO}_BAR, когда BAR — это буквальный текст. Отсутствие переменных среды делает значение неразрешенным.
  • Эскейп: "
    quot;
    выдает литерал "
    quot;
    ; "$!" выдает литерал "!", не запуская выполнение команды.
    { "type": "api_key", "key": "$literal-dollar-prefix" }
    { "type": "api_key", "key": "$!literal-bang-prefix" }
  • Буквальное значение: Используется напрямую. Обычные строки в верхнем регистре, такие как MY_API_KEY, являются литералами; используйте $MY_API_KEY для переменных среды.
    { "type": "api_key", "key": "sk-ant-..." }
    { "type": "api_key", "key": "public" }

Учетные данные OAuth также хранятся здесь после /login и управляются автоматически.

Облако Providers

Azure OpenAI

export AZURE_OPENAI_API_KEY=...
export AZURE_OPENAI_BASE_URL=https://your-resource.ai.azure.com
# also supported: https://your-resource.cognitiveservices.azure.com
# also supported: https://your-resource.openai.azure.com
# root endpoints are auto-normalized to /openai/v1
# or use resource name instead of base URL
export AZURE_OPENAI_RESOURCE_NAME=your-resource

# Optional
export AZURE_OPENAI_API_VERSION=2024-02-01
export AZURE_OPENAI_DEPLOYMENT_NAME_MAP=gpt-4=my-gpt4,gpt-4o=my-gpt4o

Амазонка

Используйте /login amazon-bedrock для хранения Bedrock API key или настройте один из внешних источников учетных данных AWS ниже:

# Option 1: AWS Profile
export AWS_PROFILE=your-profile

# Option 2: IAM Keys
export AWS_ACCESS_KEY_ID=AKIA...
export AWS_SECRET_ACCESS_KEY=...

# Option 3: Bearer Token
export AWS_BEARER_TOKEN_BEDROCK=...

# Optional region (defaults to us-east-1)
export AWS_REGION=us-west-2

Также поддерживает роли задач ECS (AWS_CONTAINER_CREDENTIALS_*) и IRSA (AWS_WEB_IDENTITY_TOKEN_FILE).

pi --provider amazon-bedrock --model us.anthropic.claude-sonnet-4-20250514-v1:0

Кэширование подсказок включается автоматически для моделей Claude, идентификатор которых содержит узнаваемое имя модели (базовые модели и определяемые системой профили вывода). Для профилей вывода приложений (чьи ARN не содержат имя модели) установите AWS_BEDROCK_FORCE_CACHE=1, чтобы включить точки кэширования:

export AWS_BEDROCK_FORCE_CACHE=1
pi --provider amazon-bedrock --model arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123

Если вы подключаетесь к прокси-серверу Bedrock API, можно использовать следующие переменные среды:

# Set the URL for the Bedrock proxy (standard AWS SDK env var)
export AWS_ENDPOINT_URL_BEDROCK_RUNTIME=https://my.corp.proxy/bedrock

# Set if your proxy does not require authentication
export AWS_BEDROCK_SKIP_AUTH=1

# Set if your proxy only supports HTTP/1.1
export AWS_BEDROCK_FORCE_HTTP1=1

Cloudflare AI-шлюз

CLOUDFLARE_API_KEY можно установить с помощью /login. Идентификатор учетной записи и пул шлюза можно установить как переменные среды или в объекте env учетных данных API key в auth.json.

export CLOUDFLARE_API_KEY=...           # or use /login
export CLOUDFLARE_ACCOUNT_ID=...
export CLOUDFLARE_GATEWAY_ID=...        # create at dash.cloudflare.com → AI → AI Gateway
pi --provider cloudflare-ai-gateway --model "claude-sonnet-4-5"

Маршруты к OpenAI, Anthropic и Workers AI через Cloudflare AI Gateway. Рабочий ИИ использует унифицированные идентификаторы моделей API (/compat) и префиксы (workers-ai/@cf/...). OpenAI использует транзитный маршрут OpenAI (/openai) с собственными идентификаторами моделей OpenAI, такими как gpt-5.1. Anthropic использует транзитный маршрут Anthropic (/anthropic) с собственными идентификаторами моделей Anthropic, такими как claude-sonnet-4-5.

Аутентификация AI Gateway использует CLOUDFLARE_API_KEY вместо cf-aig-authorization. Аутентификация восходящего потока может быть одной из:

Режим Запросить авторизацию Авторизация восходящего потока
Рабочие ИИ Только токен Cloudflare Cloudflare-родной
Единый биллинг Только токен Cloudflare Cloudflare обрабатывает входящую аутентификацию и списывает кредиты
Сохранено BYOK Только токен Cloudflare Cloudflare внедряет ключи провайдера, хранящиеся на панели управления AI Gateway
Встроенный BYOK Токен Cloudflare плюс восходящий заголовок Authorization Запрос предоставляет ключ вышестоящего поставщика.

Для обычного использования Pi отдайте предпочтение единому выставлению счетов или сохраненному BYOK. Для встроенного BYOK требуется настроить дополнительный восходящий заголовок Authorization для поставщика Cloudflare AI Gateway, например, через переопределение поставщика/модели models.json.

ИИ работников Cloudflare

CLOUDFLARE_API_KEY можно установить с помощью /login. CLOUDFLARE_ACCOUNT_ID можно установить как переменную среды или в объекте env учетных данных API key в auth.json.

export CLOUDFLARE_API_KEY=...           # or use /login
export CLOUDFLARE_ACCOUNT_ID=...
pi --provider cloudflare-workers-ai --model "@cf/moonshotai/kimi-k2.6"

Pi автоматически устанавливает x-session-affinity для prefix caching скидок.

Google Вертекс ИИ

Использует учетные данные приложения по умолчанию:

gcloud auth application-default login
export GOOGLE_CLOUD_PROJECT=your-project
export GOOGLE_CLOUD_LOCATION=us-central1

Или установите GOOGLE_APPLICATION_CREDENTIALS для файла ключа учетной записи службы.

llama.cpp

Pi поддерживает сервер маршрутизатора llama.cpp. Настройте его с помощью /login llama.cpp, управляйте загруженными моделями с помощью /llama и выберите загруженную модель с помощью /model.

См. llama.cpp для настройки сервера, структуры каталога модели, переменных среды и использования команд.

Пользовательский Providers

С помощью models.json: добавьте Ollama, LM Studio, vLLM или любого поставщика, говорящего на поддерживаемом языке API (завершения OpenAI, ответы OpenAI, антропные сообщения, генеративный искусственный интеллект Google). См. models.md.

Через расширения. Для поставщиков, которым требуются специальные реализации API или потоки OAuth, создайте расширение. См. custom-provider.md и examples/extensions/custom-provider-gitlab-duo.

Порядок разрешения

При разрешении учетных данных для поставщика:

  1. CLI --api-key флаг
  2. Запись auth.json (токен API key или OAuth)
  3. Переменная среды
  4. Пользовательские ключи поставщика от models.json