第 01 模块 · 1 节

支持的提供方与订阅

《Pi 生产级工程》01 多模型与提供方 · 本节时长 28 分钟

从「一个模型」到「一堆提供方」

基础课里你完成了认证,第一次用 pi 跑通了会话。现在我们要往前走一步:理解 pi 背后的提供方生态

pi 支持两类认证方式,对应两种接入模型的路子:

方式 走什么 适合谁
订阅(Subscription) 通过 OAuth 登录 已有 ChatGPT / Claude / Copilot 等订阅的用户
API Key 环境变量或 auth.json 按量付费、或想精确控制用量的用户

本节先讲订阅,下一节讲 API Key。记住一句话:模型是可换的,pi 是工具——你完全可以在不同项目、甚至同一会话里切换提供方。

贯穿项目本课贯穿项目是 md-tools 分发——把 Markdown 工具箱打包成 Pi Package 发出去。分发后,别人要装你的包,就得先能跑起来 pi。所以他们用**订阅还是 API Key**,直接决定了你要不要在你的包文档里写认证步骤:如果受众是订阅用户,告诉他们 /login 就行;如果是 API Key 用户,你得把环境变量写清楚。**这一节先搞懂提供方,后面才知道该给谁写什么文档。**

订阅方式:用 /login 登录

在交互模式下,敲 /login,然后选择提供方即可。内置的订阅提供方包括:

  • ChatGPT Plus/Pro(Codex)——需要 ChatGPT Plus 或 Pro 订阅,OpenAI 官方认可 Codex for OSS
  • Claude Pro / Max——Anthropic 订阅认证,对 Pro/Max 账户生效
  • GitHub Copilot——回车连 github.com,或输入你的 GitHub Enterprise Server 域名
  • xAI(Grok / X 订阅)——跑 /login xai,选 "Use a subscription"
  • OpenRouter——通过 OpenRouter 的 PKCE 授权流程,铸造一把你自己的 API key
  • Radius——一个动态 pi-messages 网关

登录后要登出,用 /logout 清掉凭据。

/login          # 选择提供方
/login xai      # 指定提供方登录
/logout         # 清空凭据

这些登录令牌(OAuth tokens)存在 ~/.pi/agent/auth.json过期会自动刷新


订阅登录后会发生什么

登录完成后,两件事值得你心里有数:

  1. 令牌自动管理:OAuth 令牌过期后 pi 会静默刷新,你不用手动续期
  2. 特例是 OpenRouter:它不存会过期的令牌,而是铸造一把由你掌控的、不会自动过期的 API key,按你的 OpenRouter 余额计费

对生产环境来说,这意味着:订阅登录省心,但凭据生命周期不由你控制;API Key 更可控,但要在文档里写清楚。


几个提供方的实用细节

提供方 要记住的细节
OpenAI Codex 需 ChatGPT Plus 或 Pro 订阅
Claude Pro/Max 第三方工具的使用走额外额度,按 token 计费,不占 Claude 计划额度
GitHub Copilot 若提示 "model not supported",去 VS Code 的 Copilot Chat → 模型选择器里 Enable
xAI 通过 /login xai 选订阅,也仍可用 API key 方式
OpenRouter 远程/无头机器(如 SSH)上浏览器够不到本机回调,把重定向 URL 或授权码贴进登录提示即可

远程机器登录这个坑很真实——很多 CI 里的订阅登录就是卡在这一步。


落地练习:跑一次订阅登录流程

挑一个你手头有订阅的提供方,走一遍完整流程:

  1. 打开终端,进入一个空目录,运行 pi
  2. /login,选一个你已订阅的提供方(如 Claude Pro、GitHub Copilot)
  3. 按提示完成授权,回到会话后敲 /model,确认模型已经可选

怎么判断做对了?——/model 里能看到该提供方的模型,且能正常发起一次对话;~/.pi/agent/auth.json 里出现对应的 OAuth 凭据。

卡住了怎么办? 找不到提供方?先确认你的 pi 版本是最新的。登录后模型不可用?对照上面的「实用细节」表逐个排查,特别是 GitHub Copilot 需要在 VS Code 里 Enable 模型。


常见坑:把「订阅」和「API Key」当成一回事

新手最常见的误区,是以为订阅登录和 API Key 是同一个东西,随便配一个就行。

其实它们是两套并存的认证路径,而且很多提供方(如 xAI、OpenRouter)同时支持两种。区别在于:订阅走 OAuth 令牌、自动刷新、不计入你自己的 API 账单;API Key 走显式凭据、计费更透明、更适合脚本和 CI。

更隐蔽的坑是:你以为自己登录成功了,其实用的是环境变量里的老 Key。pi 解析凭据是有顺序的(CLI --api-key → auth.json → 环境变量),别被「看起来能跑」骗了。这一节先记住两种方式并存,下一节我们深挖解析顺序。


小结

  1. pi 支持订阅(OAuth)和 API Key 两类认证
  2. 订阅用 /login 登录,令牌存 auth.json,过期自动刷新
  3. 订阅提供方:Codex、Claude Pro/Max、Copilot、xAI、OpenRouter、Radius
  4. 远程机器上 OpenRouter 登录要把回调 URL 贴进提示框
  5. 订阅与 API Key 并存,凭据解析有明确顺序

下一节,我们讲 API Key 与环境变量——这也是 md-tools 文档里最该写清楚的部分。