什么是omp(Oh My Pi)?
omp,也称为Oh My Pi,是一个具有内置和自定义模型提供程序的终端编码代理。
本 omp 指南在 models.yml 中声明了 TokenHub OpenAI-compatible 提供程序。 API 键是从环境变量解析的,并且模型上下文和输出值必须与所选模型匹配。 models.yml 文件控制提供程序传输、环境支持的凭据、模型 ID、上下文窗口和最大输出。 YAML 缩进或复制的限制可能会阻止加载或产生无效请求,因此请使用 omp 模型检查提供程序,并在将其用于活动工作之前测试一个小型只读任务。
omp 会把内置目录、~/.omp/agent/models.yml、运行时发现和扩展注册的模型合并成一个 registry。TokenHub 属于 models.yml 自定义 Provider,最终以 tokenhub/<model-id> 选择。
第一步:设置 omp 能解析的凭证
export TOKENHUB_API_KEY="sk-..."apiKey 的解析规则是“环境变量名或字面值”:若名为 TOKENHUB_API_KEY 的变量存在就使用其值,否则会把这串文字当成 Key。因此配置后一定要确认环境变量存在。
第二步:编辑 ~/.omp/agent/models.yml
providers:
tokenhub:
baseUrl: __API_BASE_URL__/v1
api: openai-completions
apiKey: TOKENHUB_API_KEY
authHeader: true
models:
- id: YOUR_TOKENHUB_MODEL_ID
name: TokenHub / YOUR_TOKENHUB_MODEL_ID
contextWindow: 128000
maxTokens: 8192authHeader: true 会让 omp 为每个请求注入 Authorization: Bearer <key>。contextWindow 与 maxTokens 必须来自对应 TokenHub 模型,不能沿用示例值。
第三步:检查 Provider 是否“加载”且“可用”
omp models
omp models find YOUR_TOKENHUB_MODEL_IDomp 的模型可以进入 registry 却仍不可选择。官方定义的可用条件是:Provider 不在有效的 disabledProviders 中,并且它是 keyless 或拥有可解析凭证。即使 Key 有效,只要 tokenhub 被禁用,整个 Provider 仍会消失。
凭证冲突时按 omp 的优先级排查
同一个 Provider 有多份 Key 时,omp 依次使用:运行时 --api-key、models.yml 的 apiKey、本地 auth store 的 API Key、OAuth、Provider 环境变量、最后才是自定义 Provider fallback。models.yml 中给 TokenHub 固定的 Key 会优先于旧 OAuth,这正适合自定义 Base URL。
首次验证选择 tokenhub/YOUR_TOKENHUB_MODEL_ID,执行只读任务并检查 TokenHub 日志。若 Provider 不出现,先检查 YAML 与 disabledProviders;若出现但不可选,检查 Key 是否解析;若 401,确认环境变量和 authHeader;若 400,再检查模型能力与 Token 上限。
官方资料
推荐模型怎么选?
omp (Oh My Pi) 提供商 FAQ
models.yml 中 apiKey 应该包含什么?
使用 TOKENHUB_API_KEY。当该环境变量存在时,omp 会将其值解析为提供程序密钥。
为什么我的自定义提供商不可用?
检查 models.yml 语法,确保提供程序不在禁用的 Provider 中,并确认 API 键变量可用于 omp。
我可以从另一个模型复制上下文值吗?
否。声明您选择的 TokenHub 型号的实际 contextWindow 和 maxTokens。
omp 和 Oh My Pi 是同一个工具吗?
是的。本页介绍 Oh My Pi 终端编码代理及其 ~/.omp/agent/models.yml 提供程序配置。
如何验证 omp 正在使用 TokenHub?
运行omp模型,选择tokenhub/<model-id>,执行只读任务,并在TokenHub日志中确认确切的模型。
配置资料
本页配置以 TokenHub 教程和官方资料为依据,最后核验于 2026-09-08。