← Back to home@UnKnownFish125

dsh-literature

DSH literature/knowledge plugin: 文献→证据→知识管理(独立 literatum server + Web UI + agent 工具)

Stars
0
Language
Python
Created
Sep 1, 2026
Updated
Sep 9, 2026
GitHub repo

Introduction

dsh-literature — 完整知识库与归档体系

DeepSeek Harness 的 知识库 + 归档中枢插件:管理「原料 → 归档 → 加工 → 知识」全生命周期, 与 deepmemory 专属对接(deepmemory 是原料来源之一,literature 是知识的组织者)。

定位:独立插件(deepmemory 派生,不并入 dsh-deepmemory)。 复用 deepmemory 的部署/鉴权/代理范式,存储与 API 完全独立(独立 sqlite、独立端口 6260)。


分层体系(v0.3+)

原料层(收)
 ├─ 文献/文档(import bibtex/doi/附件)
 └─ deepmemory 专属对接(export-archive → 记忆+原始对话作为原料)

归档层(存原文,不向量化,可溯源)
 ├─ memory_archive(deepmemory 原料归档:memory_id 溯源锚点 + sources 脱敏原文)
 └─ documents / evidence(文献原文 + 证据,位置可配置 archive.dir)

加工层(夜间)
 ├─ literature_nightly.py(deepseek 低谷价 + flash-0731 经 uuapi)
 └─ raw → knowledge(带 source_memory_id 溯源,可读的中文提炼)

知识库(检索)
 ├─ knowledge_items(concept/summary/notes + 批注/使用次数/评分)
 ├─ categories(分类树,动态可配置深度;bias=global 全局,其余按工作区)
 ├─ parent_id / node_depth / node_kind(知识内部父子层级)
 ├─ knowledge_relations(关系边:相关/影响 等)
 └─ FAISS jina 768 维向量(独立索引,语义检索 RRF 融合 FTS)

派生链:原料(记忆/文献) → 归档(原文+锚点) → 加工(夜间LLM) → 知识(树+向量) → 检索(RRF)


工作区与全局约束

维度规则
知识按 workspace_id 隔离(各工作区只见自己知识);读写按 ID 均校验(跨区 403/404)
bias全局行为约束库(v0.3 裁决 15):任何工作区可见全部 bias,不计入知识条数统计
统计count/workspaces 只算非 bias 且未归档知识
跨区访问默认隔离 + 许可制 ACL(resource_acl,一期只读 viewer,见 docs/dsh-literature-acl-v05.md)

架构

DSH Web (client.js) ──/lit-api──> Host (index.js, prefix 代理, Bearer token)
                                       │
           literature_server.py (6260, sqlite + FTS + FAISS + 附件 + 鉴权)
                                       │
            literature_domain.py(域模型 + CRUD + 图谱 + 分类树 + 隔离)
                                       │
         literature_upstream.py(deepmemory 上游只读,6260 供 kb 查询)
组件路径说明
服务端literature-server/literature_server.pyHTTP 路由(kb/query、kb-search、documents、knowledge、categories、graph、archive-ingest/count、attachments 签名下载)
域层literature-server/literature_domain.py模型/CRUD/软删/图谱/分类树/树状知识/工作区隔离/bias 全局
向量literature-server/literature_vectors.pyFAISS jina 768 维(IndexFlatIP+IndexIDMap)
夜间加工literature-server/literature_nightly.pyraw→knowledge(flash-0731,低谷价)
原料 ingestliterature-server/literature_ingest.pydeepmemory export-archive → memory_archive(幂等去重)
自动关系literature-server/literature_relations.py向量相似度 → knowledge_relations 边(岛群图谱数据基础)
文件爬取literature-server/literature_upstream.pydeepmemory 上游只读共享层
Web 插件web-plugin/(client.js 四视图 + /lit-api 代理)文档/知识/图谱/状况 + 配置页
Agent 工具agent-preset/kb-plugin/plugin-v1.jskb_query/browse/constraints/contracts/graph/archive_library

技术栈

  • Python:标准库 sqlite3 + http.server;FTS5 trigram;FAISS(向量)
  • Node:@deepseek-ai/*(web 插件);CJS + React.createElement(无 JSX)
  • 附件存储:data/attachments/;HMAC 签名 token(5 分钟 TTL);附件路由仅凭签名(window.open 可用)

API 概览(/v1/literature/*,经 /lit-api)

方法/路径行为
POST /documents / GET /documents?q=&workspace_id= / GET/PATCH/DELETE /documents/<id>文献 CRUD(FTS 检索 + workspace 硬过滤)
POST /evidence / GET/PATCH/DELETE /evidence/<id>证据 CRUD(含 zh_content 中文对照)
POST /knowledge / GET/PATCH/DELETE /knowledge/<id>知识 CRUD(含 annotation/use_count/rating + 树字段)
GET /knowledge/<id>/subtree知识子树(递归 CTE)
POST /knowledge/<id>/use / /rate使用次数 / 评分
GET /categories / POST /categories / PATCH/DELETE /categories/<id> / GET /categories/<id>/subtree分类树 CRUD + 子树
GET /kb-search / POST /kb/query语义检索 / N3 hybrid(本地知识+deepmemory RRF)
GET /kb/browse / constraints / contracts / graphdeepmemory 目录 / bias 全局约束 / 契约 / 上游图谱
GET /knowledge-browse / knowledge-count / workspaces本地知识枚举(含归档)/ 计数(排除 bias)/ 宿主工作区(含 title)
POST /archive-ingest / GET /archive-count / archive-memories原料归档 ingest/枚举/计数
POST /archive-library库级归档(要求 workspace_id,bias 拒归档)
POST /attachments / GET /attachments/<file>?t=附件上传 / 签名取回(仅凭签名)
GET /documents/<id>/attachment-url生成签名下载 URL
GET /graph?workspace_id=&library=知识图谱(library 过滤 + bias 全局节点)
GET /config-schema / `GETPOST /config`

安装与部署

生产(6260 单服务)

mkdir -p /www/dsh-literature-deploy/literature-server
cp literature-server/*.py /www/dsh-literature-deploy/literature-server/
# systemd dsh-literature.service,LITERATURE_SERVER_PORT=6260
#   LITERATURE_MEMORY_URL=6230(deepmemory 上游) + LITERATURE_MEMORY_API_TOKEN_FILE
# web 插件 → vendored:
#   /www/dsh/home/profiles/web/node_modules/.pnpm/dsh-literature@*/node_modules/dsh-literature/

测试机(6263 隔离)

dsh-test-literature.service,LITERATURE_SERVER_PORT=6263,上游 6240(deepmemory 测试)。

验证

TOKEN=$(cat data/api-token)
curl -s -H "Authorization: Bearer $TOKEN" http://127.0.0.1:6260/v1/literature/knowledge-count?workspace_id=<host-ws>

关键决策文档

  • docs/dsh-literature-model-v03.md — 分层体系 + 分类树 + 权限设计
  • docs/dsh-literature-tree-knowledge-v04.md — 树状知识(方案3:分类树 + 知识分层)
  • docs/dsh-literature-acl-v05.md — 跨工作区访问(默认隔离 + 许可 ACL)