研读 · Study Reader
在 DSH 主页面按原版式阅读 PDF、Word 和 PowerPoint,并把阅读变成可检索、可追问的学习过程。
本版本只保留 原貌阅读:不再提供文字重排的“研读视图”。PDF 由 Host 的 PDFium 渲染页面图、PDF.js 提供文字层;Word / PowerPoint 先经 DSH 自带的 Office 转 PDF 服务转换,再按原貌显示。
- 原貌阅读:保留原版式、图表、公式和分页,可直接在页面上框选文字。
- 夜间阅读:PDF 页面自动跟随 DSH 明暗主题(包括跟随系统),深色模式显示深色纸面和浅色文字,切换时无需重载文档;Word / PowerPoint 转换后的页面同样适用。彩色图表和照片也会经过夜间配色转换,查看准确原色请切回浅色主题。文字选择、区域坐标以及发给模型的原始截图不受显示滤镜影响。
- 单页 / 连续页:单页一次显示一页;连续页上下滚动,自动加载视口附近以及当前页前后各 2 页,离开这个窗口才释放画布。
- 缩放与导航:适合页宽、适合整页、25%–300% 缩放与加减按钮;工具栏的 ↶ / ↷ 返回或前进到之前的阅读位置,保留页内相对位置。阅读区及其工具栏支持 Alt+← / Alt+→,鼠标侧键在页面区域生效;聊天输入框不拦截这些快捷键。缩放选项保存在浏览器本地。
- 继续上次阅读:按文档路径记住页码及页内横纵位置,再次打开、刷新或重启 DSH 后打开同一文档时自动恢复。位置保存在当前 profile 的本机数据目录,浏览器 localStorage 作为备用;单页和连续页均支持。文件改名或移动后不会自动迁移位置,替换文件后超出的页码会按实际页数收紧。
- 回答引用预览:点击回答中的 [B12]、[第 3 页] 或 [第 2 张],先查看引用位置的原文和页面图片,再点击“跳到原文”。引用是原文定位,仍需核对结论;新回答会要求区分原文明确陈述和推导。旧回答已有的有效引用也能打开,无法定位会明确报错。Word/PPT 的文字单元没有准确转换页映射时只展示原文,不猜页码。
- 书签、高亮与批注:页面工具栏 ◆ 添加本页书签;选中文字或 Ctrl/⌘ 框选区域后,浮动菜单可保存高亮或填写批注和标签。“书签与批注”显示全书列表,可按类型、原文、笔记、标签和页码筛选,编辑、删除或跳转;页面上的小标记可直接编辑。文字高亮按选中文字的矩形保存,缩放后仍跟随页面;跨页文字请分开选取。
- 全文查找:右上角放大镜搜索目录标题和提取出的正文段落,结果带页码与上下文;Enter 后用 A/D 或方向键浏览结果,Esc 退出并返回 PDF,点击结果也可跳转。
- 诊断信息:右上角
i按钮查看插件版本、页面渲染引擎、模型/Office 可用性和当前文档统计,可一键复制用于反馈问题。 - 注入的上下文:每条问答回答和每条译文下方都有 查看注入的上下文。展开后可以看到这次请求实际发送的系统提示、用户消息(文档上下文、历史对话和问题)、按顺序附上的图片缩略图,以及阅读位置、图片/字符/估算 token 数、是否裁剪、是否注入全书概览、模型加读的页面、状态、耗时和 token 用量;可以分别复制系统提示与用户消息。
- 公式排版:回答和译文中的
$…$、$$…$$、\(…\)与\[…\]使用本地 KaTeX 排版,支持公式编号;代码块和行内代码保持原样,无需访问外部公式 CDN。 - 消息操作:问题和回答底部提供带图标的“复制原文”和“创建分支”;问题另有“编辑问题”,编辑后可选择重新提问或保留原对话创建分支。复制的是未渲染的 Markdown / LaTeX 正文,不包含思考过程和界面文字。
- 思考过程:模型返回推理内容时,回答和译文上方会出现 思考过程,流式显示推理文本;生成期间默认折叠,只显示“正在思考…”和字数,点击才展开,生成结束后可随时折叠或复制。
- 框选操作:选中正文后出现浮动工具栏,可翻译、追问或直接解释。
- 区域引用:正常拖动仍然是选文字;按住 Ctrl(Mac 为 ⌘)拖动 则是在页面上框选一个区域。这个区域会像选中文字一样成为引用,并在提问或翻译时把框选截图作为图片一起发给模型。普通文字选择也会附带所选区域的截图。
- 上下文翻译:不只是翻译选中的句子,还会参考所在段落、前后文和小节标题;默认英译简中,可切换目标语言。
- 历史对话与分支:按文档自动保存多段对话,在问答上方的“历史对话”切换,列表每行可单独删除;切换恢复草稿、引用、学习/重读模式与模型。旧版浏览器问答首次打开时迁移为一段历史对话。问题旁的“编辑问题”支持编辑后重问(替换该问题之后的内容)或编辑后创建分支(保留原对话);每条消息旁也可“从此处分支”,复制截至该消息的历史后继续。分支是独立会话,删除原对话不会级联删除分支。
- 选择模型:输入框底栏从 DSH“设置 → 模型”已配置的模型中选择,或跟随 DSH 默认模型;问答、补读、翻译和主动全书概览均使用该选择。切换只影响后续请求,不修改 DSH 全局默认模型。配置模型后可刷新列表。
- 侧边问答:两种模式——
- 学习模式:只依据当前位置及之前的内容回答;如果文档后面不远就有更系统的解释,会先提醒“继续读”,并可一键跳到对应页。
- 重读模式:可以使用全文,主动联系不同章节、概念、例子和例外。
- 模型自主补读:模型可以查看目录、搜索原文与目录,再按结果读取正文、页面图片或局部图表;默认最多 3 轮、累计全文/图片补读 8 个阅读单元,每轮最多执行 3 次工具操作。搜索摘要和初始上下文另受输入预算约束。补读不改变当前页面,记录中的页码可以点击跳转。多页图片请求按页处理:成功页照常传递,失败页分别返回原因;重试时复用已传递的成功图片,失败页不占已读/图片额度。学习模式的范围限制保持有效,当前页图片补读(包括局部裁切)及后文图片仍会拒绝,且不会影响同批其他允许页。整次输入预算和取消规则继续适用。
- 回答完整性:问答默认每轮最多输出 16,384 tokens(推理也可能占用此额度),仍受模型窗口和显式配置约束。达到额度或连接未正常结束时,保留部分回答并显示具体错误;已有部分正文时不会自动追加付费续写请求。旧版未保存的结束码不能事后补回。
- 全书概览:目录面板的 概览 按钮会分批读取每章首页,生成并缓存辅助摘要;重读模式可注入最多 4,000 字。明确标注它基于目录与章首页,不能代替全文依据;不再在问答后自动调用模型生成。
文档解析、页面渲染和请求组装在本机 Host 执行。翻译、问答和全书概览使用 DSH 配置的模型供应商,相关文字、上下文和页面截图会随请求发送到该供应商;这不是完全离线的阅读助手。 问答和译文不会由本插件写入 DSH 的 Session 记录。具体发送范围与本地保存方式见下方“数据与隐私”。
安装与兼容性
这是运行在 DeepSeek Harness(DSH)里的 Cordis 插件,不能作为独立网页启动。当前为预览版,源码采用 MIT 许可证。
| 项目 | 已核实的范围 |
|---|---|
| DSH | 桌面运行时 0.2.2-rc.1;清单使用精确的 engines.dsh 约束,其他版本需重新验证后再放宽 |
| Host 操作系统 | Windows x64;macOS / Linux 尚未验证,特别是原生 canvas 依赖和 Office 转换 |
| 本地开发工具 | 本机验证 Node.js 24.14.1、npm 11.11.0;PDF.js 要求 Node.js 22.13.0 及以上,推荐使用 Node.js 24 LTS |
| 阅读 PDF | 需要 DSH Web GUI 和本地文件服务;安装依赖时需要网络 |
| Word / PowerPoint | 额外需要 DSH Office 转 PDF 服务;不可用时使用已转换的 PDF |
| 问答 / 翻译 | 需要配置 DSH 模型并在研读中选择,或使用 DSH 默认模型;读图还需模型声明支持 image 输入,模型自主补读需原生工具调用 |
在 DSH 插件窗口直接安装(npm)
- 打开 DSH 左侧“插件”页面,点击“添加插件”。
- 输入包名
study-reader,安装源选择“npm 官方源”,点击“安装”。需要固定版本时输入 npm 上已发布的版本(例如study-reader@1.16.7);本地源码的新功能版本在发布前不能用包名下载。 - 如提示依赖脚本审批,按界面实际列出的包名审阅;如提示重启,完全退出并重启 DSH,再刷新页面。
- 打开左侧“研读”,在右上角“诊断”核对版本。
插件包页面:https://www.npmjs.com/package/study-reader 。这是第三方插件,npm 发布不代表 DSH 官方收录。插件运行所需的 DSH、模型与 Office 服务条件见上表。
从旧本地包 @local/dsh-study-reader 迁移时,先通过 DSH 插件管理器移除旧 bundle,再安装 study-reader,避免两个包同时注册同一个入口。请保留批注与阅读位置数据目录;改名不改变这些数据目录或浏览器存储键。
在 DSH 插件窗口直接安装(GitHub)
普通用户可以通过 DSH 插件管理器从公开 GitHub 仓库安装,无需手动下载源码、执行 npm 命令或构建:
打开 DSH 左侧“插件”页面,点击“添加插件”。
在“插件的包名、GitHub 仓库地址或本地目录路径”输入框填入:
https://github.com/TermerOfMe/dsh-study-reader该地址安装仓库默认分支的版本。需要固定版本时,请先查看仓库的 Tags,再在地址后追加
#和已存在的标签名;尚未发布的标签不能用于安装。也可以使用上一节的 npm 包名study-reader安装。点击“安装”。DSH 插件管理器会下载仓库、安装运行依赖并启用 bundle。无需额外构建。窗口中的“npm 官方源”是依赖下载源选项;GitHub 仓库本身仍需要网络可达,这不表示插件已被 DSH 官方收录。
如提示依赖脚本审批,按界面列出的实际包名审阅并批准;如提示重启,完全退出并重启 DSH,再刷新页面。
在左侧打开“研读”,点击右上角“诊断”,核对版本与所安装分支或标签的包版本一致。未出现入口时,先查看插件管理器的失败信息、启用状态与兼容性提示。
GitHub 安装依赖安装器的 Git / 包管理器环境和网络;桌面版通常由 DSH 提供包管理器,自建环境应按 DSH 的安装器要求配置。已通过公开 GitHub 地址的包解析和打包预检;尚未在干净的 DSH profile 中完成下载、依赖安装、激活和界面验收。
从源码安装(开发者或本地试用)
通过仓库页面的克隆或下载 ZIP 功能获取源码,解压后放在一个长期保留的位置。普通用户优先使用上面的 DSH 插件窗口安装;源码方式用于开发或本地试用。
在源码目录打开终端,安装锁定依赖并检查包:
npm ci npm run check npm test无需构建:Host 和 Client 入口都是可直接加载的 JavaScript。
npm ci只在源码目录执行;不要在 DSH profile 目录手工安装依赖或修改清单。启动兼容版本的 DSH,进入将要使用的 profile。向该 profile 中可使用插件管理工具的助手发送下面的安装请求,把示例路径换成实际的源码目录绝对路径:
请先查看已安装的 bundles,然后用 plugin_manager 的 install_bundle 安装本地目录 C:/projects/study-reader。请按返回的 application、warnings 和 nextStep 检查是否启用成功;不要手工修改 profile 清单。
本地目录安装会链接源码目录,所以安装后不要删除或随意移动它。安装器可能要求批准依赖构建脚本;应根据实际报告的包名审阅处理,不要一次放开所有脚本。
若安装结果要求重启,完全退出并重新启动 DSH;刷新 Web GUI,确认左侧出现“研读”。在研读右上角“诊断”核对插件版本与当前源码版本一致。若提示运行时版本不兼容,请使用兼容版本;不要通过修改版本号或豁免来假定已验证。
按下方“使用”打开自己的文档。初次安装失败时,反馈安装结果、DSH 版本、操作系统和诊断信息,并先移除其中的私有路径、文档内容和请求上下文。
以上是依据当前安装器契约和现有本机安装整理的步骤,尚未在全新机器或其他操作系统执行完整安装验收。
更新与卸载
npm 安装更新:在 DSH 插件页面使用其提供的更新入口;需要固定版本时在添加插件窗口输入
study-reader@版本号。替换后按安装器提示重启,并在“诊断”核对版本。GitHub 安装更新:先备份批注目录,通过插件管理器检查已安装版本;安装器要求替换时,用插件管理器移除旧 bundle,再在“添加插件”窗口输入新的发布标签地址安装。完全重启 DSH 并核对诊断版本。GitHub 地址安装目前不等同于 npm 包的版本更新提示,不承诺自动升级。
本地源码更新:先备份批注目录,再更新源码并在源码目录执行
npm ci和npm run check;完全重启 DSH 后检查诊断版本。遇到already-installed时,不要循环安装;由插件管理器检查当前链接与启用状态,必要时按其提示移除再安装。git pull仅适用于通过 Git 克隆的副本。停用或卸载:使用 DSH 的“插件”页面停用 / 移除
study-reader,或要求助手通过插件管理器完成。卸载不自动删除浏览器历史、批注目录或 DSH 管理的图片附件;如需清理,应先备份并确认对应数据范围。
数据与隐私
- 本机处理:打开的原文件由 Host 文件服务读取,解析和页面渲染在本机执行。单纯浏览原貌、查找与保存批注不会调用模型;安装依赖和 DSH 自身的网络行为不由本插件声明为离线。
- 发给模型的内容:翻译和问答可能包含问题、选中文字、选区截图、文档标题、目录、相邻原文、历史问答,以及允许范围内的检索结果、补读正文和页面图片。重读模式可提供全文范围内的证据;全书概览会读取目录和章首页图片。只发送选区之外的必要上下文也属于向模型供应商传输文档内容。
- 范围与预算:学习模式对补读正文、图片和后文设置边界,并可能提供有界的后文预览用于“继续阅读”提示;这不代表模型自身已有知识受到隔离,也不保证请求只包含选中文字。具体请求可通过回答下的“查看注入的上下文”检查。
- 本地保存:多会话问答(含问题、回答、模型推理、草稿、引用和模型选择)、批注及阅读位置保存在 Host profile 数据目录;问答和阅读位置另有浏览器 localStorage 备用记录,问答保存失败会显示重试入口,重新打开会恢复尚未写入的备份。最近文档、译文及阅读选项保存在浏览器 localStorage;页面截图作为模型附件由 DSH 附件服务管理。本插件的请求上下文记录仅在 Host 内存保留,重启或淘汰后失效。浏览器记录、批注、阅读位置和附件是不同存储,卸载插件不会统一清空它们。
- 供应商与 DSH:模型请求的传输、服务端留存和使用规则取决于你配置的供应商与 DSH 设置。本插件不单独索取 API 密钥,也不承诺供应商零留存;Host 处理请求不等于模型在本机推理。
- 反馈问题:诊断和上下文可能包含个人路径、原文、问题和截图。提交公开 issue 前请脱敏,只使用可公开的示例文档。
使用
- 刷新 DSH 页面。
- 点击左侧导航栏的 研读 图标。
- 点击 打开文档,选择工作目录、主目录或直接输入文件路径。
- 在页面上拖选文字:
- 翻译:译文出现在右侧“翻译”页,可随时更换目标语言。
- 追问:把选中段落带进右侧问答框,继续输入问题。
- 解释:直接让助教解释这段内容。
- 如果页面文字选不出来,按住 Ctrl(Mac 为 ⌘) 在页面上拖动出一个矩形,效果和选中文字一样;提问/翻译会使用该区域的截图。
- 在问答顶部切换 学习模式 / 重读模式。
- 顶部 目录 优先使用 PDF 自带的书签(标题、层级和页码都来自文件),没有书签的 PDF 才回退到按字号识别的标题;可跳到对应页。目录默认只列出章标题,点章节左侧的箭头才展开该章的小节,再点标题跳转。目录右上角的 概览 会分批阅读每章首页,生成“每章讲什么”的章节摘要并缓存。原貌默认单页,可在页码左侧切换为 连续页:页面上下排列,滚动时自动加载视口附近和当前页前后各 2 页,不必反复点“下一页”。两种方式都支持框选;页码框和上一页/下一页在连续页中会滚动到对应位置。
- 右上角 查找 可搜索目录标题与正文段落;诊断 面板可查看版本、渲染引擎和最近问题,反馈时直接复制。目录仍在后台提取时,右上角目录按钮会先显示为禁用态,完成后自动启用。每条回答/译文下方的 查看注入的上下文 可以展开本次发送的完整提示词、图片和统计;模型返回推理时,上方的 思考过程 会显示推理内容。
- 右上角的返回箭头用于回到对话。遇到界面异常时,先刷新页面;仍复现则重启 DSH,并提供脱敏后的版本、复现步骤和报错。
问答记录按规范化文档路径保存在当前 profile 的 data/study-reader/conversations,重启 DSH 后仍可恢复,浏览器另存未同步备份。当前文档、翻译记录和缩放选项仍保存在浏览器本地(localStorage)。保存失败时侧栏显示原因与“重试保存”;超出大小限制会报错,不会静默裁掉旧消息。最近打开的文件可以在欢迎页或打开对话框中找到。
阅读位置保存在当前 profile 的 data/study-reader/reading-positions,未使用 profile 时位于 ~/.dsh/data/study-reader/reading-positions;可用 readingPositionDirectory 指定独立目录。保存页码及页内横纵比例,不保存页面截图或原文。重新打开同一路径时自动恢复;欢迎页“继续上次阅读”会尝试打开浏览器记住的文件。DSH 网页地址/端口变化可能使浏览器的最近文件列表不再可见,但通过“打开文档”选回同一文件仍可使用 Host 保存的位置。未完成定位时不覆盖原有记录;存储不可用时显示提示并保留浏览器备用记录。
书签、高亮和批注存储在 Host 本机文件中,默认位于当前 profile 的 data/study-reader/annotations,未使用 profile 时位于 ~/.dsh/data/study-reader/annotations。每份文档按规范化绝对路径独立保存,文件移动/改名后不会自动迁移;替换原文件后页码和坐标可能需要重新核对。并发操作在单个 Host 进程内串行、原子写入,已有数据损坏时明确报错并保留原文件。可备份整个批注目录;目前没有导入界面。可通过 annotationDirectory 指定独立数据目录,勿让多个 Host 进程同时写同一目录。
可用工具服务时注册 study_annotations,对指定文档列出、新建、编辑和删除批注,与界面共用同一操作;写操作须按用户指示执行。
快捷键
快捷键限于研读页面。翻页、滚动、跳页、缩放和阅读历史仅在 PDF 阅读区或其工具栏获得焦点时生效;点击页面可继续键盘阅读。输入问题、批注、页码或搜索关键词时正常打字,单字母快捷键停用,中文输入法组词期间不执行命令。Shift+方向键保留系统的文字选择行为。
| 按键 | 操作 |
|---|---|
| ← / A、→ / D | 上一页、下一页(单页和连续页都适用;即使放大也翻页,横向移动用滚动条) |
| ↑ / W、↓ / S | 向上、向下滚动 |
| Alt+← / Alt+A、Alt+→ / Alt+D | 阅读位置后退、前进 |
| G | 聚焦并全选页码;输入数字后 Enter 跳转并返回 PDF;Esc 放弃输入并返回 PDF |
| + / =、− | 放大、缩小,每次 25 个百分点,范围 25%–300%;不带 Ctrl/⌘ |
| F | 打开文档搜索 |
| O | 打开 / 关闭目录 |
| Q | 打开问答并聚焦提问框;有选区时附上选区,不自动发送问题 |
| X | 保留当前对话到历史,开始新对话、打开问答并聚焦输入框;有选区时自动引用,不自动发送。正在生成时先取消旧请求,保留已有内容 |
| T | 翻译当前文字或区域选区,使用当前目标语言 |
| E | 保存当前选区的高亮 |
| R | 为当前选区添加批注,聚焦备注输入框 |
| Esc | 退出当前一层;关闭搜索、目录或弹窗后恢复 PDF 焦点,不改变阅读滚动位置 |
搜索: F → 输入关键词 → Enter 进入结果浏览。输入框里的 A/D/W/S 是普通文字,不切换结果;浏览结果时 D/→/S/↓ 下一个,A/←/W/↑ 上一个,支持首尾循环,Enter/Shift+Enter 也可切换。此时 A/D 不翻 PDF 页,F 返回输入框并选中关键词,Esc 关闭搜索并回到当前命中位置的 PDF。没有匹配时保留输入焦点。选择结果后会等待页面文字层就绪,滚动到命中文字所在位置,并以黄色显示当前页的关键词,当前结果使用更醒目的黄色边框;搜索浏览时面板收紧高度,尽量避免挡住原文。缩放或重新加载页面文字层后,标记会重新计算。Esc 关闭搜索后保留最近一次标记,输入新关键词或切换文档时清除;搜索标记不写入书签/批注。仅目录能命中而正文编码无法还原、扫描页或 Office 转换页无法匹配时,会明确提示不能精确定位/标黄,不猜测文字坐标。
逐层退出: 批注编辑中第一次 Esc 返回批注列表,第二次 Esc 关闭列表并返回 PDF;保存中不关闭编辑器。从提问框按 Esc 先移除待提问引用(若有),否则关闭问答面板,并把焦点还给 PDF;提问草稿和正在生成的回答保留。长按翻页、滚动、缩放或切换搜索结果可以重复执行;长按 Esc 不会连退多层,长按 F/Q/X/R/G 不会向新打开的输入框灌入字母。
W/A/S/D 与本插件提供的 ↑/←/↓/→ 快捷操作对应,包括 Alt+A/D 阅读历史。系统文本编辑及输入框光标移动保持原有行为;Ctrl/⌘ 组合键保留给系统和浏览器,Ctrl/⌘+F 仍是浏览器页面查找。框选区域开始时会主动聚焦 PDF,便于松开 Ctrl/⌘ 后直接使用 Q/X/T/E/R。
文件类型
| 类型 | 原貌视图 |
|---|---|
.pdf |
PDF.js 渲染,可单页或连续页查看,可框选文字 |
.docx |
经 Office 转 PDF 后用 PDF.js 查看,可框选 |
.pptx |
经 Office 转 PDF 后用 PDF.js 查看,可框选 |
.doc / .ppt |
经 Office 转 PDF 后用 PDF.js 查看,可框选(需要 Office 服务) |
Markdown 和纯文本没有原貌页面,本版本不再支持打开。没有 Office 转 PDF 服务时,.docx / .pptx 无法显示原貌,会提示改用可转换的文档。扫描版 PDF 没有文本层,原貌可以看到页面,但无法框选文字(本插件不做 OCR)。
配置
配置写在 profile 的 cordis.patch.yml 中本插件的行上;未写的字段使用默认值。改配置后需要重载 Host。
- id: study-reader
name: 'study-reader'
config:
defaultTargetLanguage: zh-CN
maxDocumentBytes: 0
maxPdfPages: 500
maxPdfChars: 2000000
learningContextChars: 24000
lookaheadChars: 6000
rereadContextChars: 48000
translationContextChars: 6000
maxAnswerTokens: 4096
maxTranslationTokens: 1200
temperature: 0.3
cacheDocuments: 8
visionPages: true
visionMaxPages: 4
adaptiveReading: true
readingMaxRounds: 3
readingMaxPages: 8
maxInputTokens: 196608
readingTotalTokens: 786432
| 字段 | 默认 | 含义 |
|---|---|---|
readingPositionDirectory |
空(使用 profile 数据目录) | 阅读位置的独立存储目录;与批注目录分开保存 |
annotationDirectory |
空(使用 profile 数据目录) | 批注的独立存储目录;可选绝对路径 |
defaultTargetLanguage |
zh-CN |
翻译目标语言的初始值 |
maxDocumentBytes |
64 MiB(代码默认) | 单个源文件大小上限;0 表示不限制(见下方说明) |
maxPdfPages |
500 | PDF 最多解析页数 |
maxPdfChars |
2,000,000 | PDF 最多提取字符数 |
learningContextChars |
24,000 | 学习模式完整文档上下文上限(含目录、标记、预览);自主补读时初始最多 8,000 字 |
lookaheadChars |
6,000 | 学习模式后文预览上限,同时不超过正文可用预算的 1/4;可设 0 |
rereadContextChars |
48,000 | 重读模式完整文档上下文上限;自主补读时初始最多 8,000 字 |
translationContextChars |
6,000 | 翻译时提供的前后文字符上限 |
maxAnswerTokens |
4,096 | 单次问答的输出上限(推理占用的 token 也计入;为空时会自动用 2 倍预算重试一次) |
maxTranslationTokens |
1,200 | 单次翻译的输出上限 |
temperature |
0.3 | 生成温度 |
cacheDocuments |
8 | Host 内存中保留的已解析文档数 |
visionPages |
true |
是否允许 PDF 图片;框选截图优先附加,无框选时按图表/公式问题或文字稀缺程度选择当前页图片 |
visionMaxPages |
4 | 单次问答累计图片数上限(含初始图片和补读图片),同时受附件服务上限约束 |
adaptiveReading |
true |
是否启用工具补读;关闭则使用原上下文上限直接作答 |
readingMaxRounds |
3 | 最多补读轮数,范围 1–6;之后撤去工具并作答 |
readingMaxPages |
8 | 累计全文/图片补读的不同阅读单元上限,范围 1–20;初始上下文和搜索摘要由 Token 预算约束 |
maxInputTokens |
196,608(192K) | 每次模型调用的完整输入估算上限,含系统提示、历史、工具、结果、图片;实际仍按模型窗口和输出预留收紧 |
readingTotalTokens |
786,432(768K) | 各轮输入输出的累计预算;没有实际用量时保守按估算输入与输出上限计数 |
maxDocumentBytes 的代码默认是 64 MiB,用来避免误打开超大文件时 Host 和浏览器同时占用过多内存。设为 0 即取消这个插件级限制;随包提供的 cordis.patch.yml 将其设为 0,profile 配置可覆盖该值。PDF 的原貌预览会走 Range,不再把整份文件读进浏览器;但文字提取和 Office 转换仍会在 Host 读入文件,100 MB 以上的文档首次准备可能较慢。
问答和翻译使用研读中选择的模型,目录来自 DSH“设置 → 模型”中已配置的提供商;“跟随 DSH 默认模型”在每次请求时解析当前默认选择。没有默认模型时仍可手动选择已配置模型。每段对话记住自己的选择;模型被移除时会提示重新选择,不会静默切到其他供应商。
已知限制
- 原貌阅读不支持文字重排、文档编辑、批注导出或跨设备同步;Markdown 和纯文本不在支持范围内。
- 目录、搜索与文字选区依赖可提取文字。扫描页和缺失 Unicode 字形映射的 PDF 可能只能显示原貌,无法搜索正文或选中文字;可使用 Ctrl/⌘ 框选截图配合图片模型提问。
- PDF 目录优先使用内嵌书签,否则按字号识别;启发式识别可能遗漏或误判标题。目录最多保留 3 层、300 条。
- 问答需要等待文字提取完成。读图要求模型声明支持图片,自主补读要求原生工具调用;文字乱码时,正文检索不能代替看图。
- Word / PowerPoint 转 PDF 后的物理页与提取单元可能不一致,目录、引用及上下文定位可能不够精确;无法确认时应核对原文。
- 大文档首次解析、页面图生成和密集文字层可能较慢,连续页与高倍率缩放会增加内存占用。实际性能取决于文档和硬件,不承诺固定加载时间。
- 长文上下文受字符和 Token 预算约束,可能遗漏细节;模型补读还受页数、图片数量和轮次限制。失败页会报告原因,整次请求预算不足时仍可能拒绝注入结果。
- 当前页图片补读(包括裁切)及后文图片在学习模式下保持禁读;用户主动引用的截图另按引用流程处理。学习范围和有界后文预览见“数据与隐私”。
- 搜索页内定位和标黄依赖页面文字层匹配;仅目录命中、乱码或 Office 页码映射不准确时,不能保证精确定位。
- 模型是否返回思考过程取决于接口支持;推理也占用输出预算。模型回答和引用仍须人工核对。
- 加密 PDF 暂不提供密码输入流程,请先通过系统阅读器处理。
- 请求上下文记录只在 Host 内存保留;重启或缓存淘汰后,旧回答的“查看注入的上下文”会失效。本地数据位置与清理方式见“数据与隐私”。
开发与验证
源码无需构建,Host 入口为 index.js,Client 入口为 client.js,业务逻辑位于 lib/。PDF 页面由 PDFium 渲染,PDF.js 提供文字层与目录;模型请求通过 DSH 的 LLM 和附件服务发送。
npm ci
npm run check
npm test
node scripts/audit-history.mjs
npm pack --dry-run
npm run check:版本、锁文件、运行时版本引用和发布文件清单一致性。npm test:多会话存储、编辑重问/分支、生命周期与恢复、所选模型路由、搜索文字映射、快捷键策略、批注、引用、上下文边界、图片逐页失败隔离、原生工具续接和 Host HTTP 回归。模型由离线协议桩提供,不能替代真实供应商或浏览器操作验收。- 历史扫描工具与审查记录:检查当前 refs 可达的 Git 历史;扫描是规则启发式,不是无敏感信息保证。
npm pack --dry-run:检查实际发布包,测试及本地调试材料不作为运行文件分发。
当前已通过本机自动回归与清单/打包检查。1.16.4 已在运行中的 DSH 使用真实文档和模型完成多页读图、公式转换与临时书签接口复测,结果与边界见验收记录。尚未完成公开 GitHub 地址的全新 profile 安装验收;跨平台兼容性与真实浏览器目视/交互验收需分别验证。已验证环境见“安装与兼容性”。
运行依赖包括 katex(MIT,本地提供公式脚本、样式和字体)、pdfjs-dist(Apache-2.0)、@hyzyla/pdfium(MIT wrapper,PDFium BSD-3-Clause)和 @napi-rs/canvas(MIT);依赖自身的许可证仍然适用。
版本遵循 SemVer,以 package.json 为唯一版本来源,发布变更见 CHANGELOG.md。开发中的截图、性能探针和一次性调查笔记请放在忽略的 .local/ 目录;正式回归测试保留在 scripts/。
No comments yet. Be the first to write one.