dsh-ai-library

toolstested: passnpmMIT

Local library panel for DSH: indexes files and artifacts into a searchable card tree with PDF, Office and image preview, plus paper search across arXiv/OpenAlex/Crossref and others, web-page archiving to markdown snapshots, a plugin-market tab, and one-click switching for resources found in installe

下载量 / Downloads
1,903
依赖体积 / node_modules
4.81 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-ai-library

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

dsh-ai-library · 资料馆

仓库:<https://github.com/Instant-KING/dsh-ai-library> · npm:dsh-ai-library

把本地多源资料库渲染成 DeepSeek Harness 的原生面板:左侧三级分类树、中间卡片网格、右侧预览(自带 pdf.js 阅读器),支持条目编辑与拖拽分组。

  • 自带 pdf.js 4.10.38,不需要外网 CDN
  • Markdown 现场渲染、Office 文件转 PDF 预览
  • 拖拽卡片改分组、批量打标签、新建/编辑/删除条目
  • 数据全部留在本地;除你主动检索 / 手动同步市场 / 存网页快照外不联网(论文检索请求公开 API,AnySearch 匿名请求,见下文 key 配置;网页正文可交给 DSH 的 read_page 抽取,此时本插件自身不发请求)

大肥鱼会替你做这些

  • 像妈妈一样的大肥鱼:你把东西弄得到处都是,它会把东西收好 —— 本机产物自动入库、自动分类、随时能搜。
  • 要搜好用的插件? 大肥鱼自己去插件市场翻,卡片上直接写清 star、版本、兼不兼容。
  • 要写漂亮的前端组件? 把 react-bits 这类仓库丢进来建库,大肥鱼就在馆藏里搜现成组件来做页面 UI —— 不用从零抄。
  • 要搜真实存在的论文? 大肥鱼自己调十个源的 API(arXiv / OpenAlex / Crossref / DOAJ / Europe PMC / INSPIRE / Zenodo / HAL / DataCite / OpenAIRE),带 DOI 和 PDF 链接,不会编文献。

安装

三种方式,选一种(装完重启 DSH):

# ① npm(推荐)
dsh plugin --profile desktop add dsh-ai-library

# ② 直接从 GitHub
dsh plugin --profile desktop add github:Instant-KING/dsh-ai-library

# ③ 本地目录(开发用,不装包)
# clone 后在 profile 的 cordis.patch.yml 里用绝对路径 insert:
#   - insert:
#       - id: dsh-ai-library
#         name: E:/path/to/dsh-ai-library/lib/index.js

装完第一次打开面板会自动建空库;把文件丢进 <下载目录>/ai-library/items/ 就能看到。

论文检索需要配哪些 key

十个学术源(arXiv / OpenAlex / Crossref / DOAJ / Europe PMC / INSPIRE / Zenodo / HAL / DataCite / OpenAIRE)免 key 直接用。

下面几个是可选的付费/受限源,不配只是查不到它的结果,不会报错:

平台 · 配置项 · 去哪申请 · 用途

Sciverse · paperKeys.sciverse(sv- 开头) · <https://sciverse.space/> → 开发者控制台 · 元数据 + 语义检索(RAG) + 读原文

IEEE Xplore · paperKeys.ieee · <https://developer.ieee.org/> · IEEE 论文

ScienceDirect · paperKeys.elsevier · <https://dev.elsevier.com/> · Elsevier 期刊

Springer · paperKeys.springer · <https://dev.springernature.com/> · Springer 论文

AnySearch(可选) · paperKeys.anysearch · <https://www.anysearch.com/console/api-keys> · 网页检索;留空也能用(匿名免费配额)

两种填法(任选)

1. 面板里填:工具栏「论文检索」→ 右上角「配置 key」→ 粘贴 → 保存(立即生效,不用重启)

2. 改文件:插件目录 config.json

{
  "paperKeys": {
    "sciverse": "sv-你的token",
    "ieee": "",
    "elsevier": "",
    "springer": "",
    "anysearch": ""
  }
}
⚠️ 语义检索(RAG)只支持 Sciverse:没配 sciverse 时面板提示「需要 sciverse key」,
接口返回 400 并说明原因,不会静默失败。

配置

插件目录下的 config.json(可不建,全部字段都有默认值)。参考 [config.example.json](config.example.json)。

字段 · 默认 · 说明

root · <下载目录>/ai-library · 数据根目录,其余路径从它推出

libraryFile · <root>/library.js · 手写条目

projectFile · <root>/project-items.js · 批量导入条目(可选)

marketFile · <root>/market-items.js · 市场同步产物(可选)

githubFile · <root>/github-items.js · GitHub 项目同步产物(可选)

userItemsFile · <root>/user-items.json · 面板编辑器写入的条目

itemsDir · <root>/items · 文件根目录(只允许读这里)

cacheDir · <root>/.cache · 缓存

translateCache · <cache>/translate · 翻译产物

marketCache · <cache>/market.json · 市场原始目录缓存

vendorDir · <插件>/vendor · 内置 pdf.js / three.js

soffice · 自动探测 · LibreOffice 可执行文件(Office 转 PDF)

motionDir · 空(关闭) · 外部只读挂载的提示词库

translateUrl · http://127.0.0.1:11008 · PDFMathTranslate 服务

workspaceDir · 空 · 自动入库扫描的根目录

watchDirs · [] · 自动入库监听的目录

autoCaptureOnBoot · false · 启动后自动扫一次 watchDirs

autoCaptureProject · 自动入库 · 自动入库的分组名

autoCaptureDepth · 2 · 自动入库递归深度

toolsEnabled · true · 是否注册 14 个 AI 工具

marketUrl · https://api.dshmk.com/ · 插件市场源

marketEnabled · false · 是否自动同步市场(默认关,开了启动后自动拉)

marketLimit · 300 · 市场最多收录条数

marketTtlMs · 6 小时 · 市场缓存有效期

paperKeys · {} · { ieee, elsevier, springer },论文检索用

所有路径字段都支持 ~(会展开成用户主目录)。环境变量(优先级高于 config.json):

AILIB_ROOT  AILIB_MOTION_DIR  AILIB_WORKSPACE  SOFFICE  PDFMATHTRANSLATE_URL
论文检索已内置(lib/paper.js,纯 Node),不需要 Python,也不需要外部项目。
🔐 密钥说明:config.json 里的 paperKeys(Sciverse / IEEE / Elsevier / Springer / AnySearch)
以明文保存在插件目录,同名项目通常都是这样。请确保该目录权限不被他人读取;
如果插件装在共享盘或多用户机器上,建议改用环境变量 SCIVERSE_API_TOKEN 等方式,或只填需要的 key。

主色(主题)

面板的主色(高亮、选中态、极光背景)来自 CSS 变量 --ailib-accent,解析顺序:

config.json 的 accent(或环境变量 AILIB_ACCENT)
  ↓ 没填
DSH 主题变量 --dsw-alias-brand-primary / --dsw-static-deepseek-500(DSH 若暴露了就用它)
  ↓ 都没有
插件默认金色 #e6c16f(视觉与旧版完全一致)

想让插件跟 DSH 品牌色一致,在 config.json 里写:

{ "accent": "#4176E6" }

按钮尺寸、圆角、动效都不变,只换主色;极光背景的主色也会跟着变。

表情包图集(与 dsh-meme 联动)

左侧「表情包图集」直接列出 dsh-meme 的图集(内置包 + ~/.dsh/meme-packs 下你导入的):

  • 选一个图集 → 主区显示封面、张数、图片网格
  • 点「启用这个图集」→ 写 ~/.dsh/dsh-expression.json 的 enabledPacks,表情包插件立即生效
  • 「导入图集…」填一个解压好的目录路径(需含 index.db),会复制进 ~/.dsh/meme-packs/<id>
  • 「删除」只删用户导入的包,内置包删不掉

数据格式

library.js 是普通 JS:

window.LIBRARY = {
  title: '我的资料库',
  items: [
    {
      id: 'k-1',                 // 唯一,必填
      kind: 'paper',             // paper / plugin / doc / note …
      status: 'available',
      title: '一维谐振子',
      summary: '升降算符解法',
      source: 'arXiv',
      tags: ['量子力学'],
      notes: ['摘自2026-03讲座'],
      files: ['items/papers/harmonic.pdf'],   // 相对 items/
      preview: {
        variants: [
          { label: '原文', src: 'papers/harmonic.pdf' },
          { label: '笔记', src: 'notes/harmonic.md' },
        ],
      },
    },
  ],
  groups: {
    'k-1': '力学',               // id → 子分类,不写就落到「未分类」
  },
}

把文件丢进 <root>/items/,条目里写相对路径即可。

合并优先级

多个数据源按顺序合并,后写的覆盖先写的:

  外部挂载源  <  批量导入  <  市场同步  <  GitHub  <  library.js  <  user-items.json

user-items.json 优先级最高,所以编辑器改的东西永远生效,但不会动你的 library.js。


编辑

操作 · 入口

新建 · 面板右上「+ 新建」

编辑 · 卡片右上 ✎

删除 · 卡片右上 🗑(手写条目会被隐藏,源文件不动)

改分组 · 把卡片拖到左栏分组行

多选 · 卡片右上 +,或 Ctrl + 点击卡片

批量 · 选中后顶部出现:改分组 / 加标签 / 删除

删 user-items.json 即可回到「只有 library.js」的原始状态。

系统提示词

装载后本插件会往宿主注册一个 ai-library 提示词片段(ctx.inject(['systemPrompt'], …),order 160),

告诉 AI:本机新建/修改的文件要在回话前入库,并给出各场景该用哪个工具(library_import / library_autocapture / library_repo_build / library_save_url / `library_pape

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::8,最后更新 2026-10-19

Links

GitHub · Homepage · npm

Same category