Bug:opencode_go provider 对所有模型强制走 chat-completions,导致 responses-only 的 muse-spark 稳定 500
版本: PI-Desktop 0.14.1(Windows)
Provider: OpenCode Go(https://opencode.ai/zen/go/v1)
出问题的模型: muse-spark-1.3-contributor(1.2 同样)
现象
新会话第一句话,思考力度轻度/中度,PI-Desktop 报错:
PROVIDER_ERROR —— 500 Internal server error
同配置下其他 opencode-go 模型(deepseek-v4-flash、mimo-v2.5、glm-5.3-flash 等)都正常。重试、换档位都没用。
根因(来自 app.asar 反编译)
apiBindingForStyle() 把整个 opencode_go 风格写死成 completions:
case OPENCODE_GO_API_STYLE: // opencode_go
return { api: "openai-completions", adapter: openAICompletionsApi, ... };
而 buildProviderModel() 用 provider 风格覆盖掉模型目录的标注:
return { ...catalogModel, api: binding.api, ... } // 目录里明明写着 openai-responses
于是目录里标着 api 为 openai-responses 的 muse-spark-1.3-contributor,实际被发往 POST /chat/completions。
网关实测(同 key、同 x-opencode-session / x-opencode-client / UA 请求头)
- POST /zen/go/v1/chat/completions + muse-spark-1.3-contributor => 500 Internal server error,和 App 里报错逐字节一致
- POST /zen/go/v1/responses + muse-spark-1.3-contributor => 200(纯文本、流式、工具调用、strict 工具、图片输入、json_schema、缓存键全都正常)
- completions + deepseek-v4-flash / mimo-v2.5 => 200
结论:responses-only 的模型被推到 completions 接口,网关直接 500。opencode-go 目录里恰好只有 muse-spark 1.2/1.3 contributor 是 responses-only,所以只坏它俩。
期望行为
按模型目录的 api 字段(或支持模型级覆盖)选择 adapter:opencode_go 风格 provider 下的 muse-spark 也走 openAIResponsesApi。
临时 workaround
另建一个 apiStyle 为 responses 的自定义 provider,同 baseURL/key,只带 muse-spark-1.3-contributor(通过 pi models.json 导入扫描接入),实测可用。
Bug:opencode_go provider 对所有模型强制走 chat-completions,导致 responses-only 的 muse-spark 稳定 500
版本: PI-Desktop 0.14.1(Windows)
Provider: OpenCode Go(https://opencode.ai/zen/go/v1)
出问题的模型: muse-spark-1.3-contributor(1.2 同样)
现象
新会话第一句话,思考力度轻度/中度,PI-Desktop 报错:
同配置下其他 opencode-go 模型(deepseek-v4-flash、mimo-v2.5、glm-5.3-flash 等)都正常。重试、换档位都没用。
根因(来自 app.asar 反编译)
apiBindingForStyle() 把整个 opencode_go 风格写死成 completions:
而 buildProviderModel() 用 provider 风格覆盖掉模型目录的标注:
于是目录里标着 api 为 openai-responses 的 muse-spark-1.3-contributor,实际被发往 POST /chat/completions。
网关实测(同 key、同 x-opencode-session / x-opencode-client / UA 请求头)
结论:responses-only 的模型被推到 completions 接口,网关直接 500。opencode-go 目录里恰好只有 muse-spark 1.2/1.3 contributor 是 responses-only,所以只坏它俩。
期望行为
按模型目录的 api 字段(或支持模型级覆盖)选择 adapter:opencode_go 风格 provider 下的 muse-spark 也走 openAIResponsesApi。
临时 workaround
另建一个 apiStyle 为 responses 的自定义 provider,同 baseURL/key,只带 muse-spark-1.3-contributor(通过 pi models.json 导入扫描接入),实测可用。