Providers
Pi поддерживает поставщиков на основе подписки через OAuth и API key через переменные среды или файл аутентификации. Встроенные каталоги поставляются вместе с pi; настроенные поставщики могут обновлять новые каталоги и кэшировать их в ~/.pi/agent/models-store.json для автономного использования.
Оглавление
Подписки
Используйте /login в интерактивном режиме, затем выберите провайдера:
- ChatGPT Plus/Pro (Codex)
- Claude Pro/Max
- GitHub Copilot
- xAI (Grok/X subscription)
- OpenRouter (OAuth-minted API key billed from OpenRouter credits)
- Radius
Используйте /logout для очистки учетных данных. Токены хранятся в ~/.pi/agent/auth.json и автоматически обновляются по истечении срока их действия. Вместо этого OpenRouter выпускает управляемый пользователем API key, срок действия которого не истекает автоматически.
OpenAI Codex
- Требуется подписка ChatGPT Plus или Pro.
- Официально одобрено OpenAI: Codex for OSS
Claude Pro/Max
Аутентификация подписки Anthropic активна для учетных записей Claude Pro/Max. Использование через сторонние инструменты списывается из extra usage и оплачивается за токен, а не в рамках лимитов плана Claude.
GitHub Copilot
- Нажмите Enter для github.com или введите свой домен GitHub Enterprise Server.
- Если вы получаете сообщение «модель не поддерживается», включите ее в VS Code: Чат Copilot → выбор модели → выберите модель → «Включить».
xAI (Grok/X subscription)
- Нажмите
/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
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 | ANTHROPIC_API_KEY |
anthropic |
| Ant Ling | ANT_LING_API_KEY |
ant-ling |
| Azure OpenAI Responses | AZURE_OPENAI_API_KEY |
azure-openai-responses |
| OpenAI | OPENAI_API_KEY |
openai |
| DeepSeek | DEEPSEEK_API_KEY |
deepseek |
| NVIDIA NIM | NVIDIA_API_KEY |
nvidia |
| Google Gemini | GEMINI_API_KEY |
google |
| Amazon Bedrock | AWS_BEARER_TOKEN_BEDROCK |
amazon-bedrock |
| Mistral | MISTRAL_API_KEY |
mistral |
| Groq | GROQ_API_KEY |
groq |
| Cerebras | CEREBRAS_API_KEY |
cerebras |
| Cloudflare AI Gateway | CLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_GATEWAY_ID) |
cloudflare-ai-gateway |
| Cloudflare Workers AI | CLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID) |
cloudflare-workers-ai |
| xAI | XAI_API_KEY |
xai |
| OpenRouter | OPENROUTER_API_KEY |
openrouter |
| Vercel AI Gateway | AI_GATEWAY_API_KEY |
vercel-ai-gateway |
| ZAI Coding Plan (Global) | ZAI_API_KEY |
zai |
| ZAI Coding Plan (China) | ZAI_CODING_CN_API_KEY |
zai-coding-cn |
| OpenCode Zen | OPENCODE_API_KEY |
opencode |
| OpenCode Go | OPENCODE_API_KEY |
opencode-go |
| Radius | RADIUS_API_KEY |
radius |
| Hugging Face | HF_TOKEN |
huggingface |
| Fireworks | FIREWORKS_API_KEY |
fireworks |
| Together AI | TOGETHER_API_KEY |
together |
| Baseten | BASETEN_API_KEY |
baseten |
| Kimi For Coding | KIMI_API_KEY |
kimi-coding |
| MiniMax | MINIMAX_API_KEY |
minimax |
| MiniMax (China) | MINIMAX_CN_API_KEY |
minimax-cn |
| Qwen Token Plan (existing catalog) | QWEN_TOKEN_PLAN_API_KEY |
qwen-token-plan |
| Qwen Token Plan (Individual) | QWEN_TOKEN_PLAN_API_KEY |
qwen-token-plan-individual |
| Qwen Token Plan (China) | QWEN_TOKEN_PLAN_CN_API_KEY |
qwen-token-plan-cn |
| Xiaomi MiMo | XIAOMI_API_KEY |
xiaomi |
| Xiaomi MiMo Token Plan (China) | XIAOMI_TOKEN_PLAN_CN_API_KEY |
xiaomi-token-plan-cn |
| Xiaomi MiMo Token Plan (Amsterdam) | XIAOMI_TOKEN_PLAN_AMS_API_KEY |
xiaomi-token-plan-ams |
| Xiaomi MiMo Token Plan (Singapore) | 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 также могут включать значения среды на уровне provider. Эти значения используются раньше переменных среды процесса при разрешении ключа учетных данных, заголовков provider/model и конфигурации provider, например идентификаторов учетных записей 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;;"$!"выводит литерал"!", не запуская выполнение команды.{ "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 и управляются автоматически.
Облачные провайдеры
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-gpt4oAmazon Bedrock
Используйте /login amazon-bedrock, чтобы сохранить API key Bedrock, или настройте один из указанных ниже источников учетных данных 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=1Cloudflare AI Gateway
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 Workers AI
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 Vertex AI
Использует учетные данные приложения по умолчанию:
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 для настройки сервера, структуры каталога модели, переменных среды и использования команд.
Пользовательские Provider
Через models.json: Добавьте Ollama, LM Studio, vLLM или любого поставщика, поддерживающего совместимый API (OpenAI Completions, OpenAI Responses, Anthropic Messages, Google Generative AI). См. models.md.
Через расширения. Для поставщиков, которым требуются специальные реализации API или потоки OAuth, создайте расширение. См. custom-provider.md и examples/extensions/custom-provider-gitlab-duo.
Порядок разрешения
При разрешении учетных данных для поставщика:
- CLI
--api-keyфлаг - Запись
auth.json(токен API key или OAuth) - Переменная среды
- Пользовательские ключи поставщика от
models.json