dsh-llm-opencode-go: OpenCode Go 模型提供商

前言

OpenCode Go 需要代码来处理共享 pi-ai 适配器未提供的两个关键功能:会话身份和实时模型目录。此插件通过 opencode-go 路由提供服务,该路由为每个模型处理 Wire 协议,并将会话 ID 映射到头中,同时刷新模型列表以包含新发布的模型。

核心功能

该插件作为 DeepSeek Harness 中的第一级 OpenCode Go 模型提供商。它实现了以下功能:

  • 会话身份: 将 GenerateOptions.sessionId 映射到 x-opencode-session 和 x-deepseek-harness-session-id 头中,以满足 Go 客户端矩阵对稳定会话 ID 的要求。
  • 实时目录: 从 {apiRoot}/v1/models 刷新模型列表,合并新 ID 并丰富模型信息,使今天发布的模型立即可选。
  • Web 设置卡片: 在“设置 → 模型”页面底部提供一个卡片,用于管理 API 密钥、端点和刷新间隔。

安装与启用

此插件需要 DeepSeek Harness 0.2.0-rc.2 或更高版本。GitHub 安装不需要构建步骤。

  1. 执行安装命令:
    dsh plugin --profile web add github:scavanger2221/dsh-llm-opencode-go#v0.1.4
  1. 启动 Web 界面:
    dsh web

若要从本地检出安装,请运行:

git clone https://github.com/scavanger2221/dsh-llm-opencode-go
cd dsh-llm-opencode-go
./scripts/install-local.sh
dsh web

配置与使用

配置通过 Web 界面的“设置 → 模型”卡片进行。API 密钥通过 Harness 凭据服务存储在 OPENCODE_GO_API_KEY 下。

  • 编辑端点与刷新: 在卡片中直接编辑 API 根目录和刷新间隔(默认为 21600000 毫秒)。
  • 模型覆盖: 编辑单个模型时,每个字段默认为“继承”。例如,将上下文窗口更改为 256K 不会改变协议或推理标志。
  • 禁用/启用模型: 禁用会将模型从目录中移除,但保留其描述。刷新目录不会复活已禁用的模型。
  • 输入限制: 如果模型未列出图像,则拒绝包含图像的提示。

注意事项

  • 配置文件变更: 在版本 0.1.7 中,不存在 settings.yaml 文件可编辑。配置通过 cordis.patch.yml 中的 config: 覆盖在配置文件中持久化。
  • 强制输入: 插件强制执行输入类型检查,如果模型未列出图像,则拒绝包含图像的请求。
  • 依赖版本: 确保安装的 DeepSeek Harness 版本为 0.2.0-rc.2 或更高。

此插件为 OpenCode Go 提供了完整的会话管理和实时模型发现能力,适合需要稳定对话路由和紧跟模型更新的场景。更多细节与源码请访问 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜