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 Chat → 型號選擇器 → 選擇型號 →“啟用”
xAI(Grok/X 訂閱)
- 運行
/login xai,然後選擇 使用訂閱 XAI_API_KEY透過 使用 API key 保持可用
開放路由器
- 運行
/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 |
| 英偉達NIM | NVIDIA_API_KEY |
nvidia |
| Google雙子座 | 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 Workers AI | CLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID) |
cloudflare-workers-ai |
| 人工智慧 | XAI_API_KEY |
xai |
| 開放路由器 | OPENROUTER_API_KEY |
openrouter |
| Vercel人工智慧網關 | AI_GATEWAY_API_KEY |
vercel-ai-gateway |
| ZAI 編碼計劃(全球) | ZAI_API_KEY |
zai |
| ZAI編碼計劃(中國) | ZAI_CODING_CN_API_KEY |
zai-coding-cn |
| 開放代碼禪 | OPENCODE_API_KEY |
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 代幣計劃(現有目錄) | 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 |
| 小米MiMo | XIAOMI_API_KEY |
xiaomi |
| 小米 MiMo 代幣計劃(中國) | XIAOMI_TOKEN_PLAN_CN_API_KEY |
xiaomi-token-plan-cn |
| 小米 MiMo 代幣計畫(阿姆斯特丹) | XIAOMI_TOKEN_PLAN_AMS_API_KEY |
xiaomi-token-plan-ams |
| 小米 MiMo 代幣計畫(新加坡) | XIAOMI_TOKEN_PLAN_SGP_API_KEY |
xiaomi-token-plan-sgp |
環境變數和auth.json鍵的參考:packages/ai/src/env-api-keys.ts中的const envMap。
驗證文件
將憑證儲存在~/.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 帳戶 ID、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 應使用與專案 shell 環境不同的提供者設定時,請使用此選項。
關鍵解決方案
key字段支援命令執行、環境插值和文字:
- Shell指令:
"!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;當BAR是文字文字時,使用${FOO}_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 開放人工智慧
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對於 ID 包含可識別模型名稱(基礎模型和系統定義的推理設定檔)的 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設定。帳戶 ID 和網關 slug 可以設定為環境變量,也可以設定在 auth.json 中的 API key 憑證的 env 物件中。
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 路由到 OpenAI、Anthropic 和 Workers AI。 Workers AI 使用統一 API (/compat) 和前綴模型 ID (workers-ai/@cf/...)。 OpenAI 使用 OpenAI 直通路由 (/openai) 和本機 OpenAI 模型 ID,例如gpt-5.1。 Anthropic 使用 Anthropic 直通路由 (/anthropic) 和本機 Anthropic 模型 ID,例如 claude-sonnet-4-5。
AI網關認證使用CLOUDFLARE_API_KEY作為cf-aig-authorization。上游身份驗證可以是以下之一:
| 模式 | 請求授權 | 上游認證 |
|---|---|---|
| 工人人工智慧 | 僅 Cloudflare 令牌 | Cloudflare-native |
| 統一計費 | 僅 Cloudflare 令牌 | Cloudflare 處理上游身份驗證並扣除積分 |
| 儲存的 BYOK | 僅 Cloudflare 令牌 | Cloudflare 注入儲存在 AI Gateway 儀表板中的提供者金鑰 |
| 內嵌BYOK | Cloudflare 令牌加上上游 Authorization 標頭 |
此請求提供上游提供者金鑰 |
對於正常的 pi 使用,更喜歡統一計費或儲存 BYOK。內嵌 BYOK 需要為 Cloudflare AI Gateway 供應商配置額外的上游 Authorization 標頭,例如透過 models.json 提供者/模型覆寫。
Cloudflare Workers AI
CLOUDFLARE_API_KEY可以透過/login設定。 CLOUDFLARE_ACCOUNT_ID 可以設定為環境變量,也可以設定在 auth.json 中的 API key 憑證的 env 物件中。
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 折扣。
谷歌頂點人工智慧
使用應用程式預設憑證:
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 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的自訂提供者金鑰