前言¶
DeepSeek Harness (DSH) 的核心设计理念是「一切皆插件」。在构建智能体时,会话内容通常仅限于文本。当需要让智能体直接生成图片或视频时,开发者往往需要在代码中额外集成图像/视频 API。这增加了开发复杂度,也破坏了 DSH 统一的插件架构。
dsh-media-gen 插件解决了这个问题。它将 OpenAI 兼容的图像与视频生成能力直接集成到 DSH 会话中,让智能体能够像调用其他工具一样生成媒体内容。
插件简介¶
dsh-media-gen 是一个 DSH 插件,用于在 DSH 会话中生成图片和视频。
它复用 DSH 已配置的模型设置(Provider / Model / API Key),不依赖浏览器端的 Key,确保安全。插件在设置页提供了一个独立的「媒体生成」菜单,并维护了持久索引,重启后历史会话中的媒体链接依然可用。
核心功能¶
该插件提供以下核心能力:
- 生成图片和视频:支持文生图、图生图(图片编辑)以及视频生成。
- OpenAI 兼容接口:调用标准的
/images/generations、/images/edits以及/videos接口。 - 复用 DSH 配置:严格使用「设置 → 媒体生成」里配置的 Provider 和 Model,不支持在工具调用中临时切换模型。
- 独立设置菜单:在 DSH 设置页单独开辟区域,分别配置文生图、图生图、视频生成三种模式的模型。
- 工具集:提供
media_list_providers(列出可用 Provider)、media_gen_image(文生图)、media_edit_image(图生图/编辑)、media_gen_video(视频生成)等工具。 - 文件持久化:生成的文件保存到
<当前工作区>/media_gen目录,并在会话中返回预览链接。 - 持久索引:插件维护
~/.dsh/storages/dsh-media-gen-index.json,重启后历史会话里的图片/视频链接仍可访问。
安装与配置¶
安装插件需要使用 DSH 的插件管理命令。
dsh plugin --profile web add github:ant404/dsh-media-gen
安装完成后,重启或刷新 DSH。进入 设置 → 媒体生成 菜单,为以下三种模式分别配置 Provider(从 DSH 的 settings.yaml → llm-pi-ai.providers 读取)和 Model:
- 文生图模型
- 图生图模型
- 视频生成模型
保存配置后即可在会话中使用。
使用方法¶
基本命令¶
插件提供了以下工具,在会话中直接调用即可:
media_list_providers:列出当前 DSH 可用的 OpenAI 兼容 Provider 及其模型。media_gen_image:执行文生图(请求/images/generations)。media_edit_image:执行图生图或图片编辑(请求/images/edits),支持传入本地文件路径或 http(s) URL。media_gen_video:执行视频生成(请求/videos或/videos/generations),自动处理异步任务轮询。
典型示例¶
在会话中直接输入提示词:
- 文生图:
生成一张 16:9 的雪山日出。 - 图生图:
把这张图变成水彩画风格:C:\path\to\input.png - 视频生成:
生成一段 5 秒的赛博朋克城市夜景视频。
交互操作¶
- 图片预览:生成的图片在会话中以小图显示(最大约 280px)。左键点击图片可放大查看,点击背景或按
Esc关闭。 - 引用路径:右键点击图片,在弹出菜单中选择「引用」,会将该图片的本地文件路径插入到对话输入框,方便后续进行图生图或图生视频操作。
- 视频播放:生成的视频结果会在聊天中以内嵌
<video>标签显示,并附带下载链接。
安全与注意事项¶
- 安全隔离:Provider 配置直接从 DSH 的
settings.yaml读取,API Key 不暴露给浏览器。所有配置接口和原始文件访问(/media-gen/raw/*)均限制为 Loopback(127.0.0.1/localhost)。 - 模型固定:所有媒体生成工具必须使用设置页中配置的模型,不支持在工具参数中临时修改 Provider 或 Model。
- 视频兼容性:视频接口兼容性由插件处理。默认请求
/videos,若返回 404/405 则自动重试/videos/generations。对于异步任务(如 Agnes 风格),插件会自动轮询直到完成。 - 开发审查:插件基于 MIT 许可证开源。安装前请检查源码以确保符合你的使用环境要求。
结语¶
dsh-media-gen 将原本独立的媒体生成能力无缝集成到 DSH 生态中,为智能体开发者提供了标准化的工具入口。通过复用统一的配置体系和持久化存储,它降低了多模态应用的接入门槛。