Files
2026-07-12 21:26:08 +08:00

186 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Wiki Schema(知识库配置规范)
> 这个文件告诉 AI 如何维护你的知识库。你和 AI 可以一起调整它。
## 知识库信息
- 主题:{{TOPIC}}
- 创建日期:{{DATE}}
- 语言:{{LANGUAGE}}
- 版本:1.1
## 目录结构
```
{{WIKI_ROOT}}/
├── raw/ # 原始素材(AI 只读,不会修改)
│ ├── articles/ # 网页文章
│ ├── tweets/ # X/Twitter 内容
│ ├── wechat/ # 微信公众号文章
│ ├── xiaohongshu/ # 小红书内容
│ ├── zhihu/ # 知乎内容
│ ├── pdfs/ # PDF 文件
│ ├── notes/ # 手写笔记
│ └── assets/ # 图片等附件
├── wiki/ # 知识库主体(AI 写,你看)
│ ├── entities/ # 实体页(人物、组织、概念)
│ ├── topics/ # 主题页(研究主题、知识领域)
│ ├── sources/ # 素材摘要页(每个素材一篇摘要)
│ ├── comparisons/ # 对比分析页
│ └── synthesis/ # 综合分析页
├── index.md # 内容索引(目录)
├── log.md # 操作日志(时间线)
└── .wiki-schema.md # 本文件(配置规范)
```
## 页面命名规范
- 实体页:`wiki/entities/{名称}.md`
- 例:`wiki/entities/知识构建.md``wiki/entities/Transformer.md`
- 主题页:`wiki/topics/{主题名}.md`
- 例:`wiki/topics/AI编程工具.md``wiki/topics/大语言模型.md`
- 素材摘要:`wiki/sources/{日期}-{短标题}.md`
- 例:`wiki/sources/2026-04-05-karpathy-llm-wiki.md`
- 对比分析:`wiki/comparisons/{对比主题}.md`
- 例:`wiki/comparisons/工具选型.md`
- 综合分析:`wiki/synthesis/{分析主题}.md`
- 例:`wiki/synthesis/AI工具选型建议.md`
## 交叉引用规范
- 页面间使用 `[[页面名]]` 语法(Obsidian 兼容的双向链接)
- 素材引用格式:`[来源: 素材标题](../sources/xxx.md)`
- 每个页面底部维护"相关页面"列表
## 页面格式规范
每个 wiki 页面应包含:
```markdown
---
tags: [标签1, 标签2]
created: YYYY-MM-DD
updated: YYYY-MM-DD
sources: [关联素材列表]
---
# 页面标题
> 一句话摘要
## 正文内容
...
## 相关页面
- [[另一个页面]]
- [[又一个页面]]
```
## Ingest(消化素材)规则
### 分级处理
根据素材长度和信息密度自动分级:
**完整处理**(素材 > 1000 字):
1. 每个新素材**必须**生成摘要页(`wiki/sources/` 下)
2. 从素材中提取 3-5 个关键概念
3. 检查是否需要创建新的实体页(`wiki/entities/`
4. 检查是否需要创建或更新主题页(`wiki/topics/`
5. 更新 `index.md`(添加新条目)
6. 更新 `log.md`(记录操作)
7. 更新 `overview.md`(如果知识库全貌有变化)
**简化处理**(素材 < 1000 字,如短推文、小红书笔记):
1. 生成摘要页(`wiki/sources/` 下)
2. 提取 1-3 个关键概念
3. 如果关键概念已有实体页,追加信息;如果没有,在摘要页中标记 `[待创建]`
4. 更新 `index.md``log.md`
5. 跳过主题页和 overview 更新
### 来源边界
这套边界和安装输出、状态说明、回归测试保持一致。
| 分类 | 当前来源 | 处理原则 |
|------|----------|----------|
| 核心主线 | `PDF / 本地 PDF``Markdown/文本/HTML``纯文本粘贴` | 不依赖外挂,直接进入主线 |
| 可选外挂 | `网页文章``X/Twitter``微信公众号``YouTube``知乎` | 先自动提取;失败时退回手动入口 |
| 手动入口 | `小红书` | 只接受用户手动粘贴 |
### 素材类型路由
| 来源 | raw 目录 | 提取方式 |
|------|----------|----------|
| 网页文章 | `raw/articles/` | baoyu-url-to-markdown skill |
| X/Twitter | `raw/tweets/` | baoyu-url-to-markdown skill(需 Chrome 登录) |
| 微信公众号 | `raw/wechat/` | wechat-article-to-markdown |
| YouTube | `raw/articles/` | youtube-transcript skill |
| 小红书 | `raw/xiaohongshu/` | 用户手动粘贴内容 |
| 知乎 | `raw/zhihu/` | 用户手动粘贴内容 或 baoyu-url-to-markdown skill |
| PDF / 本地 PDF | `raw/pdfs/` | 直接读取 |
| Markdown/文本/HTML | `raw/notes/` | 直接读取 |
| 纯文本粘贴 | `raw/notes/` | 直接使用 |
## 别名词表(Alias Table
用于 query 和 digest 时自动展开搜索。搜索任意一个词,会同时搜索同一行的所有别名。
AI 在 ingest 时如果发现新的同义词关系,可以建议用户添加。
格式:每行一组同义词,用 `=` 分隔。
```
LLM = 大语言模型 = 大模型 = Large Language Model
RAG = 检索增强生成 = Retrieval Augmented Generation
fine-tuning = 微调 = 精调
prompt engineering = 提示工程 = 提示词工程
```
维护原则:
- 只收录在你的知识库里**实际出现过**的同义词,不要预填一堆用不到的
- 每组控制在 5 个以内,太多说明概念本身需要拆分
- 中英文混用时把最常用的放第一个
- ingest 发现新的同义词关系时,AI 应主动建议添加到此表
## Query(查询)规则
1. 先读 `index.md`,定位相关条目
2. 用 Grep 在 `wiki/` 下搜索关键词
3. 阅读相关页面后综合回答
4. 回答中标注来源页面(引用链接)
5. 有价值的分析建议保存为新的 wiki 页面
## Lint(健康检查)规则
1. 检查范围:随机抽查 10 个页面 + 最近更新的 10 个页面
2. 检查项:
- 页面间矛盾(不同页面说法不一致)
- 孤立页面(没有其他页面链接到它)
- 缺失概念页(被 `[[某概念]]` 链接但实际不存在)
- 缺少交叉引用(相关页面之间没有互相链接)
- index 一致性(index.md 记录与实际文件是否对应)
3. 输出中文报告,对每个问题给出修复建议
4. 如果发现问题,询问用户是否自动修复
## 关系类型词汇表(可选,用于手动标注知识图谱)
这张表提供 graph 工作流生成的 `wiki/knowledge-graph.md` 里**可选**的关系类型词汇。
AI 生成图谱时默认全部用 `-->`(无标注),不自动判断关系类型。如果你想让图谱
更清楚地表达节点之间的语义,可以用编辑器把最重要的几条箭头改写成带标注的形式:
| 类型关键词 | 含义 | Mermaid 写法示例 |
|-----------|------|-----------------|
| 实现 | A 是 B 的具体实现 | `A -->|实现| B` |
| 依赖 | A 依赖 B 才能工作 | `A -->|依赖| B` |
| 对比 | A 与 B 是同类可以比较 | `A -->|对比| B` |
| 矛盾 | A 与 B 存在观点冲突 | `A -->|矛盾| B` |
| 衍生 | A 从 B 演化而来 | `A -->|衍生| B` |
使用原则:
- 只标最重要的 3-5 条关系,不要强行给所有箭头打标
- 不确定的关系保持默认 `-->` 箭头
- 自定义类型控制在 2 个以内,避免词汇表膨胀
- 标注后在 Obsidian / VS CodeMarkdown Preview Enhanced/ Typora 里重新渲染就能看到标签