当前位置: 首页 > news >正文

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),仅供参考

http://www.cnnetsun.cn/news/4180156.html

相关文章:

  • G-Helper新手指南:免费轻量华硕笔记本控制工具,如何5分钟替代Armoury Crate
  • 量子-经典神经网络在SAR卫星物理层认证中的原理与实践
  • 从重复率31.6%、AIGC率48.2%到双8%:论文实证段双降全流程攻略
  • 嵌入式:深刻理解UART与USART串口通信的波特率与帧格式
  • 改一个叶子要重渲染 1 万次,Signals 只跑 1 次:细粒度响应式的实测复盘
  • 大学生用 AI 学编程的正确姿势:从问答案到做验证
  • 2026年5款AI写网文剧本工具实测横评:谁才是终极消痕助手?
  • Multimodal-Sentiment-Analysis 完整指南:BERT+ResNet50 五种融合方法,多模态情感分析快速上手
  • 真理不需要验证:KTS理论对西方学术范式动机污染的彻底诊断
  • 探秘 Python 枚举类型:从基础到实战的深度指南
  • Cursor版GitHub上线后再升级,/goal转正、子Agent独立,重塑软件工程生产线!
  • 【AI大模型进阶】写一个“法律条文检索助手”,体验RAG实战威力
  • 拓扑排序详解(Topological Sort)
  • 无锡芯健细胞:免疫细胞存储适配人群全解析
  • 雨晨 Windows 11 IoT 企业版 26H1 轻装 28120.2760
  • 工信部三级智能制造评审通关背后:一天,一个项目组,一家灯饰厂
  • 德系车维修质保体系的技术支撑分析:从配件追溯到施工标准化
  • python的运筹学工业场景模拟第九十二篇:金属型材下料,多种型材原料,多规格零件,整数规划,最小原料消耗,统计边角料。
  • 大厂Java面试实录:从Java SE到微服务,电商场景下的技术拷问与谢飞机翻车合集
  • 科颜氏白泥同源配方OEM代工厂揭秘:比价输在起跑线的老板,都忽略了泥膜料体的这三道隐形门槛
  • 福意联血液运输冷藏箱的优势特点详解
  • 关于“真理硬度”与KTS体系绝对自明性的系统性陈述
  • 让大模型思考,让小模型执行:在 Elastic Workflows 中拆分 LLM 成本
  • 技术面试黄金技巧:从STAR法则到薪资谈判
  • Java面试:从八股文到实战的演变与准备策略
  • Ceres损失函数选型指南:从原理到实战的鲁棒优化策略
  • 齿轮参数化设计:从建模到校核的工程实践指南
  • CANdelaStudio入门指南:从零创建汽车诊断数据库
  • Gradle配置全解析:从核心文件到性能优化与实战避坑指南
  • VSCode调试中No such file or directory错误:彻底解决相对路径与工作目录问题