🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

二创工坊 gothepharnayadlsos-cyber/dsh-fanwork

DeepSeek Harness
gothepharnayadlsos-cyber4 天前有提交已提供中文文档扫描:未发现敏感能力

先审原文逻辑风险,再按人工裁决并行生成可复核草稿

29.8/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add gothepharnayadlsos-cyber/dsh-fanwork
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 4 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 4 处,展示前 4 条)
  • 发起网络请求
    lib/remote-llm.js:32
    const res = await fetch(endpoint, {
  • 发起网络请求
    lib/web/app.js:57
    const res = await fetch(`/fanwork${path}`, {
  • 发起网络请求
    lib/web/app.js:545
    const res = await fetch(`/fanwork/api/projects/${p.id}/run`, {
  • 写入剪贴板
    lib/web/app.js:858
    navigator.clipboard?.writeText(path).then(() => toast('路径已复制'), () => toast('复制失败,请手动选中', true))
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

改写前先做逻辑风险审查:审计原文、逐条定改法、并行生成多份草稿,导出时附每份草稿的审计报告。一个 DeepSeek Harness 插件。

README

由 DeepSeek 最新模型翻译生成
二创工坊 · dsh-fanwork 先给原文做逻辑体检,再在人的裁决下生成二创 —— 每一稿都自带风险报告。 一个 DeepSeek Harness 插件。它把「让模型写同人」变成一条可复核的流水线:结构摘要 → 逻辑风险报告 → 人工裁决 → 并行草稿 → 逐稿审核 → 导出。自带 OpenAI 兼容的 API Key;插件不附带模型,也不带额度。 首次使用时的 API 配置页 界面在 http://127.0.0.1:<DSH 端口>/fanwork,或在 DSH 里输入 /fanwork 取当前地址。 目录 - 它解决什么问题 - 安装 - 开始使用 - 工作流 - 配置 - 隐私与密钥 - 常见问题 - HTTP 接口 - 开发 - 给插件作者的 DSH 踩坑记录 它解决什么问题 同人作者真正贵的不是「写」,而是「改写得不崩」:设定冲突、人物 OOC、伏笔失收,重写一遍才发现哪里不自洽。 二创工坊把这件事拆成可裁决的步骤——每条风险都带原文引证和修复选项,用户的每次选择进入决策台账,再作为约束注入生成;每篇候选稿都由独立提示词的「审稿人」给出六维评分与问题清单。 安装 方式 A:从插件市场安装(推荐) 在 DeepSeek Harness 里打开 设置 → 插件,搜索 dsh-fanwork,点安装,按提示重启。
展开完整文档(README 剩余 1 节)
二创工坊 · dsh-fanwork

先给原文做逻辑体检,再在人的裁决下生成二创 —— 每一稿都自带风险报告。

一个 DeepSeek Harness 插件。它把「让模型写同人」变成一条可复核的流水线:结构摘要 → 逻辑风险报告 → 人工裁决 → 并行草稿 → 逐稿审核 → 导出。自带 OpenAI 兼容的 API Key;插件不附带模型,也不带额度。

首次使用时的 API 配置页

界面在 http://127.0.0.1:<DSH 端口>/fanwork,或在 DSH 里输入 /fanwork 取当前地址。

目录

- 它解决什么问题
- 安装
- 开始使用
- 工作流
- 配置
- 隐私与密钥
- 常见问题
- HTTP 接口
- 开发
- 给插件作者的 DSH 踩坑记录

它解决什么问题

同人作者真正贵的不是「写」,而是「改写得不崩」:设定冲突、人物 OOC、伏笔失收,重写一遍才发现哪里不自洽。
二创工坊把这件事拆成可裁决的步骤——每条风险都带原文引证和修复选项,用户的每次选择进入决策台账,再作为约束注入生成;每篇候选稿都由独立提示词的「审稿人」给出六维评分与问题清单。

安装

方式 A:从插件市场安装(推荐)

在 DeepSeek Harness 里打开 设置 → 插件,搜索 dsh-fanwork,点安装,按提示重启。
装好后 /fanwork 路由自动挂载,不需要改任何配置文件。

方式 B:命令行

dsh plugin --profile <你的 profile> add dsh-fanwork

装完重启 DSH。

方式 C:本地开发(link 到源码目录)

node dsh-fanwork/scripts/install-profile.mjs desktop

脚本会在 profile 的 node_modules 下建 junction,并把 dsh-fanwork 写进 dependencies 与 dsh.profile.bundles(原 package.json 会备份)。之后重启 DSH。

卸载

dsh plugin --profile <profile> remove dsh-fanwork
本地 link 装的:node dsh-fanwork/scripts/install-profile.mjs desktop --uninstall

开始使用

需要准备: 一个 OpenAI 兼容的接口地址 + 你自己的 API Key。
插件不内置模型、不带额度,未配置时所有生成类接口直接返回 403 NOT_CONFIGURED。

1. 打开 http://127.0.0.1:<DSH 端口>/fanwork(端口每次启动可能变化,用 /fanwork 命令取当前地址)。
2. 第 0 步 · 配置 API:填接口地址(如 https://api.deepseek.com)、模型名(如 deepseek-chat)、你的 Key,点「保存并开始」。页面上有「测试连接」可以先验证一次。
3. 导入原文(三种任选):拖 .txt / .md 进虚线框;点「选择文件」;或填本地路径让插件在本机读(支持 ~,≤ 4 MB)——文件不进浏览器、不上传。
4. 填创作要求(方向、篇幅、视角、风格、禁忌、补充要求),点「开始体检」。
5. 逐条裁决风险:选一个修复方案,或展开「更多要求」直接写你想怎么改。
6. 点「应用裁决并生成」,并行出 2–3 篇立意不同的候选,每篇附六维审核报告。
7. 不满意就在「更多要求」里继续提,点「按新要求换一批」;满意就「采用此稿」。
8. 导出:项目目录下的 export.md(正文 + 风险报告附录 + 决策台账)。

工作流

原文 + 创作要求 │ ▼ ① 骨架抽取 ── 人物 / 设定 / 时间线 / 事件 / 伏笔(长文分块并发) │ ▼ ② 风险体检 ── 4 族 17 类,每条带原文引证;无引证不成立 │ ▼ ③ 用户裁决 ── 选方案,或写「更多要求」 │ ▼ ④ 多稿生成 ── 并行 2–3 稿,立意不同(正面推进 / 侧面切片 / 反向假设) │ ▼ ⑤ 六维审核 ── 原作一致性 · 人物保真 · 内部逻辑 · 需求覆盖 · 合规 · 文笔 │ └── 不满意 →「更多要求」→ 回到 ④ │ ▼ ⑥ 定稿导出 ── Markdown,附六维评分与问题清单

风险分类法(节选,完整 4 族 17 类见 lib/prompts.js):

| 族 | 编号 | 类别 | 判定问题 |
| 冲突 | C1 | 设定冲突 | 同一规则或能力是否被两次不同地陈述 |
| 冲突 | C2 | 时间冲突 | 事件先后、年龄、季节能否同时成立 |
| 缺口 | G1 | 动机缺口 | 关键行为是否有与其分量匹配的铺垫 |
| 缺口 | G3 | 信息缺口 | 角色是否知道了按设定不该知道的事 |
| 结构 | S1 | 伏笔失收 | 已埋伏笔是否被遗忘或突兀回收 |
| 结构 | S4 | 结局未闭合 | 主线提出的问题是否被回答 |
| 体验 | E1 | OOC | 行为是否偏离人物既定性格与关系 |
| 体验 | E4 | 合规风险 | 是否触及版权、敏感内容或平台规则 |

配置

在插件行(或 profile 的 cordis.patch.yml,id: fanwork)里改 config::

| 字段 | 默认值 | 含义 |
| candidates | 3 | 每次生成几稿(1–4) |
| concurrency | 4 | 长文分块解析的并发数(1–6) |
| reasoningEffort | low | 推理强度。长文本请保持 low,否则推理会吃光 token 预算 |
| callTimeoutMs | 600000 | 单次模型调用超时(毫秒) |
| dataDir | ~/.dsh/fanwork | 项目数据目录 |

接口地址 / 模型名 / Key 不在配置里,只能由使用者在页面上填,保存在 <dataDir>/settings.json(权限 0600)。

长文本行为

- 原文 ≤ 1.2 万字:一次调用抽骨架。
- 原文 > 1.2 万字:按 1.2 万字切块,并发解析后合并去重。
- 体检阶段对 > 1 万字的原文按段落均匀采样(保留原句,引证仍可定位),页面上会标注「采样」。

实测(4.2 万字原文、2 篇候选、800 字目标篇幅):骨架 4 块并发 ≈ 70 s,体检 ≈ 70–110 s,整段 ≈ 2.5–3 分钟。
2 万字以内体验最好;再长建议分卷。

隐私与密钥

- Key 只在本机:写在 <dataDir>/settings.json(0600),只在服务端发请求时读取。
- 页面只显示掩码(sk-1**abcd),日志里不写 Key,也不会回传到任何第三方。
- 不做遥测:项目数据只落本机 ~/.dsh/fanwork/projects/<id>/,不上传。
- 卸载插件不会删除你的数据;要彻底清理,手动删掉 ~/.dsh/fanwork。
- 二创请自行确认原文使用权;导出文件已附原作信息与二创声明。

常见问题

打开页面提示「未配置 API」/ 接口 403 插件启动时是未配置状态。先完成第 0 步,或在顶部 API 状态条点「修改」重填并「测试连接」。

端口变了,收藏的地址打不开 DSH 每次启动端口可能不同。在输入框输入 /fanwork 取当前地址;插件也会把当前地址写到 <dataDir>/last-url.txt。

体检很久没反应 先看 <dataDir>/fanwork.log(一行一个 JSON,记录每次调用的耗时与 token)。常见原因是 reasoningEffort 太高导致推理吃光预算——保持 low。

换模型 / 换网关 点顶部 API 状态条「修改」,三格都可以改;保存后立即生效,不需要重启。

HTTP 接口

| 方法 | 路径 | 用途 |
| GET | /fanwork | 工作台页面 |
| GET | /fanwork/api/health | 健康检查(含当前地址与配置状态) |
| GET / POST | /fanwork/api/settings | 读取(Key 已掩码)/ 保存 {baseUrl, model, apiKey} |
| POST | /fanwork/api/settings/test | 用当前设置发一次真实调用 |
| POST | /fanwork/api/read-file | 读本地文本 {path}(.txt/.md,≤ 4 MB) |
| GET | /fanwork/api/projects | 项目列表 |
| POST | /fanwork/api/projects | 新建项目 {source, brief} |
| GET | /fanwork/api/projects/:id | 项目快照 |
| POST | /fanwork/api/projects/:id/run | 执行阶段 {stage: analyze\|generate\|regate},返回 SSE |
| POST | /fanwork/api/projects/:id/decisions | 提交裁决 |
| POST | /fanwork/api/projects/:id/select | 选定稿件并导出 |
| POST | /fanwork/api/projects/:id/cancel | 取消正在跑的阶段 |

SSE 事件:stage / progress / canon / diagnose / delta / draft / audit / decisions / done / error。
长调用期间服务端每 15 秒发一次注释心跳。

开发

node scripts/dev-server.mjs # 本机假接口 + 自动指向它,http://127.0.0.1:7788/fanwork
$env:DEEPSEEK_API_KEY="sk-..."; node scripts/dev-server.mjs # 连真实 API
node scripts/e2e-test.mjs http://127.0.0.1:7788 # 端到端冒烟
node scripts/plugin-check.mjs # 插件契约检查(假 ctx)

lib/
index.js 插件入口(name / inject / apply;无 export default) service.js 阶段编排、SSE、取消、快照 pipeline.js 流水线 + 归一化 llm.js JSON 抽取、修复重试 remote-llm.js OpenAI 兼容流式客户端 settings.js 本机设置(settings.json,0600) prompts.js 分类法、提示词、输出解析 store.js 项目落盘(原子写) http.js 路由 / 静态资源 / SSE web/ 工作台(原生 ESM,零构建)

Host 半改完需要触发一次重载(改 patch 行 id 或重启);lib/web/ 改完刷新浏览器即可。

给插件作者的 DSH 踩坑记录

1. 不要 export default:Loader 的 unwrapExports 会折叠模块并丢掉 inject。
2. 不要手写 assistant 消息:ctx.llm.stream({messages}) 里的 assistant 消息必须带 source,自己拼一个 {role:'assistant'} 会抛 Cannot read properties of undefined (reading 'replayState')。
3. 没有结构化输出参数:GenerateOptions 只有 temperature / maxTokens / stop, JSON 靠提示词 + 括号抽取 + 校验 + 修复重试。
4. 推理会吃 token 预算:推理型模型可能把 maxTokens 全花在思考上导致正文为空,表现出来是「JSON 解析失败」。
5. link: 安装拿不到 profile 依赖:Node 的 ESM 解析从真实路径向上找,插件里不要 import @deepseek-ai/。
6. 长调用要心跳:1–2 分钟没有事件的 SSE 连接会被中间层掐断。
7. bundle patch 的行 id 要和 profile 覆写用的 id 一致,否则同一插件会被注册两次。

License

MIT
预览分享卡片长什么样 ↓gothepharnayadlsos-cyber/dsh-fanwork
分享 · DeepSeek Harness Hub
gothepharnayadlsos-cyber/dsh-fanwork

先审原文逻辑风险,再按人工裁决并行生成可复核草稿

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部