Providers
Pi, ortam değişkenleri veya kimlik doğrulama dosyası aracılığıyla OAuth ve API key sağlayıcıları aracılığıyla abonelik tabanlı sağlayıcıları destekler. Yerleşik kataloglar pi ile birlikte gönderilir; yapılandırılmış sağlayıcılar daha yeni katalogları yenileyebilir ve bunları çevrimdışı kullanım için ~/.pi/agent/models-store.json'de önbelleğe alabilir.
İçindekiler
Abonelikler
Etkileşimli modda /login tuşunu kullanın, ardından bir sağlayıcı seçin:
- ChatGPT Plus/Pro (Codex)
- Claude Pro/Max
- GitHub Copilot
- xAI (Grok/X subscription)
- OpenRouter (OAuth-minted API key billed from OpenRouter credits)
- Radius
Kimlik bilgilerini temizlemek için /logout tuşunu kullanın. Jetonlar ~/.pi/agent/auth.json'de saklanır ve süresi dolduğunda otomatik olarak yenilenir. OpenRouter bunun yerine kullanıcı tarafından kontrol edilen ve süresi otomatik olarak dolmayan bir API key basar.
OpenAI Codex
- ChatGPT Plus veya Pro aboneliği gerektirir
- OpenAI tarafından resmi olarak onaylanmıştır: Codex for OSS
Claude Pro/Max
Anthropic abonelik kimlik doğrulaması Claude Pro/Max hesapları için etkindir. Üçüncü taraf araç kullanımı extra usage üzerinden düşülür ve Claude plan sınırlarından değil token başına faturalandırılır.
GitHub Copilot
- github.com için Enter tuşuna basın veya GitHub Enterprise Server alan adınızı girin
- "Model desteklenmiyor" mesajını alırsanız, bunu VS Code'da etkinleştirin: Copilot Chat → model seçici → modeli seç → "Etkinleştir"
xAI (Grok/X subscription)
/login xaikomutunu çalıştırın ve ardından Abonelik kullan seçeneğini seçinXAI_API_KEY, API key kullanın aracılığıyla kullanılabilir olmaya devam eder
OpenRouter
/login openrouterkomutunu çalıştırın ve ardından OpenRouter PKCE yetkilendirme akışını açmak için OpenRouter ile oturum aç seçeneğini seçin- Yetkilendirme, OpenRouter kredilerinizden faturalandırılan, kullanıcı kontrollü bir OpenRouter API key oluşturur
- Uzak/başsız makinelerde (örneğin SSH'nin üzerinde) tarayıcı geri döngü geri çağrısına ulaşamaz; bunun yerine son yönlendirme URL'sini (veya yetkilendirme kodunu) giriş istemine yapıştırın
OPENROUTER_API_KEY, API key kullanın aracılığıyla kullanılabilir olmaya devam eder
Radius
Radius dinamik bir pi-messages ağ geçididir. /login radius OAuth token'ı auth.json'de saklar; ağ geçidi kataloğu bağımsız olarak yenilenir ve models-store.json'de önbelleğe alınır. Özel Radius ağ geçitleri models.json'de "oauth": "radius" ve bir ağ geçidi baseUrl ile bildirilebilir.
API keys
Ortam Değişkenleri veya Kimlik Doğrulama Dosyası
Etkileşimli modda /login kullanın ve API key'yi auth.json'de depolamak için bir sağlayıcı seçin veya kimlik bilgilerini ortam değişkeni aracılığıyla ayarlayın:
export ANTHROPIC_API_KEY=sk-ant-...
pi| sağlayıcı | Ortam Değişkeni | auth.json tuşu |
|---|---|---|
| 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 |
Ortam değişkenleri ve auth.json tuşları için referans: packages/ai/src/env-api-keys.ts'de const envMap.
Kimlik Doğrulama Dosyası
Kimlik bilgilerini ~/.pi/agent/auth.json konumunda saklayın:
{
"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 aynı uluslararası uç noktayı kullanır ve QWEN_TOKEN_PLAN_API_KEY ile
qwen-token-plan, ancak seçiciyi Bireysel abonelikler için belgelenen modellerle sınırlar. Mevcut
sağlayıcı geriye dönük uyumluluk için daha geniş kataloğunu korur. auth.json kullanırken,
seçtiğiniz sağlayıcının kimlik bilgileri; bir ortam değişkeni her iki uluslararası sağlayıcı tarafından paylaşılmaktadır.
Dosya 0600 izinleriyle oluşturulmuştur (yalnızca kullanıcı okuma/yazma). Kimlik doğrulama dosyası kimlik bilgileri, ortam değişkenlerine göre önceliklidir.
API key kimlik bilgileri provider kapsamlı ortam değerleri de içerebilir. Bu değerler kimlik bilgisi anahtarı, provider/model başlıkları ve Cloudflare hesap kimlikleri, Azure OpenAI ayarları, Vertex projesi/konumu, Bedrock ayarları, PI_CACHE_RETENTION ve HTTP_PROXY/HTTPS_PROXY gibi provider yapılandırmaları çözümlenirken işlem ortamı değişkenlerinden önce kullanılır.
{
"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'nin proje kabuk ortamından farklı sağlayıcı ayarları kullanması gerektiğinde bunu kullanın.
Anahtar Çözünürlüğü
key alanı komut yürütmeyi, ortam enterpolasyonunu ve değişmez değerleri destekler:
- Kabuk komutu:
"!command"başlangıçta tüm değeri bir komut olarak yürütür ve stdout'yi kullanır (işlem ömrü boyunca önbelleğe alınır){ "type": "api_key", "key": "!security find-generic-password -ws 'anthropic'" } { "type": "api_key", "key": "!op read 'op://vault/item/credential'" } - Ortam enterpolasyonu:
"$ENV_VAR"veya"${ENV_VAR}", adlandırılmış değişkenin değerini kullanır. Enterpolasyon daha büyük değişmezlerin içinde çalışır.{ "type": "api_key", "key": "$MY_ANTHROPIC_KEY" } { "type": "api_key", "key": "${KEY_PREFIX}_${KEY_SUFFIX}" }$FOO_BAR,FOO_BARdeğişkenidir;BARgerçek metin olduğunda${FOO}_BARkullanın. Eksik ortam değişkenleri değeri çözümsüz hale getirir. - Kaçışlar:
"$"değişmez"quot;üretir;"$!"komut yürütmeyi tetiklemeden değişmez"!"üretir.{ "type": "api_key", "key": "$literal-dollar-prefix" } { "type": "api_key", "key": "$!literal-bang-prefix" } - Gerçek değer: Doğrudan kullanılır.
MY_API_KEYgibi düz büyük harf dizeleri değişmez değerlerdir; ortam değişkenleri için$MY_API_KEYkullanın.{ "type": "api_key", "key": "sk-ant-..." } { "type": "api_key", "key": "public" }
OAuth kimlik bilgileri /login sonrasında da burada saklanır ve otomatik olarak yönetilir.
Bulut sağlayıcıları
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
Bedrock API key saklamak için /login amazon-bedrock kullanın veya aşağıdaki ortam tabanlı AWS kimlik bilgisi kaynaklarından birini yapılandırın:
# 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-2Ayrıca ECS görev rollerini (AWS_CONTAINER_CREDENTIALS_*) ve IRSA'yı (AWS_WEB_IDENTITY_TOKEN_FILE) destekler.
pi --provider amazon-bedrock --model us.anthropic.claude-sonnet-4-20250514-v1:0Kimliği tanınabilir bir model adı içeren Claude modelleri (temel modeller ve sistem tanımlı çıkarım profilleri) için istemi önbelleğe alma otomatik olarak etkinleştirilir. Uygulama çıkarım profilleri için (ARN'leri model adını içermeyen), önbellek noktalarını etkinleştirmek için AWS_BEDROCK_FORCE_CACHE=1 değerini ayarlayın:
export AWS_BEDROCK_FORCE_CACHE=1
pi --provider amazon-bedrock --model arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123Bedrock API proxy'sine bağlanıyorsanız aşağıdaki ortam değişkenleri kullanılabilir:
# 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 ile ayarlanabilir. Hesap kimliği ve ağ geçidi bilgisi, ortam değişkenleri olarak veya auth.json'deki API key kimlik bilgisinin env nesnesinde ayarlanabilir.
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"Cloudflare AI Gateway aracılığıyla OpenAI, Anthropic ve Workers AI'ye giden yollar. Workers AI, Birleşik API (/compat) ve ön ekli model kimliklerini (workers-ai/@cf/...) kullanır. OpenAI, gpt-5.1 gibi yerel OpenAI model kimlikleriyle OpenAI geçiş rotasını (/openai) kullanır. Anthropic, claude-sonnet-4-5 gibi yerel Anthropic model kimlikleriyle Anthropic geçiş rotasını (/anthropic) kullanır.
AI Ağ Geçidi kimlik doğrulaması, CLOUDFLARE_API_KEY'yi cf-aig-authorization olarak kullanır. Yukarı akış kimlik doğrulaması aşağıdakilerden biri olabilir:
| Mod | Kimlik doğrulama isteği | Yukarı akış kimlik doğrulaması |
|---|---|---|
| İşçi Yapay Zekası | Yalnızca Cloudflare jetonu | Cloudflare'de yerel |
| Birleşik faturalandırma | Yalnızca Cloudflare jetonu | Cloudflare yukarı akış kimlik doğrulamasını yönetir ve kredileri düşürür |
| BYOK'ta depolandı | Yalnızca Cloudflare jetonu | Cloudflare, AI Gateway kontrol panelinde saklanan sağlayıcı anahtarlarını enjekte ediyor |
| Satır içi BYOK | Cloudflare belirteci artı yukarı akış Authorization başlığı |
İstek, yukarı akış sağlayıcı anahtarını sağlar |
Normal pi kullanımı için birleşik faturalandırmayı veya depolanan BYOK'u tercih edin. Satır içi BYOK, Cloudflare AI Gateway sağlayıcısı için örneğin models.json sağlayıcı/model geçersiz kılma yoluyla ek bir yukarı akış Authorization başlığının yapılandırılmasını gerektirir.
Cloudflare Workers AI
CLOUDFLARE_API_KEY /login ile ayarlanabilir. CLOUDFLARE_ACCOUNT_ID bir ortam değişkeni olarak veya auth.json'deki API key kimlik bilgisinin env nesnesinde ayarlanabilir.
export CLOUDFLARE_API_KEY=... # or use /login
export CLOUDFLARE_ACCOUNT_ID=...
pi --provider cloudflare-workers-ai --model "@cf/moonshotai/kimi-k2.6"Pi, prefix caching indirimler için otomatik olarak x-session-affinity'yi ayarlar.
Google Vertex AI
Uygulama Varsayılan Kimlik Bilgilerini kullanır:
gcloud auth application-default login
export GOOGLE_CLOUD_PROJECT=your-project
export GOOGLE_CLOUD_LOCATION=us-central1Veya GOOGLE_APPLICATION_CREDENTIALS'yi bir hizmet hesabı anahtar dosyasına ayarlayın.
llama.cpp
Pi, llama.cpp yönlendirici sunucusunu destekler. /login llama.cpp ile yapılandırın, yüklü modelleri /llama ile yönetin ve /model ile yüklü bir model seçin.
Sunucu kurulumu, model dizini düzeni, ortam değişkenleri ve komut kullanımı için llama.cpp'e bakın.
Özel Provider'lar
models.json aracılığıyla: Ollama, LM Studio, vLLM veya desteklenen bir API'yi kullanan herhangi bir sağlayıcı ekleyin (OpenAI Completions, OpenAI Responses, Anthropic Messages, Google Generative AI). Bkz. models.md.
Uzantılar aracılığıyla: Özel API uygulamalara veya OAuth akışlara ihtiyaç duyan sağlayıcılar için bir uzantı oluşturun. Bkz. custom-provider.md ve examples/extensions/custom-provider-gitlab-duo.
Çözüm Sırası
Bir sağlayıcının kimlik bilgilerini çözümlerken:
- CLI
--api-keybayrak auth.jsongirişi (API key veya OAuth jetonu)- Ortam değişkeni
models.jsontarihinden itibaren özel sağlayıcı anahtarları