自定义模型
通过 ~/.pi/agent/models.json 添加自定义 Provider 和模型(Ollama、vLLM、LM Studio、代理等)。
最小示例
对于本地模型(Ollama、LM Studio、vLLM),每个模型只需 id:
{
"providers": {
"ollama": {
"baseUrl": "http://localhost:11434/v1",
"api": "openai-completions",
"apiKey": "ollama",
"models": [
{ "id": "llama3.1:8b" },
{ "id": "qwen2.5-coder:7b" }
]
}
}
}
apiKey 是必需的,但 Ollama 会忽略它,所以任何值都可以。
兼容性问题
某些 OpenAI 兼容服务器不理解推理模型使用的 developer 角色。对于这些 Provider,设置 compat.supportsDeveloperRole 为 false,让 pi 改为发送 system 消息。如果服务器也不支持 reasoning_effort,同时设置 compat.supportsReasoningEffort 为 false。
{
"providers": {
"ollama": {
"baseUrl": "http://localhost:11434/v1",
"api": "openai-completions",
"apiKey": "ollama",
"compat": {
"supportsDeveloperRole": false,
"supportsReasoningEffort": false
},
"models": [
{
"id": "gpt-oss:20b",
"reasoning": true
}
]
}
}
}
可以在 Provider 级别设置 compat(应用于所有模型),或在模型级别设置(覆盖特定模型)。
支持的 API
| API | 说明 |
|---|---|
openai-completions | OpenAI Completions API |
openai-responses | OpenAI Responses API |
anthropic | Anthropic API |
google | Google AI API |
openai-chat | OpenAI Chat API |
完整示例
{
"providers": {
"ollama": {
"baseUrl": "http://localhost:11434/v1",
"api": "openai-completions",
"apiKey": "ollama",
"models": [
{
"id": "llama3.1:8b",
"name": "Llama 3.1 8B (本地)",
"reasoning": false,
"input": ["text"],
"output": ["text"]
}
]
}
}
}
覆盖内置 Provider
可以覆盖内置 Provider 的配置:
{
"providers": {
"openai": {
"apiKey": "新的API密钥"
}
}
}
模型配置选项
| 选项 | 说明 |
|---|---|
id | 模型 ID |
name | 显示名称 |
reasoning | 是否支持推理 |
input | 支持的输入类型(text、image) |
output | 支持的输出类型 |