dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
A dream generator for DeepSeek Harness: turns recent conversations into short dreams.
从最近的对话里挑几段最烫的话,泡成一场认不出来、但确实是它的梦。
A dream generator for DeepSeek Harness (dsh): pick the most emotionally charged fragments of recent conversations, compress them into abstract images, write a short dream, self-check it, and save it as a markdown file.
verbatim 时会多一句原句dafiyu-dreams/dream-YYYY-MM-DD-.md注意:原文确实会发给模型(第 2 步)。详见下面的「隐私」一节。
目前只支持从源码目录安装(还没有发布到 npm,package.json 里是 private: true):
# 克隆后,在仓库根目录执行
dsh plugin --profile <你的 profile> add link:/absolute/path/to/dafiyu-dream -w@local/ 前缀是 dsh 给本地链接插件的命名习惯;以后要发 npm 时会改成 dsh-plugin-dream。
装完 /dream 会出现在输入框的 / 菜单里;如果没看到,刷新一下页面。
输入 · 效果 /dream · standard 长度 + 自动狂野度 /dream short · 150–250 字 /dream long · 600–1000 字 /dream high · 最疯狂的档 /dream long high · 又长又疯
全部可选,缺省值按"工作区下找子目录"推:
- id: dafiyu-dream
name: dafiyu-dream
config:
sourceDir: dafiyu-memory # 对话 md 所在目录(相对 workspace 或绝对路径)
outDir: dafiyu-dreams # 梦存哪
personaPath: dafiyu-persona/persona.md # 可选;没有就用内置的一句话人格
sourceGlob: 'chat-*.md,qq-*.md' # 哪些文件名算素材(只支持 * 和 ?,可用逗号写多个)
apiKey: sk-... # 方式一:直接写(配置文件别提交 git)
apiKeyEnv: DEEPSEEK_API_KEY # 方式二:从环境变量读(默认就是这个)
apiKeyFile: ~/.dsh/deepseek.key # 方式三:文件里只放一行 key
model: deepseek-flash
length: standard # short | standard | long
wild: auto # auto | low | mid | high
windowDays: 7 # 往前找几天
k: 6 # 抽几条素材
verbatim: false # 是否把一句原话一字不改嵌进梦里(默认关)三种,任选其一:
DEEPSEEK_API_KEY=sk-...。Windows 用 setx,macOS/Linux 写进 shell 配置。改完要重启 DSH,否则宿主进程读不到。apiKey: sk-...:最直接,但会留在 profile 的 cordis.patch.yml 里,注意别提交。apiKeyFile: ~/deepseek.key:文件内容就是一行 key(也可以放别的东西,插件会从中提取 sk- 开头的那段)。Windows 上还有一个兜底:如果环境变量是setx写的、而 DSH 是之前就启动的,插件会去注册表HKCU\Environment再读一次。这个只对 Windows 有效。
档 · 规则 low · 世界遵守物理,只是场景被换掉 mid · 允许一两件不可能的事 high · 身份互换、空间折叠、语言失效,但情绪必须连贯 auto · 按抽中素材里最高的加权分决定:≥0.22 → high,≥0.10 → mid,否则 low(权重含长度与天数衰减)
一场梦最多 5 次请求(压缩 1 次 + 写梦 1 次 + 自检不过时最多重写 3 次)。发出去的内容是:
请求 · 内容 压缩 · 每条被抽中素材的前 220 个 UTF-16 码元原文(默认最多 6 条) 写梦 / 重试 · 通过格式筛选的 3–5 个短语(每行 ≤8 字)+ 人格(≤64 KiB 时整份)+ 主题/长度/狂野规则等固定指令 +(开启时)一句原句
请按这个事实理解隐私:
:// 或 www.),不保证语义:里面可能残留原文片段,也可能夹带短指令。verbatim)默认关闭。设为 true 后,那句原话会进入请求和落盘的 front matter;关闭它也不阻止模型自己在梦里复述听过的句子。outDir,没有额外 HTTP 上传;但 outDir 若指向网络盘/UNC,写入本身会走网络。想少发一点:把 k 调小、让 sourceDir 只放很少的素材,或者先把素材改写成隐喻再喂给它(本版没有本地抽象器)。
sourceDir / outDir / personaPath 是什么就能读写什么。这是本地工具,配置由你掌握;不要指向不可信的目录。sourceDir。单靠一个 md 拿不到你的环境变量或 API key(没有工具授权、重试次数固定)。sourceDir 下匹配 sourceGlob 的普通文件;不递归;目录里的符号链接条目会被 isFile() 跳过,但 sourceDir 本身若是指向别处的链接,会照着读。* / ?,最多 5 个模式、每个 ≤64 字符),用双指针匹配,复杂度受控;配置里出现旧的 sourcePattern 会直接报错,不会静默忽略。HKCU\Environment 再读一次(其他平台没有这一步)。这个工具是给中文对话用的:一段素材里汉字占比低于 45% 会被跳过。
要被选中,一个文件必须同时满足:
条件 · 说明 文件名含 YYYY-MM-DD · 日期用来算天数衰减;没日期的文件不参与 日期在窗口内 · 默认从今天往前 7 天(windowDays 可改) 每段以 ## 开头 · 两个井号加一个空格,不能是 ### 段落里有 **我说:** · 冒号必须是全角 :;只取这一段打分
格式长这样:
## 10:35 · 一段对话
**我说:**
(你说的话)
---
**DeepSeek说:**
(AI 说的话)筛选是按顺序进行的,所以报错会告诉你卡在哪一步:
没有可用素材(扫描 12 个文件:3 个文件名里没有 YYYY-MM-DD;2 个超出 7 天窗口;
4 段缺少 "**我说:**" 标记)零依赖,离线跑(不调用模型):
npm test # 等价于 node --test(自动发现 test/ 下的文件)覆盖:glob 匹配(含回溯反例、文件名自带星号、长度上限)、旧字段拒绝、限量读取、含控制字符的 key 被拒、自检规则(元叙述/括号旁白/原样片段位置)、打分与抽样的边界。
MIT