Skip to content

Repository files navigation

DSH Inline Study

English

非官方社区插件,由社区成员独立开发和维护。

Important

AI 生成声明:本项目基本由 AI 生成。 作者负责提出需求、实际试用和验收,并进行了简单测试。目前未发现恶性 Bug,但不代表已经过完整测试,欢迎通过 GitHub Issues 反馈 Bug。

把 AI 的长回答变成可以原地追问、层层展开、随时回看的学习页面。

安装

环境要求

  • Node.js ^22.19.0 或 >=24
  • pnpm
  • DeepSeek Harness Web
  • 当前版本基于 @deepseek-ai/dsh 0.1.1-rc.2 开发和测试

直接从 GitHub 安装(推荐)

安装仓库的最新版本:

dsh plugin --profile web add github:Chen-chy/dsh-inline-study

仓库已经提交预构建的 lib/ 产物,GitHub 安装不需要执行构建脚本,也不需要修改 profile 的 allowBuilds 设置。

从本地源码安装

克隆或下载仓库后,在项目目录中运行:

pnpm install
pnpm run build
dsh plugin --profile web add .

启动并验证

重新启动 Web 服务:

dsh web

如果服务已经运行,请先按 Ctrl+C 停止,再重新启动,并在浏览器中执行一次硬刷新。

检查插件是否已经挂载:

dsh plugin --profile web list

卸载:

dsh plugin --profile web remove dsh-inline-study

AI 已经可以帮助我们学习几乎任何知识。真正的问题往往不再是“AI 能不能回答”,而是它一次性给出的内容太多:一个概念、一行公式或一个证明步骤没看懂,如果直接在主对话里继续追问,局部疑惑就会不断写入主时间线,占用原会话上下文,也打断原本连续的学习过程。

dsh-inline-study 因此而生。它为 DeepSeek Harness Web 增加了一套类似论坛“楼中楼”的行内学习批注:选中不理解的内容,问题就在原处发起,回答也在原处展开;还可以继续选中批注回答中的句子,建立下一层问题。主对话保持干净,知识探索则形成一棵可以收起、展开和回看的问题树。

DSH Inline Study:楼中楼批注、持久高亮与可拖拽疑问导航

界面示例

插件不仅能处理普通文本,也能识别跨行选择、富文本、行内公式与独立行间公式。选中内容后,五种学习动作会直接出现在原文附近:

中文数学材料中的跨行选择与五种学习动作

面对英文材料时,工具栏、批注回答与疑问导航会自动使用英文。已经建立的问题会保留高亮,并集中显示在右侧导航中:

英文材料中的原地解释、楼中楼与可拖拽疑问导航

工具栏会跟随选中材料的语言,而不是机械地跟随网页界面语言:

英文划词工具栏:Ask、Hint、Explain、Derive 与 Check

它解决什么问题

传统 AI 对话只有一条不断向下延伸的时间线。局部问题、补充解释、公式推导和正确性检查混在一起后,用户很难重新找到“当时究竟卡在哪里”,主会话也会越来越偏离原来的主题。

这个插件把 AI 回答转换成一份可交互的学习材料:

  • 主回答负责维持完整叙事;
  • 行内批注负责处理局部疑惑;
  • 楼中楼负责继续拆解批注回答中的新问题;
  • 疑问导航负责集中检索、回跳和复习。

它尤其适合数学证明、物理公式、论文阅读、代码讲解、技术文档学习,以及备考时整理易错点和知识盲区。

核心功能

1. 原地提问,原地回答

选中 AI 已完成回答中的句子、段落、代码、证明步骤或公式,浮动工具栏会立即出现。生成的回答附着在原文附近,不进入主对话时间线。

支持单行选择、跨段选择、富文本、行内 KaTeX 公式、独立行间公式,以及跨越“文字 → 公式 → 文字”的连续选择。

2. 五种分工明确、覆盖不同学习障碍的动作

操作 核心意图 行为
提问 自由问题 打开输入框,针对选中内容提出自己的问题
提示 帮助迈出下一步 定位障碍并给出最小有效提示,尽量不提前揭示答案
解释 理解含义与结构 说明概念、术语、句子、论证、代码、数据或公式的含义,以及它在上下文中的作用
推导 从前提走到结论 从最近的已知条件开始,逐步写出运算、公式与依据
检查 判断是否正确或缺条件 给出结论,检查假设、定义域、符号、系数、约定与遗漏条件

“解释”并不是“简化推导”:它面向任何类型的知识材料,优先讲清核心意思、组成部分、相互关系和局部语境;只有在理解含义确实需要时,才引用少量推导。每个动作都使用完整的模式协议,而不是一句简单指令。相同批注里的后续提问会继续遵守原模式,例如“继续提示”只给更强的一步提示,“继续解释”继续澄清含义,“继续推导”只修补或延伸当前推导链。

3. 可以无限向下追问的“楼中楼”

批注回答本身也可以再次选中并提问,从而形成树状结构:

Q1 → A1
│
├─ 选中 A1 的句子 a
│  └─ Q2 → A2
│     └─ 选中 A2 的句子 b
│        └─ Q3 → A3
│
└─ 选中 A1 的另一句 c
   └─ Q4 → A4

每个节点都能独立展开、收起和关闭。收起父节点会暂时隐藏它的子树;关闭父节点会删除整棵可见子树及其高亮。

4. 不破坏主对话的上下文隔离

这是插件最重要的设计之一。

操作 会话行为 是否写入主对话
在原回答中选中文字提问 创建新的独立批注会话 否
在批注回答中创建楼中楼 再创建一个新的独立批注会话 否
点击同一批注的“继续提问” 沿用该批注自己的会话 否

新批注只会把选中内容和用户指定的上下文快照复制到新的 Prompt 中,不继承或修改父会话的隐藏历史。只有同一批注内部的“继续提问”会累积该批注自己的上下文。

因此,用户可以深入研究一个局部问题,而不用担心主对话被大量支线问题占满。

flowchart LR
    M["主对话:保持原有连续性"] -->|"复制选中内容与上下文"| Q1["独立批注 Q1 → A1"]
    Q1 -->|"同一批注继续提问"| F1["沿用 Q1 的独立会话"]
    Q1 -->|"选中 A1 中的新片段"| Q2["新的独立批注 Q2 → A2"]
Loading

5. 持久高亮与可靠定位

创建批注后,原文会保留琥珀色高亮。插件会保存文本引用、前后文、块索引、可见文本偏移和归一化指纹,用于刷新页面后恢复定位。

  • 支持跨多个语义块的高亮;
  • 支持 KaTeX 可见文本与隐藏无障碍文本并存的结构;
  • 支持嵌套批注回答中的高亮;
  • 如果原文已经变化且无法安全定位,插件宁可停止附着,也不会跳到错误位置。

6. 疑问导航侧边栏

所有批注会按问题树顺序集中到侧边栏中,形成一份自动生成的“疑问清单”。

  • 点击摘要或“跳回原文”,快速回到对应高亮;
  • 跳转到楼中楼时,自动展开被收起的祖先节点;
  • 在侧边栏直接展开对照;
  • 同时查看选中内容、所在段落和最新回答;
  • 回答继续使用 Markdown 与 KaTeX 渲染,方便核对公式。
  • 桌面端侧栏会为正文让出空间,并可拖动左边缘调整宽度;设置会保存在当前浏览器中。

对于备考场景,这个侧边栏可以充当随学习过程自动积累的错题本和知识盲区索引:复习时不必重新翻阅整段 AI 对话,只需要依次检查曾经产生过疑问的位置。

7. 上下文范围可控制

每次操作都可以选择模型看到的范围:

  • 附近内容:前一个语义块、选中内容和后一个语义块;
  • 当前回答:当前完整 AI 回答;
  • 完整对话:Harness 当前已经加载的父会话窗口。

默认情况下,提问、提示、解释和检查使用“附近内容”,推导使用“当前回答”。

8. 匹配问题本身的语言

插件不会再把“用户界面语言”当成回答语言。划词工具栏优先识别选中内容的语言;自由提问和继续提问则以用户实际输入的问题语言为准。提示、解释、推导和检查没有自由输入时,以选中内容的主要自然语言为准。纯公式或代码无法判断语言时,会先参考所在段落,最后才回退到界面语言。

模型请求末尾也会加入相同规则的强制约束,确保标题、结论和正文保持一致,同时原样保留公式、代码、引用和必要的专有名词。例如,在中文界面中选中英文教材内容,工具栏和回答都会使用英文;如果随后用中文继续提问,新的回答则切换为中文。

9. 本地持久化

批注内容、树结构、状态和高亮锚点按会话保存在浏览器 localStorage 中。刷新页面或重新打开会话后,插件会从根节点到子节点依次恢复批注与高亮。

使用方法

  1. 打开一个已经完成生成的 AI 回答。
  2. 选中希望进一步学习的文字、代码或公式。
  3. 点击 提问、提示、解释、推导 或 检查。
  4. 在原文下方阅读回答,必要时点击“继续提问”。
  5. 继续选中批注回答中的内容,创建楼中楼问题。
  6. 打开右侧“疑问导航”,统一查看、回跳和展开对照。

快捷键:

  • Enter:提交自由问题;
  • Shift + Enter:输入换行;
  • Escape:取消输入或关闭划词工具栏。

数据与会话说明

  • 可见批注数据保存在当前浏览器本地;
  • 批注不会修改主对话历史;
  • 每个新批注拥有独立的 Harness 推理会话;
  • 删除批注会清除本地批注、高亮和树关系;
  • Harness 当前没有可靠的持久会话删除 API,因此已经归档的底层推理会话可能仍保留在 Harness 存储中。

已知限制

  • DeepSeek Harness 仍处于开发者预览阶段,后续 DOM 或客户端 API 变化可能影响兼容性;
  • 只能在 AI 回答或批注回答完成生成后创建新批注,流式生成中的文字暂不可批注;
  • “完整对话”只包含当前浏览器已经加载的事件窗口;
  • 当前 MVP 不包含云同步、移动端专项布局、语义数学解析、工具调用和自定义动作。

开发与验证

pnpm run typecheck
pnpm test
pnpm run build

当前测试覆盖动作与 Prompt、上下文隔离、楼中楼树结构、持久化、文本锚定、多块高亮、KaTeX 行间公式识别和侧边栏排序。

更多实现细节请参阅 IMPLEMENTATION_PLAN.md。

License

MIT

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages