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=1Cloudflare 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.
Порядок разрешения
При разрешении учетных данных для поставщика:
- CLI
--api-keyфлаг - Запись
auth.json(токен API key или OAuth) - Переменная среды
- Пользовательские ключи поставщика от
models.json