PiPi
快速开始
使用 Pi
  • 简体中文
  • English
快速开始
使用 Pi
  • 简体中文
  • English
  • 从这里开始

    • 快速开始
    • 使用 Pi
    • 提供商
    • 安全
    • 容器化
    • 设置
    • 键位绑定
    • 会话
    • 压缩与分支总结
  • 自定义

    • 扩展
    • 技能
    • 提示词模板
    • 主题
    • Pi 包
    • 自定义模型
    • 自定义提供商
  • 参考

    • 会话文件格式
  • 编程式使用

    • SDK
    • RPC 模式
    • JSON 事件流模式
    • TUI 组件
  • 平台设置

    • Windows 设置
    • Termux(Android)设置
    • tmux 设置
    • 终端设置
    • Shell 别名
  • 开发

    • 开发

提供商

Pi 支持通过 OAuth 使用基于订阅的提供商,也支持通过环境变量或 auth 文件使用 API key 提供商。对于每个提供商,pi 都知道所有可用模型。该列表会随每个 pi 版本更新。

目录

  • 订阅
  • API Keys
  • Auth File
  • 云提供商
  • 自定义提供商
  • 解析顺序

订阅

在交互模式中使用 /login,然后选择提供商:

  • ChatGPT Plus/Pro (Codex)
  • Claude Pro/Max
  • GitHub Copilot

使用 /logout 清除凭据。Token 存储在 ~/.pi/agent/auth.json 中,并在过期时自动刷新。

OpenAI Codex

  • 需要 ChatGPT Plus 或 Pro 订阅
  • OpenAI 官方认可:Codex for OSS

Claude Pro/Max

Anthropic 订阅身份验证适用于 Claude Pro/Max 账户。第三方 harness 使用量会计入 extra usage,并按 token 计费,而不是计入 Claude 计划限制。

GitHub Copilot

  • 对 github.com 按 Enter,或输入你的 GitHub Enterprise Server 域名
  • 如果遇到 "model not supported",请在 VS Code 中启用它:Copilot Chat → model selector → select model → "Enable"

API Keys

环境变量或 Auth File

在交互模式中使用 /login 并选择一个提供商,可将 API key 存储在 auth.json 中;或者通过环境变量设置凭据:

export ANTHROPIC_API_KEY=sk-ant-...
pi
提供商环境变量auth.json key
AnthropicANTHROPIC_API_KEYanthropic
Ant LingANT_LING_API_KEYant-ling
Azure OpenAI ResponsesAZURE_OPENAI_API_KEYazure-openai-responses
OpenAIOPENAI_API_KEYopenai
DeepSeekDEEPSEEK_API_KEYdeepseek
NVIDIA NIMNVIDIA_API_KEYnvidia
Google GeminiGEMINI_API_KEYgoogle
MistralMISTRAL_API_KEYmistral
GroqGROQ_API_KEYgroq
CerebrasCEREBRAS_API_KEYcerebras
Cloudflare AI GatewayCLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_GATEWAY_ID)cloudflare-ai-gateway
Cloudflare Workers AICLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID)cloudflare-workers-ai
xAIXAI_API_KEYxai
OpenRouterOPENROUTER_API_KEYopenrouter
Vercel AI GatewayAI_GATEWAY_API_KEYvercel-ai-gateway
ZAI Coding Plan (Global)ZAI_API_KEYzai
ZAI Coding Plan (China)ZAI_CODING_CN_API_KEYzai-coding-cn
OpenCode ZenOPENCODE_API_KEYopencode
OpenCode GoOPENCODE_API_KEYopencode-go
Hugging FaceHF_TOKENhuggingface
FireworksFIREWORKS_API_KEYfireworks
Together AITOGETHER_API_KEYtogether
Kimi For CodingKIMI_API_KEYkimi-coding
MiniMaxMINIMAX_API_KEYminimax
MiniMax (China)MINIMAX_CN_API_KEYminimax-cn
Xiaomi MiMoXIAOMI_API_KEYxiaomi
Xiaomi MiMo Token Plan (China)XIAOMI_TOKEN_PLAN_CN_API_KEYxiaomi-token-plan-cn
Xiaomi MiMo Token Plan (Amsterdam)XIAOMI_TOKEN_PLAN_AMS_API_KEYxiaomi-token-plan-ams
Xiaomi MiMo Token Plan (Singapore)XIAOMI_TOKEN_PLAN_SGP_API_KEYxiaomi-token-plan-sgp

环境变量和 auth.json key 的参考:packages/ai/src/env-api-keys.ts 中的 const envMap。

Auth File

将凭据存储在 ~/.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": "..." },
  "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": "..." }
}

该文件会以 0600 权限创建(仅用户可读/写)。Auth file 凭据优先于环境变量。

API key 凭据也可以包含提供商作用域的环境值。解析凭据 key、提供商/模型 header,以及 Cloudflare account ID、Azure OpenAI 设置、Vertex project/location、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 解析

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。缺失的环境变量会使该值无法解析。
  • 转义: "$$" 输出字面 "$";"$!" 输出字面 "!",且不会触发命令执行。
    { "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-gpt4o

Amazon Bedrock

# 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 task roles(AWS_CONTAINER_CREDENTIALS_*)和 IRSA(AWS_WEB_IDENTITY_TOKEN_FILE)。

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

对于 ID 中包含可识别模型名称的 Claude 模型(基础模型和系统定义的 inference profile),会自动启用提示缓存。对于 application inference profile(其 ARN 中不包含模型名称),请设置 AWS_BEDROCK_FORCE_CACHE=1 以启用 cache points:

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

如果你正在连接 Bedrock API proxy,可以使用以下环境变量:

# 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 Gateway

CLOUDFLARE_API_KEY 可通过 /login 设置。Account ID 和 gateway 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 使用 Unified API(/compat)和带前缀的模型 ID(workers-ai/@cf/...)。OpenAI 使用 OpenAI passthrough 路由(/openai)和原生 OpenAI 模型 ID,例如 gpt-5.1。Anthropic 使用 Anthropic passthrough 路由(/anthropic)和原生 Anthropic 模型 ID,例如 claude-sonnet-4-5。

AI Gateway 身份验证使用 CLOUDFLARE_API_KEY 作为 cf-aig-authorization。上游身份验证可以是以下之一:

模式请求身份验证上游身份验证
Workers AI仅 Cloudflare tokenCloudflare-native
Unified billing仅 Cloudflare tokenCloudflare 处理上游身份验证并扣除 credits
Stored BYOK仅 Cloudflare tokenCloudflare 注入 AI Gateway dashboard 中存储的提供商 key
Inline BYOKCloudflare token 加上上游 Authorization header请求提供上游提供商 key

对于普通 pi 使用,优先选择 unified billing 或 stored BYOK。Inline BYOK 需要为 Cloudflare AI Gateway 提供商配置额外的上游 Authorization header,例如通过 models.json provider/model override。

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 折扣。

Google Vertex AI

使用 Application Default Credentials:

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

或者将 GOOGLE_APPLICATION_CREDENTIALS 设置为 service account key 文件。

自定义提供商

通过 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。

解析顺序

解析提供商凭据时:

  1. CLI --api-key 标志
  2. auth.json 条目(API key 或 OAuth token)
  3. 环境变量
  4. 来自 models.json 的自定义提供商 key
最近更新:: 2026/7/6 09:32
Contributors: seepine
Prev
使用 Pi
Next
安全