OpenCode 配置 Base URL 后报 model_not_found?用 opencode.json 和 /v1/models 修正模型 ID
如果 OpenCode 已经能启动自定义 Provider 也出现在列表里但第一次请求返回model_not_found先不要继续换 Key。这个错误通常说明请求已经到达兼容接口只是配置里的模型 ID 不在服务端模型目录中如果同时把 Base URL 写成了带/v1的地址又在客户端字段里重复拼接/v1还会叠加一个路径 404。本文用 OpenCode CLI 1.18.4 和一个不连接外网的 OpenAI-compatible 本地夹具复现完整链路先读取/v1/models再把返回的精确 ID 写入opencode.json最后用一次流式请求验证。夹具只使用合成模型名和合成 Key不代表任何线上服务的兼容性结论。先给可复制结论适用环境• OpenCode CLI 1.18.4其他版本先用opencode --version确认配置语法是否一致。• macOS、Linux 或 WSL 终端本文命令使用 POSIX shell。• 一个提供 OpenAI-compatible/v1/models和/v1/chat/completions的接口。• 项目根目录下的opencode.json。本文没有把真实密钥写入文件示例中的synthetic-fixture-only只用于本地夹具。最小配置先把baseURL写到版本路径/v1不要再在模型或请求路径中重复拼接/v1。models中的键必须与服务端返回的data[].id完全相同大小写、连字符和版本后缀都不能凭感觉改写。{ $schema: https://opencode.ai/config.json, provider: { fixture: { npm: ai-sdk/openai-compatible, name: Local OpenAI-compatible fixture, options: { baseURL: http://127.0.0.1:18275/v1, apiKey: synthetic-fixture-only }, models: { fixture-correct: {} } } } }真实环境中把baseURL换成服务端公布的兼容 API 根地址把认证信息交给安全的凭据管理方式不要把真实 Key 粘贴到文章、仓库或终端历史。配置保存后先执行模型目录检查opencode --version curl -sS http://127.0.0.1:18275/v1/models opencode models fixture本次的成功信号是opencode --version输出1.18.4curl返回模型 IDfixture-correct而opencode models fixture输出fixture/fixture-correct。最后执行一次最小请求opencode run --pure --model fixture/fixture-correct \ Reply with exactly OPENCODE_LOCAL_FIXTURE_OK.终端输出OPENCODE_LOCAL_FIXTURE_OK并且夹具日志显示请求路径为POST /v1/chat/completions、模型为fixture-correct才算这条配置链路跑通。一、先确认模型 ID不要手写显示名称OpenCode 配置里的models是客户端可选择的模型集合。它不是“模型推荐列表”更不是可以把产品页面上的展示名随便复制过来的备注。兼容服务最终按请求体中的model字段路由因此最可靠的顺序是1. 读取当前端点的/v1/models。2. 找到响应中的data[].id。3. 原样复制 ID 到opencode.json的models对象。4. 用opencode models provider检查 OpenCode 能否看到相同的provider/model。5. 再执行最小对话请求。本地夹具返回的目录如下{ object: list, data: [ { id: fixture-correct, object: model, owned_by: local-fixture } ] }因此正确配置是fixture-correct而不是local-fixture、fixture或一个从其他服务复制来的模型名。服务端返回的owned_by只是元数据不能代替id。如果接口需要额外的请求头或特定的认证格式也要先看它的 OpenAI-compatible 说明。/v1/models能返回 200只能证明模型目录这个请求可达它不能证明该模型支持 OpenCode 的所有能力更不能证明工具调用、长上下文或生产稳定性。二、区分两类 4041. 路径 404Base URL 被重复拼接如果配置已经是https://example.invalid/v1客户端通常会在此基础上请求/models或/chat/completions。不要再把配置改成https://example.invalid/v1/v1本次夹具的对照结果是GET /v1/models - 200 GET /v1/v1/models - 404 not_found这时错误重点是路径拼接不是模型不存在。可以先用 curl 验证根路径BASE_URLhttp://127.0.0.1:18275/v1 curl -sS $BASE_URL/models curl -sS ${BASE_URL%/v1}/v1/v1/models把返回 200 的那条路径固定下来再回到 OpenCode 配置。不要为了“试试看”同时改 Base URL、模型 ID 和认证信息否则一次请求失败后无法判断到底是哪一层变化产生了影响。2. 模型 404路径正确但 ID 不在目录用独立的错误配置把模型写成fixture-wrong再运行同一个最小请求OPENCODE_CONFIGopencode-wrong.json \ opencode run --pure --model fixture/fixture-wrong \ Reply with exactly WRONG_MODEL_SHOULD_FAIL.本次实际输出为 build · fixture-wrong Error: model_not_found: fixture-wrong夹具日志同时记录到两次POST /v1/chat/completions模型字段都是fixture-wrong说明 OpenCode 确实把这个 ID 发给了接口。这里不应该继续重试同一个模型也不应该把错误模型名改成一个“看起来更像”的名称重新读取/v1/models才是修复动作。修正为fixture-correct后实际结果为 build · fixture-correct OPENCODE_LOCAL_FIXTURE_OK状态码和成功文本是两层信号HTTP 200 只能说明请求返回成功正文中的固定标记才证明当前测试提示词已经得到响应。线上服务应把固定标记替换成无敏感信息的短句并保留请求时间、路径、模型和错误码方便回查。三、按字段顺序排查 OpenCode第 1 步确认实际读取的配置在项目根目录执行pwd ls -la opencode.json opencode --version常见误区是把配置放在编辑器打开的目录却从另一个目录启动 OpenCode或者复制了一个旧的opencode.json以为当前会话已经使用了新内容。先确认文件路径和当前工作目录再检查 JSON 是否能被读取。第 2 步只改一个字段做验证建议按以下顺序锁定变量1. 固定 Provider ID例如fixture。2. 固定npm适配器为ai-sdk/openai-compatible。3. 固定baseURL只保留一个/v1。4. 从/v1/models复制真实id。5. 最后再替换认证信息。如果第一步就返回 401说明认证层还没有通过如果返回404 not_found优先看路径如果返回404 model_not_found优先看model字段如果得到 200 但 OpenCode 仍无输出再检查流式事件格式和客户端日志。不要把这些情况都归结为“Key 失效”。第 3 步让 OpenCode 输出它可选择的模型配置中保留真实模型 ID 后运行opencode models fixture本次显示为fixture/fixture-correct命令能列出模型说明配置解析和 Provider 识别已经通过但它仍不是请求成功的替代品所以必须继续执行一次opencode run。如果这里没有任何模型检查provider名称、models对象是否位于正确层级以及当前目录是否真的有这份配置。四、最小失败矩阵现象 优先检查 不能直接下的结论--- --- ---Provider not found当前目录、Provider ID、配置文件是否被读取 不能说端点不可用/v1/v1/models返回 404baseURL是否已经含/v1不能说模型不存在model_not_found/v1/models的data[].id与配置是否完全一致 不能说 Key 失效401/Unauthorized 认证字段、Key 归属与权限 不能通过换模型修复/v1/models为 200、对话仍失败 请求体、流式事件和模型能力 不能说已兼容所有工作流OpenCode 输出成功但平台无记录 请求是否到达预期端点、使用的 Key 归属 不能把本地成功归因到另一个账号五、实测边界与安全说明本次验证只覆盖 OpenCode 1.18.4、ai-sdk/openai-compatible、本地/v1/models、流式/v1/chat/completions、一个错误模型和一个正确模型。夹具的响应是我自己生成的模型名、Key 和成功标记都不是线上凭据或真实用户数据。如果你要把同一套方法迁移到线上接口至少重新确认四件事服务端实际 Base URL、认证方式、当日/v1/models返回的精确 ID以及最小对话请求的成功响应。不要把本文的fixture-correct当作其他服务的模型名也不要根据一次 200 响应承诺稳定性、速度或所有工具能力。总结OpenCode 遇到model_not_found时最短的正确路径不是盲目换 Key而是固定配置读取位置确认 Base URL 只包含一个/v1读取/v1/models把data[].id原样写入opencode.json再用一次最小流式请求验证。路径 404、模型 404 和认证 401 要分层处理只有看见明确的成功信号才算完成配置。

相关新闻

F429-HAL-SPI5读取W25Q256(2026/7/25)

F429-HAL-SPI5读取W25Q256(2026/7/25)

目录 一、SPI Init 字段逐个解析 ① Instance — 用哪个 SPI 硬件 ② BaudRatePrescaler — SPI 时钟 APB 时钟 / 分频数 ③ Direction — 通信方向 ④⑤ CLKPolarity CLKPhase — SPI 模式 ⑥⑦ CRCCalculation CRCPolynomial ⑧ DataSize — 数据位宽 ⑨ FirstBit…

2026/7/26 0:27:41 阅读更多 →
5分钟掌握喜马拉雅音频下载神器:xmly-downloader-qt5终极指南

5分钟掌握喜马拉雅音频下载神器:xmly-downloader-qt5终极指南

5分钟掌握喜马拉雅音频下载神器:xmly-downloader-qt5终极指南 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 还在为喜…

2026/7/26 0:27:41 阅读更多 →
大麦网自动抢票脚本终极实战指南:Python API直连技术深度解析

大麦网自动抢票脚本终极实战指南:Python API直连技术深度解析

大麦网自动抢票脚本终极实战指南:Python API直连技术深度解析 【免费下载链接】Automatic_ticket_purchase 大麦网抢票脚本 项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase 在热门演出票务秒光的时代,手动抢票成功…

2026/7/26 0:26:40 阅读更多 →

最新新闻

终极音乐格式转换指南:如何用Unlock-Music解锁主流平台加密文件

终极音乐格式转换指南:如何用Unlock-Music解锁主流平台加密文件

终极音乐格式转换指南:如何用Unlock-Music解锁主流平台加密文件 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地…

2026/7/26 0:34:44 阅读更多 →
从被动响应到主动自愈:IT运维智能体自主诊断与修复平台建设探讨

从被动响应到主动自愈:IT运维智能体自主诊断与修复平台建设探讨

从被动响应到主动自愈:IT运维智能体自主诊断与修复平台建设探讨 引言:运维的困境与进化在传统IT运维中,运维工程师常被称为“救火队员”,每天疲于应对告警、排查故障、手动修复。这种被动响应模式不仅效率低下,还容易因…

2026/7/26 0:34:44 阅读更多 →
从原型到生产:构建企业级 AI Agent 与 RAG 应用的工程化实践

从原型到生产:构建企业级 AI Agent 与 RAG 应用的工程化实践

从原型到生产:构建企业级 AI Agent 与 RAG 应用的工程化实践 在当前的技术浪潮中,AI Agent 和检索增强生成(RAG)应用已经从概念验证阶段迈向了实际的生产环境部署。然而,许多开发者仍然面临着从"能跑通的 Noteboo…

2026/7/26 0:32:43 阅读更多 →
【飞书AI OKR辅助实战指南】:20年HRD亲授,3步打通目标对齐与执行闭环

【飞书AI OKR辅助实战指南】:20年HRD亲授,3步打通目标对齐与执行闭环

更多请点击: https://intelliparadigm.com 第一章:【飞书AI OKR辅助实战指南】:20年HRD亲授,3步打通目标对齐与执行闭环 飞书AI OKR并非简单工具叠加,而是将目标管理从“填写表格”升维为“动态协同引擎”。一位服务过…

2026/7/26 0:31:42 阅读更多 →
华硕笔记本终极控制工具:如何用G-Helper取代臃肿的Armoury Crate

华硕笔记本终极控制工具:如何用G-Helper取代臃肿的Armoury Crate

华硕笔记本终极控制工具:如何用G-Helper取代臃肿的Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Z…

2026/7/26 0:31:42 阅读更多 →
为什么你的AI产品市占率停滞在2.1%?——基于137家客户LTV与NPS的归因分析

为什么你的AI产品市占率停滞在2.1%?——基于137家客户LTV与NPS的归因分析

更多请点击: https://kaifayun.com 第一章:为什么你的AI产品市占率停滞在2.1%?——基于137家客户LTV与NPS的归因分析 当137家付费客户的平均NPS仅为18.3,而LTV中位数仅达$1,427(低于行业基准$2,960)&#…

2026/7/26 0:31:42 阅读更多 →

日新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

月新闻