Skip to content

[Bug] opencode_go provider 强制走 completions,导致 muse-spark 稳定 500 #105

Description

@MrUncleXiang

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 导入扫描接入),实测可用。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: providersModel providers, APIs, authentication, and request handling

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions