Skip to main content

自定义模型

通过 ~/.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.supportsDeveloperRolefalse,让 pi 改为发送 system 消息。如果服务器也不支持 reasoning_effort,同时设置 compat.supportsReasoningEffortfalse

{
"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-completionsOpenAI Completions API
openai-responsesOpenAI Responses API
anthropicAnthropic API
googleGoogle AI API
openai-chatOpenAI 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支持的输出类型

翻译自 pi-coding-agent/docs/models.md