Providers
Pi hỗ trợ các nhà cung cấp dựa trên đăng ký thông qua các nhà cung cấp OAuth và API key thông qua các biến môi trường hoặc tệp xác thực. Danh mục tích hợp đi kèm với pi; các nhà cung cấp đã định cấu hình có thể làm mới các danh mục mới hơn và lưu chúng vào bộ nhớ đệm trong ~/.pi/agent/models-store.json để sử dụng ngoại tuyến.
Mục lục
Đăng ký
Sử dụng /login ở chế độ tương tác, sau đó chọn nhà cung cấp:
- ChatGPT Plus/Pro (Codex)
- Claude Pro/Max
- GitHub Phi công phụ
- xAI (đăng ký Grok/X)
- OpenRouter (OAuth đúc API key được tính phí từ tín dụng OpenRouter)
- Bán kính
Sử dụng /logout để xóa thông tin xác thực. Mã thông báo được lưu trữ trong ~/.pi/agent/auth.json và tự động làm mới khi hết hạn. Thay vào đó, OpenRouter tạo ra một API key do người dùng kiểm soát và không tự động hết hạn.
Codex OpenAI
- Yêu cầu đăng ký ChatGPT Plus hoặc Pro
- Được xác nhận chính thức bởi OpenAI: Codex for OSS
Claude Pro/Max
Xác thực đăng ký Anthropic đang hoạt động cho tài khoản Claude Pro/Max. Mức sử dụng khai thác của bên thứ ba rút ra từ extra usage và được tính phí theo mã thông báo, không vượt quá giới hạn của gói Claude.
GitHub Phi công phụ
- Nhấn Enter để truy cập github.com hoặc nhập miền GitHub Enterprise Server của bạn
- Nếu bạn nhận được "kiểu máy không được hỗ trợ", hãy bật nó trong Mã VS: Trò chuyện phi công phụ → bộ chọn mô hình → chọn mô hình → "Bật"
xAI (đăng ký Grok/X)
- Chạy
/login xai, sau đó chọn Sử dụng đăng ký XAI_API_KEYvẫn có sẵn thông qua Sử dụng API key
Bộ định tuyến mở
- Chạy
/login openrouter, sau đó chọn Đăng nhập bằng OpenRouter để mở luồng ủy quyền OpenRouter PKCE - Ủy quyền tạo OpenRouter API key do người dùng kiểm soát được tính phí từ tín dụng OpenRouter của bạn
- Trên các máy từ xa/không có đầu (ví dụ: trên SSH), trình duyệt không thể truy cập lệnh gọi lại vòng lặp; thay vào đó hãy dán URL chuyển hướng cuối cùng (hoặc mã ủy quyền) vào lời nhắc đăng nhập
OPENROUTER_API_KEYvẫn có sẵn thông qua Sử dụng API key
Bán kính
Bán kính là một cổng pi-messages động. /login radius lưu trữ OAuth mã thông báo trong auth.json; danh mục cổng được làm mới độc lập và được lưu vào bộ nhớ đệm trong models-store.json. Cổng Bán kính tùy chỉnh có thể được khai báo trong models.json với "oauth": "radius" và cổng baseUrl.
API Phím
Biến môi trường hoặc tệp xác thực
Sử dụng /login ở chế độ tương tác và chọn nhà cung cấp để lưu trữ API key trong auth.json hoặc đặt thông tin xác thực thông qua biến môi trường:
export ANTHROPIC_API_KEY=sk-ant-...
pi| nhà cung cấp | Biến môi trường | phím auth.json |
|---|---|---|
| nhân loại | ANTHROPIC_API_KEY |
anthropic |
| Kiến Linh | ANT_LING_API_KEY |
ant-ling |
| Phản hồi của Azure OpenAI | AZURE_OPENAI_API_KEY |
azure-openai-responses |
| OpenAI | OPENAI_API_KEY |
openai |
| tìm kiếm sâu | DEEPSEEK_API_KEY |
deepseek |
| NVIDIA NIM | NVIDIA_API_KEY |
nvidia |
| Google Song Tử | GEMINI_API_KEY |
google |
| Đá nền Amazon | AWS_BEARER_TOKEN_BEDROCK |
amazon-bedrock |
| Mistral | MISTRAL_API_KEY |
mistral |
| Groq | GROQ_API_KEY |
groq |
| não | CEREBRAS_API_KEY |
cerebras |
| Cổng AI của Cloudflare | CLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_GATEWAY_ID) |
cloudflare-ai-gateway |
| Công nhân Cloudflare AI | CLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID) |
cloudflare-workers-ai |
| xAI | XAI_API_KEY |
xai |
| Bộ định tuyến mở | OPENROUTER_API_KEY |
openrouter |
| Cổng AI Vercel | AI_GATEWAY_API_KEY |
vercel-ai-gateway |
| Gói mã hóa ZAI (Toàn cầu) | ZAI_API_KEY |
zai |
| Kế hoạch mã hóa ZAI (Trung Quốc) | ZAI_CODING_CN_API_KEY |
zai-coding-cn |
| Mã mở Zen | OPENCODE_API_KEY |
opencode |
| Mã mở đi | OPENCODE_API_KEY |
opencode-go |
| Bán kính | RADIUS_API_KEY |
radius |
| Hugging Face | HF_TOKEN |
huggingface |
| Pháo hoa | FIREWORKS_API_KEY |
fireworks |
| AI cùng nhau | TOGETHER_API_KEY |
together |
| Baseten | BASETEN_API_KEY |
baseten |
| Kimi để viết mã | KIMI_API_KEY |
kimi-coding |
| MiniMax | MINIMAX_API_KEY |
minimax |
| MiniMax (Trung Quốc) | MINIMAX_CN_API_KEY |
minimax-cn |
| Gói mã thông báo Qwen (danh mục hiện có) | QWEN_TOKEN_PLAN_API_KEY |
qwen-token-plan |
| Gói mã thông báo Qwen (Cá nhân) | QWEN_TOKEN_PLAN_API_KEY |
qwen-token-plan-individual |
| Kế hoạch mã thông báo Qwen (Trung Quốc) | QWEN_TOKEN_PLAN_CN_API_KEY |
qwen-token-plan-cn |
| Xiaomi MiMo | XIAOMI_API_KEY |
xiaomi |
| Gói mã thông báo Xiaomi MiMo (Trung Quốc) | XIAOMI_TOKEN_PLAN_CN_API_KEY |
xiaomi-token-plan-cn |
| Gói mã thông báo Xiaomi MiMo (Amsterdam) | XIAOMI_TOKEN_PLAN_AMS_API_KEY |
xiaomi-token-plan-ams |
| Gói mã thông báo Xiaomi MiMo (Singapore) | XIAOMI_TOKEN_PLAN_SGP_API_KEY |
xiaomi-token-plan-sgp |
Tham chiếu cho các biến môi trường và khóa auth.json: const envMap trong packages/ai/src/env-api-keys.ts.
Tệp xác thực
Lưu trữ thông tin xác thực trong ~/.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 sử dụng cùng điểm cuối quốc tế và QWEN_TOKEN_PLAN_API_KEY như
qwen-token-plan, nhưng giới hạn bộ chọn ở các mô hình được ghi lại cho đăng ký Cá nhân. Hiện có
nhà cung cấp giữ danh mục rộng hơn để có khả năng tương thích ngược. Khi sử dụng auth.json, hãy lưu trữ
thông tin xác thực theo nhà cung cấp bạn chọn; một biến môi trường được chia sẻ bởi cả hai nhà cung cấp quốc tế.
Tệp được tạo với quyền 0600 (chỉ người dùng đọc/ghi). Thông tin xác thực tệp xác thực được ưu tiên hơn các biến môi trường.
API key thông tin đăng nhập cũng có thể bao gồm các giá trị môi trường trong phạm vi nhà cung cấp. Các giá trị này được sử dụng trước các biến môi trường quy trình khi phân giải khóa thông tin xác thực, tiêu đề nhà cung cấp/mô hình và cấu hình nhà cung cấp, chẳng hạn như ID tài khoản Cloudflare, cài đặt Azure OpenAI, dự án/vị trí Vertex, cài đặt Bedrock, PI_CACHE_RETENTION và 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"
}
}
}Sử dụng điều này khi pi nên sử dụng các cài đặt nhà cung cấp khác với môi trường shell dự án.
Độ phân giải chính
Trường key hỗ trợ thực thi lệnh, nội suy môi trường và chữ:
- Lệnh Shell:
"!command"khi bắt đầu thực thi toàn bộ giá trị dưới dạng lệnh và sử dụng stdout (được lưu trong bộ nhớ đệm trong suốt thời gian xử lý){ "type": "api_key", "key": "!security find-generic-password -ws 'anthropic'" } { "type": "api_key", "key": "!op read 'op://vault/item/credential'" } - Nội suy môi trường:
"$ENV_VAR"hoặc"${ENV_VAR}"sử dụng giá trị của biến được đặt tên. Nội suy hoạt động bên trong các chữ lớn hơn.{ "type": "api_key", "key": "$MY_ANTHROPIC_KEY" } { "type": "api_key", "key": "${KEY_PREFIX}_${KEY_SUFFIX}" }$FOO_BARlà biếnFOO_BAR; sử dụng${FOO}_BARkhiBARlà văn bản chữ. Thiếu biến môi trường làm cho giá trị không được giải quyết. - Thoát:
"quot;phát ra chữ"quot;;"$!"phát ra"!"theo nghĩa đen mà không kích hoạt thực thi lệnh.{ "type": "api_key", "key": "$literal-dollar-prefix" } { "type": "api_key", "key": "$!literal-bang-prefix" } - Giá trị bằng chữ: Được sử dụng trực tiếp. Các chuỗi viết hoa đơn giản như
MY_API_KEYlà chữ; sử dụng$MY_API_KEYcho các biến môi trường.{ "type": "api_key", "key": "sk-ant-..." } { "type": "api_key", "key": "public" }
Thông tin xác thực OAuth cũng được lưu trữ tại đây sau /login và được quản lý tự động.
Đám mây 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Đá nền Amazon
Sử dụng /login amazon-bedrock để lưu trữ Bedrock API key hoặc định cấu hình một trong các nguồn thông tin xác thực AWS xung quanh bên dưới:
# 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Đồng thời hỗ trợ các vai trò nhiệm vụ ECS (AWS_CONTAINER_CREDENTIALS_*) và IRSA (AWS_WEB_IDENTITY_TOKEN_FILE).
pi --provider amazon-bedrock --model us.anthropic.claude-sonnet-4-20250514-v1:0Bộ nhớ đệm nhắc nhở được bật tự động cho các mô hình Claude có ID chứa tên mô hình có thể nhận dạng được (mô hình cơ sở và cấu hình suy luận do hệ thống xác định). Đối với cấu hình suy luận ứng dụng (có ARN không chứa tên kiểu máy), hãy đặt AWS_BEDROCK_FORCE_CACHE=1 để bật điểm bộ đệm:
export AWS_BEDROCK_FORCE_CACHE=1
pi --provider amazon-bedrock --model arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123Nếu bạn đang kết nối với proxy Bedrock API, có thể sử dụng các biến môi trường sau:
# 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=1Cổng AI của Cloudflare
CLOUDFLARE_API_KEY có thể được đặt qua /login. ID tài khoản và sên cổng có thể được đặt làm biến môi trường hoặc trong đối tượng env của thông tin xác thực trong 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"Các tuyến đến OpenAI, Anthropic và Workers AI thông qua Cloudflare AI Gateway. AI công nhân sử dụng ID mô hình hợp nhất API (/compat) và tiền tố (workers-ai/@cf/...). OpenAI sử dụng lộ trình chuyển tiếp OpenAI (/openai) với ID mô hình OpenAI gốc như gpt-5.1. Anthropic sử dụng lộ trình chuyển tiếp Anthropic (/anthropic) với ID mô hình Anthropic gốc chẳng hạn như claude-sonnet-4-5.
Xác thực Cổng AI sử dụng CLOUDFLARE_API_KEY làm cf-aig-authorization. Xác thực ngược dòng có thể là một trong:
| Cách thức | Yêu cầu xác thực | Xác thực ngược dòng |
|---|---|---|
| AI công nhân | Chỉ mã thông báo Cloudflare | Cloudflare có nguồn gốc |
| Thanh toán thống nhất | Chỉ mã thông báo Cloudflare | Cloudflare xử lý việc xác thực ngược dòng và khấu trừ tín dụng |
| Được lưu trữ BYOK | Chỉ mã thông báo Cloudflare | Cloudflare tiêm các khóa của nhà cung cấp được lưu trữ trong bảng điều khiển AI Gateway |
| BYOK nội tuyến | Mã thông báo Cloudflare cộng với tiêu đề ngược dòng Authorization |
Yêu cầu cung cấp khóa của nhà cung cấp ngược dòng |
Để sử dụng pi thông thường, hãy ưu tiên thanh toán thống nhất hoặc BYOK được lưu trữ. BYOK nội tuyến yêu cầu định cấu hình tiêu đề Authorization ngược dòng bổ sung cho nhà cung cấp Cloudflare AI Gateway, chẳng hạn như thông qua ghi đè mô hình/nhà cung cấp models.json.
Công nhân Cloudflare AI
CLOUDFLARE_API_KEY có thể được đặt qua /login. CLOUDFLARE_ACCOUNT_ID có thể được đặt làm biến môi trường hoặc trong đối tượng env của thông tin xác thực trong 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 tự động đặt x-session-affinity để được giảm giá prefix caching.
AI của Google Vertex
Sử dụng thông tin xác thực mặc định của ứng dụng:
gcloud auth application-default login
export GOOGLE_CLOUD_PROJECT=your-project
export GOOGLE_CLOUD_LOCATION=us-central1Hoặc đặt GOOGLE_APPLICATION_CREDENTIALS thành tệp khóa tài khoản dịch vụ.
llama.cpp
Pi hỗ trợ máy chủ bộ định tuyến llama.cpp. Định cấu hình nó bằng /login llama.cpp, quản lý các mô hình đã tải bằng /llama và chọn một mô hình đã tải bằng /model.
Xem llama.cpp để biết cách thiết lập máy chủ, bố cục thư mục mô hình, biến môi trường và cách sử dụng lệnh.
Tùy chỉnh Providers
Qua models.json: Thêm Ollama, LM Studio, vLLM hoặc bất kỳ nhà cung cấp nào nói API được hỗ trợ (Hoàn thành OpenAI, Phản hồi OpenAI, Tin nhắn nhân loại, AI sáng tạo của Google). Xem models.md.
Thông qua tiện ích mở rộng: Đối với các nhà cung cấp cần triển khai API tùy chỉnh hoặc luồng OAuth, hãy tạo tiện ích mở rộng. Xem custom-provider.md và examples/extensions/custom-provider-gitlab-duo.
Lệnh giải quyết
Khi giải quyết thông tin xác thực cho nhà cung cấp:
- cờ CLI
--api-key auth.jsonmục nhập (API key hoặc OAuth mã thông báo)- Biến môi trường
- Khóa nhà cung cấp tùy chỉnh từ
models.json