把原始会话日志清洗成多格式对话记录
30.1/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/4 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装;安装清单取自 plugin/@deepseek-ai/dsh-session-conversation-export/package.json。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add qwertyuiop314/dsh-conversation-export该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 清洗原始会话日志
- 导出多格式对话记录
- 命令行与单文件GUI
DSH 会话日志导出为对话:零依赖命令行 + 单文件 GUI + DSH Web 插件
README
由 DeepSeek 最新模型翻译生成DSH 会话日志 → 对话记录
把 DSH 导出的原始会话日志清洗为对话记录,三套入口共用同一套逻辑:
| 入口 | 位置 | 说明 |
| 🔌 DSH 插件 | Session 头部 "Export chat" 按钮 | 弹窗勾选格式及是否包含推理/工具/子代理,单选直下、多选 ZIP |
| 🖥️ GUI | session-conversation-gui.html | 双击即用、零安装、可离线 |
| ⌨️ CLI | session-to-conversation.cjs | 零依赖(Node ≥18),适合批量 |
安装(插件)
官方一条命令(推荐)——在仓库目录下:
一次性前提:装 pnpm(dsh plugin 是 pnpm 转发器)
npm i -g pnpm
一键安装:装包 + 自动加入 profile bundles 层 + 注入装载条目
dsh plugin --profile web add file:./plugin/@deepseek-ai/dsh-session-conversation-export
重启后生效
dsh web # 或 重启DSH服务.bat
展开完整文档(README 剩余 1 节)
DSH 会话日志 → 对话记录
把 DSH 导出的原始会话日志清洗为对话记录,三套入口共用同一套逻辑:
| 入口 | 位置 | 说明 |
| 🔌 DSH 插件 | Session 头部 "Export chat" 按钮 | 弹窗勾选格式及是否包含推理/工具/子代理,单选直下、多选 ZIP |
| 🖥️ GUI | session-conversation-gui.html | 双击即用、零安装、可离线 |
| ⌨️ CLI | session-to-conversation.cjs | 零依赖(Node ≥18),适合批量 |
安装(插件)
官方一条命令(推荐)——在仓库目录下:
一次性前提:装 pnpm(dsh plugin 是 pnpm 转发器)
npm i -g pnpm
一键安装:装包 + 自动加入 profile bundles 层 + 注入装载条目
dsh plugin --profile web add file:./plugin/@deepseek-ai/dsh-session-conversation-export
重启后生效
dsh web # 或 重启DSH服务.bat
插件包内声明了 dsh.bundle(cordis.patch.yml),所以 dsh plugin add 会自动把它加入 dsh.profile.bundles 并在启动时注入 "Export chat" 装载条目——无需再手动改任何配置文件。
或一键脚本:双击 deploy/安装插件.bat(有 pnpm 时内部就走上面的官方命令;否则手动复制兜底)。
手动(兜底):复制 plugin/@deepseek-ai/dsh-session-conversation-export/ 到 $DSH_HOME/profiles/node_modules/@deepseek-ai/,并在 $DSH_HOME/profiles/<profile>/cordis.patch.yml 追加:
- insert:
- id: session-conversation-export
name: '@deepseek-ai/dsh-session-conversation-export'
重启 dsh web,刷新页面。
用法
CLI:单文件 / 导出 ZIP / 目录,默认输出 6 种格式
node session-to-conversation.cjs --in session.jsonl
node session-to-conversation.cjs --in dsh-session-xxx.zip --formats md,html
node session-to-conversation.cjs --in ./logs --no-tools --max-tool-result 800
node session-to-conversation.cjs --in dsh-session-xxx.zip --no-subagents --formats md,json
GUI:双击 html,拖入 .jsonl / .zip 插件:右上角 Export chat → 勾选格式/是否包含推理、工具、子代理 → 导出
输出格式:.md / .txt / .html(正文 Markdown 已渲染)/ .json / .jsonl / .openai.json(OpenAI 兼容)。
开发与测试
node scripts/test-gui-core.cjs # 离线回归(GUI 核心 + 渲染器 + Markdown)
node scripts/validate-plugin.cjs # 离线验证插件 bundle
node build-plugin.cjs # 改过 GUI 核心后重新生成插件 bundle
node deploy/verify-install.cjs # 校验插件已装好(需已装 DSH)
版本兼容(DSH 会话日志格式 V3 / V4)
解析器同时支持 V3(DSH ≤ 0.1.5 写入)与 V4(DSH 0.1.7 起写入)两代会话日志:
- tool/result:V3 是 data.message.role='user' + 内层 {type:'tool-result', toolCallId, content, isError} 外壳;V4 把角色提升为 'tool',toolCallId / isError 提到 message 顶层,content 直接就是内容块。readToolResult() 统一两种形状,工具结果的「错误」标记在两代下都正确。
- 插件注入消息的 source.kind:V3 是 plugin,V4 变成 runtime-context / plugin:<name> 等;过滤规则"只保留 user / tool"在两代下都成立。
- 导出链路未变:/api/session.export 路由、sessionId / includeDescendants=true 参数、ZIP 内条目名 session[.vN].jsonl(未压缩)在 0.1.7 中保持一致。
- 图标导出已改名(0.1.7 的硬断点):@deepseek-ai/dsh-client-ui-primitives 的图标从像素尺寸后缀(IconDownloadOutline16)改成描边粗细后缀(IconDownloadOutlineRegular)。客户端 bundle 现在两代都探(?? ),旧的写在新版会解构成 undefined,React 报 error #130 让整个 slot 崩掉。
- Session 日志 V4 的 seq 稠密化、surfaceOp、未知块类型 plugin:<type> 命名空间化都不影响解析(未知块原样保留、渲染时忽略)。
解析器同时接受 V3 和 V4 两代会话日志——工具结果无论哪种结构都会归一化(readToolResult),注入的插件消息在两种结构下都会被过滤掉,/api/session.export 的 ZIP 契约在 0.1.7 中保持不变。
已知限制
- 子会话在导出 ZIP 中由独立的 *.jsonl 表达,默认一起导出;插件/GUI 可取消勾选「包含子代理」,命令行用 --no-subagents 排除。
- 附件(图片)不在日志内,转换结果只含文本。
- ZIP 读取仅支持 STORE / DEFLATE。
- 工具结果默认截断 2000 字符(--max-tool-result 可调)。
关于本仓库的「出生证明」
本仓库的代码是人类与 AI 的混合双打产物:人类负责提需求、定方向、亲自下场调试和最后把关,代码的「手」(其实是 token)主要出自模型。
请把它当作一份参考实现来用——就像菜谱:照着做可以,但别指望不粘锅:
- 用之前自己先过目:代码翻一翻、测试跑一跑、按你的场景调一调;看不懂也没关系,让 AI 帮你把关——反正代码是 AI 写的,AI 审 AI,专业对口;
- 代码按 「现状」(AS-IS) 提供,不附带任何明示或默示的担保——没有保修卡,也没有延保服务;
- 要是哪里翻车了,那大概率是 AI 的锅——欢迎提 issue 或 PR 帮它「补课」,我们绝不护短;
- 欢迎 fork、修改、分发,也欢迎提 issue 或 PR 一起改进——独乐乐不如众乐乐。
说人话:代码能用就偷着乐,踩坑了一起填,改好了记得回来分享 😄预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
qwertyuiop314/dsh-conversation-export
把原始会话日志清洗成多格式对话记录
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。