个人文章复用知识库项目骨架。
RawSource -> SourceBlock -> Note -> NoteUnit -> EvidenceRef -> Search -> Review
第一版只实现:原文保存、原文块解析、可读笔记生成、笔记单元拆分、证据绑定、轻量检索、基础问答、ReviewItem 记录。
不实现:TopicPage 自动生成、StructuredObject 自动生成、API/MCP、企业级权限审计、多租户、向量库、真实 LLM 调用。
uv sync
uv run pytest
uv run python -m article_kb.app.main --helpuv run python -m article_kb.app.main ingest tests/fixtures/sample_article.md --title "样例文章"
uv run python -m article_kb.app.main query "这篇文章讲了什么"
uv run python -m article_kb.app.main review-list普通问题默认优先检索 NoteUnitIndex。包含“依据、原文、证据、准确、冲突、来源、引用”等词的问题会强制回源检索 SourceBlockIndex。包含“数字、指标、核对、投资、安全、政策、统计、对比”等词的问题会同时检索 NoteUnit 和 SourceBlock。
回答会输出 refs。NoteUnit 命中返回可用 EvidenceRef,SourceBlock 命中返回原文 block_id;当只有 weak / missing 证据或没有可靠上下文时,会写入 ReviewItem。
python -m http.server 8000打开 http://localhost:8000/interfaces/web/notes.html,页面会只读加载
data/notes.jsonl、data/source_blocks.jsonl、data/note_units.jsonl、
data/evidence_refs.jsonl 和 data/logs/llm_calls.jsonl。
如果直接用浏览器打开 HTML 导致本地 fetch 被限制,可以在页面中选择这些 JSONL
文件手动加载。
src/article_kb/app/ 启动、配置、依赖装配
src/article_kb/domain/ 领域对象、枚举、端口
src/article_kb/runtime/ 导入、问答、Review 主流程编排
src/article_kb/parsing/ 原文解析
src/article_kb/notes/ 笔记分类、计划、生成、拆分
src/article_kb/evidence/ 证据绑定与校验
src/article_kb/retrieval/ 查询路由、检索、上下文组装、回答生成
src/article_kb/storage/ JSONL 持久化与 SQLite FTS 索引
src/article_kb/adapters/ 外部能力占位适配