news 2026/8/24 1:11:53

pi-mono 自定义模型实战:一份 models.json 接上你的本地模型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
pi-mono 自定义模型实战:一份 models.json 接上你的本地模型

pi-mono 自定义模型实战:一份 models.json 接上你的本地模型

【免费下载链接】piAI agent toolkit: unified LLM API, agent loop, TUI, coding agent CLI项目地址: https://gitcode.com/GitHub_Trending/pi/pi

本地 Ollama 模型已经跑起来了,怎么把它接进 pi-mono?答案就一个文件:~/.pi/agent/models.json。它就像 pi-mono 的"模型通讯录"——每个提供商的地址、敲门方式(API 类型)、暗号(apiKey)都记在这里。改完文件重新打开/model就会重新加载,不用重启。

最小配置跑通本地模型

把下面这段存到~/.pi/agent/models.json,Ollama 里的模型立刻就能被 pi 找到。

{ "providers": { "ollama": { "baseUrl": "http://localhost:11434/v1", "api": "openai-completions", "apiKey": "ollama", "models": [ { "id": "llama3.1:8b" }, { "id": "qwen2.5-coder:7b" } ] } } }

字段说明:

  • baseUrl:接口地址。告诉 pi 去哪敲门,本地服务就是本地端口。
  • api:敲门方式,决定请求的报文格式。四种可选值见下表。
  • apiKey:暗号。Ollama 不校验它,但 pi 要求这个字段存在,随便填个占位值即可。
  • models:要暴露的模型列表。每个模型最简只要一个id,也就是发给服务端的模型标识。
api取值说明
openai-completionsChat Completions 格式,兼容面最广
openai-responsesOpenAI 的 Responses 格式
anthropic-messagesAnthropic Messages 格式
google-generative-aiGoogle Generative AI 格式

api写在 provider 层对全部模型生效,写在 model 层可以单独覆盖。

一行 baseUrl 覆盖内置提供商

想把内置提供商整体走自己的代理,只写一行就够了。

{ "providers": { "anthropic": { "baseUrl": "https://my-proxy.example.com/v1" } } }

baseUrl的作用是把该提供商的所有请求改走你给的地址;内置模型列表和原有鉴权方式继续生效,不用重新定义任何模型。

如果还想往这个提供商里塞几个自定义模型,加一个models数组即可。pi 会按id合并:新 id 是追加,撞了内置 id 就替换。

用 compat 适配半兼容 OpenAI 的服务

接口号称 OpenAI 兼容、请求却被拒时,问题通常出在个别字段的差异上,用compat关掉即可。

{ "providers": { "vllm": { "baseUrl": "http://localhost:8000/v1", "api": "openai-completions", "apiKey": "vllm", "compat": { "supportsUsageInStreaming": false, "maxTokensField": "max_tokens" }, "models": [ { "id": "qwen2.5-coder" } ] } } }

compat的作用是把 pi 的请求改写成你的服务端能接受的格式;provider 层的设置对全部模型生效,model 层可再单独覆盖。

两个常用开关:supportsUsageInStreaming告诉 pi 服务端不支持stream_options,流式里就不再请求用量信息;maxTokensField控制长度字段用max_completion_tokens还是max_tokens。推理模型报developer角色不认识时,再把supportsDeveloperRolesupportsReasoningEffort设成false,pi 会改用system消息。Ollama、vLLM、SGLang 这类服务最常踩这几个坑。

apiKey 的 3 种写法

apiKeyheaders都支持下面三种格式:

  • "!security find-generic-password -ws 'anthropic'":以!开头会执行这条命令,用输出当密钥。适合密钥锁在钥匙串、密码管理器里,不落在配置文件中。
  • "$ANTHROPIC_API_KEY":取同名环境变量的值。适合密钥已经通过 CI 或 shell 环境注入的场景。
  • "sk-...":字面值原样使用。适合临时调试,别提交到代码库。

验证:从模型列表到一次真实调用

打开/model,新配置会立刻生效,你的模型出现在选择列表里。

代码里同样可以按providerid找到刚配的模型:

const model = modelRuntime.find("ollama", "llama3.1:8b"); await session.setModel(model); await session.prompt("介绍一下你自己");

找到并切换成功,说明从配置到调用的整条链路已经通了。

接下来可以做什么

  • 完整字段、合并规则、思考级别映射,见模型文档packages/coding-agent/docs/models.md
  • 想在 GPU 机器上自动拉起 vLLM,可以看 部署脚本 目录,里面有model_run.shpod_setup.sh等工具。
  • 模型接进来之后,试试给它加reasoning: true或调整contextWindow,行为会立刻不同。

【免费下载链接】piAI agent toolkit: unified LLM API, agent loop, TUI, coding agent CLI项目地址: https://gitcode.com/GitHub_Trending/pi/pi

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 1:10:09

量子-经典神经网络在SAR卫星物理层认证中的原理与实践

在卫星通信和遥感领域,合成孔径雷达(SAR)卫星因其全天时、全天候的观测能力,已成为对地观测和军事侦察的关键资产。然而,随着卫星数量的激增和通信链路的开放,针对SAR卫星的欺骗、干扰和非法接入等安全威胁…

作者头像 李华
网站建设 2026/8/24 1:08:08

从重复率31.6%、AIGC率48.2%到双8%:论文实证段双降全流程攻略

同一篇论文的结果分析段,有人改到凌晨两点:重复率从31%降到18%,但AIGC率从42%升到61%;有人只花了二十分钟,重复率8.3%、AIGC率7.9%,专业术语一个没动。差异不在努力程度,而在改法——前者是对着…

作者头像 李华
网站建设 2026/8/23 23:54:40

嵌入式:深刻理解UART与USART串口通信的波特率与帧格式

前言 文章合集: 嵌入式系列https://blog.csdn.net/2401_88433210/category_13196870.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId13196870&sharereferPC&sharesource2401_88433210&sharefromfrom_link 文章以STM32F103ZET6芯片为例…

作者头像 李华
网站建设 2026/8/23 23:39:59

大学生用 AI 学编程的正确姿势:从问答案到做验证

大学生用 AI 学编程的正确姿势:从问答案到做验证 AI 可以帮助大学生理解概念、生成示例、定位错误,但“得到一段能运行的代码”不等于“学会了编程”。真正可靠的学习闭环应当是: 提出问题 → 获取假设 → 动手实现 → 设计验证 → 分析结果…

作者头像 李华