自定义模型
通过 ~/.pi/agent/models.json 添加自定义 Provider 和模型(Ollama、vLLM、LM Studio、代理等)。
目录
最小示例
对于本地模型(Ollama、LM Studio、vLLM),每个模型只需要 id:
apiKey 是必需的,但 Ollama 会忽略它,所以任意值均可。
完整示例
需要特定值时可覆盖默认值:
文件在每次打开 /model 时重新加载。可在会话期间编辑,无需重启。
支持的 API
在 Provider 级别设置 api(作为所有模型的默认值),或在模型级别设置(每个模型覆盖)。
Provider 配置
值解析
apiKey 和 headers 字段支持三种格式:
- Shell 命令:
"!command"执行命令并使用 stdout 输出 - 环境变量: 使用指定变量的值
- 字面值: 直接使用
自定义请求头
模型配置
覆盖内置 Provider
通过代理路由内置 Provider,无需重新定义模型:
所有内置 Anthropic 模型保持可用。现有的 OAuth 或 API 密钥认证继续工作。
要将自定义模型合并到内置 Provider 中,包含 models 数组:
合并语义:
- 内置模型保留
- 自定义模型按
id在 Provider 内进行 upsert - 如果自定义模型
id与内置模型id匹配,自定义模型替换该内置模型 - 如果自定义模型
id是新的,则与内置模型并列添加
Per-model 覆盖
使用 modelOverrides 自定义特定内置模型,而无需替换 Provider 的完整模型列表。
modelOverrides 支持每个模型的以下字段:name、reasoning、input、cost(部分)、contextWindow、maxTokens、headers、compat。
行为说明:
modelOverrides应用于内置 Provider 模型- 未知的模型 ID 会被忽略
- 可以将 Provider 级别的
baseUrl/headers与modelOverrides结合使用 - 如果同时为 Provider 定义了
models,自定义模型在内置覆盖之后合并。具有相同id的自定义模型将替换被覆盖的内置模型条目
OpenAI 兼容性
对于部分兼容 OpenAI 的 Provider,使用 compat 字段:
示例:
Vercel AI Gateway 示例: