定泰 AI 知识库 — 系统架构与流程文档

系统总览

┌─────────────────────────────────────────────────────────────────────────┐
│                        定泰 AI 知识库 系统                              │
│                                                                         │
│  投喂 ──→ 监控 ──→ 提取 ──→ AI分析 ──→ 消化 ──→ 同步 ──→ 构建 ──→ 部署  │
│                                                                         │
│  用户只需:1.启动监控  2.丢文件  3.等飞书通知后看网站                      │
└─────────────────────────────────────────────────────────────────────────┘

完整流程图

用户投喂素材
    │
    ├── 方式一:本地投喂 ──→ raw/articles/  或  raw/pdfs/
    ├── 方式二:共享盘投喂 ──→ \\Desktop-4qvmiga\视频共享\知识库投喂\
    └── 方式三:链接投喂 ──→ python link_digest.py <URL>
            │
            ▼
┌─────────────────────┐
│   FileWatcher       │  ← watchdog 监控 raw/ + 共享盘
│   file_watcher.py   │     检测到新文件后等待写入完成
└────────┬────────────┘
         │ 新文件事件
         ▼
┌─────────────────────┐
│  ProcessedTracker   │  ← 查 processed.json,已处理则跳过
│  processed_tracker  │
└────────┬────────────┘
         │ 未处理
         ▼
┌─────────────────────┐
│  FileExtractor      │  ← 按文件类型提取文本内容
│  file_extractor.py  │     PDF / Word / Excel / PPT / 图片(OCR) / SVG / 网页
└────────┬────────────┘
         │ 提取的文本
         ▼
┌─────────────────────┐
│   AIAnalyzer        │  ← 调用 LLM API (glm-5.1)
│  ai_analyzer.py     │     提取:摘要 / 核心观点 / 关键概念 / 相关主题
└────────┬────────────┘
         │ AI 分析结果
         ▼
┌─────────────────────┐
│  DigestWorker       │  ← 核心消化逻辑
│  digest_worker.py   │
│                     │
│  1. 生成素材摘要页   │  → company-wiki/wiki/sources/日期-文件名.md
│  2. 提取关键实体     │  → AI概念 + [[双链]]语法
│  3. 更新实体页       │  → company-wiki/wiki/entities/实体名.md
│  4. 矛盾检测        │  → ConflictDetector 检查新旧内容矛盾
│  5. 更新知识库索引   │  → company-wiki/index.md(自动更新统计数据)
│  6. 更新操作日志     │  → company-wiki/log.md
└────────┬────────────┘
         │ 消化完成
         ▼
┌─────────────────────┐
│  QuartzSyncer       │  ← 自动同步 + 构建 + 推送
│  quartz_syncer.py   │
│                     │
│  1. 同步页面文件     │  wiki/sources/  → quartz/content/sources/
│     (增量)          │  wiki/entities/ → quartz/content/entities/
│  2. 同步索引文件     │  index.md / log.md / overview.md
│  3. 构建 Quartz     │  npx quartz build → quartz/public/
│  4. Git 推送        │  git add → git commit → git push origin main
└────────┬────────────┘
         │ 推送成功
         ▼
┌─────────────────────┐
│  Cloudflare Pages   │  ← 自动部署(检测到 GitHub push)
│                     │     1-2 分钟后网站更新
└────────┬────────────┘
         │
         ▼
┌─────────────────────┐
│  飞书通知            │  ← FeishuNotifier 发送消化结果
│  feishu_notifier.py │     通知内容:文件名 / 生成页面 / 矛盾数量
└─────────────────────┘

         ▼
   用户查看网站
   https://company-wiki.pages.dev

目录结构

D:\yangzhen\workproject\软件工程\llm-wiki\
│
├── .env                          # API 配置(密钥、模型、端点)
│
├── company-wiki/
│   ├── auto/                     # 自动化脚本(核心代码)
│   │   ├── file_watcher.py       # 入口:文件监控主程序
│   │   ├── digest_worker.py      # 核心:消化执行器(编排全流程)
│   │   ├── ai_analyzer.py        # AI 分析器(调用 LLM)
│   │   ├── file_extractor.py     # 文件内容提取器(12 种格式)
│   │   ├── quartz_syncer.py      # Quartz 同步器(同步+构建+推送)
│   │   ├── conflict_detector.py  # 矛盾检测器
│   │   ├── processed_tracker.py  # 已处理文件追踪器
│   │   ├── feishu_notifier.py    # 飞书通知器
│   │   ├── config_loader.py      # 配置加载器
│   │   ├── link_digest.py        # 链接投喂工具(独立使用)
│   │   ├── config.yaml           # 配置文件
│   │   └── processed.json        # 已处理文件记录
│   │
│   ├── raw/                      # 投喂入口(放文件的地方)
│   │   ├── articles/             # 文本类文件(md/txt/docx/xlsx/pptx/png/svg...)
│   │   └── pdfs/                 # PDF 文件
│   │
│   ├── wiki/                     # 消化产出(知识库本体)
│   │   ├── sources/              # 素材摘要页(33 个)
│   │   ├── entities/             # 实体页(101 个)
│   │   ├── topics/               # 主题页(1 个)
│   │   ├── comparisons/          # 对比分析页(暂无)
│   │   └── synthesis/            # 综合分析页(暂无)
│   │
│   ├── index.md                  # 知识库索引(自动更新统计)
│   ├── log.md                    # 操作日志
│   └── 单人使用指南.txt           # 日常操作手册
│
└── quartz/                       # Quartz 静态网站(GitHub 推送源)
    ├── content/                  # 网站内容(由 QuartzSyncer 从 wiki/ 同步)
    │   ├── sources/              # ← 同步自 wiki/sources/
    │   ├── entities/             # ← 同步自 wiki/entities/
    │   ├── topics/               # ← 同步自 wiki/topics/
    │   ├── index.md              # ← 同步自 company-wiki/index.md
    │   └── log.md                # ← 同步自 company-wiki/log.md
    │
    ├── public/                   # 构建产出(npx quartz build 生成)
    │   ├── index.html            # 首页
    │   ├── sources/              # 素材摘要 HTML
    │   ├── entities/             # 实体页 HTML
    │   └── ...                   # CSS / JS / RSS / Sitemap
    │
    ├── quartz.config.ts          # Quartz 网站配置
    └── quartz.layout.ts         # Quartz 页面布局

模块职责

模块文件职责
文件监控file_watcher.pywatchdog 监控 raw/ 和共享盘,检测新文件触发消化
消化执行digest_worker.py编排全流程:提取→AI分析→生成页面→矛盾检测→同步推送
AI 分析ai_analyzer.py调用 LLM API 提取摘要、核心观点、关键概念、相关主题
文件提取file_extractor.py支持 PDF/Word/Excel/PPT/图片OCR/SVG/网页 等 12 种格式
Quartz 同步quartz_syncer.pywiki→content 同步 + Quartz 构建 + Git 自动推送
矛盾检测conflict_detector.py检测新旧内容矛盾,记录到 conflict_log.md
处理追踪processed_tracker.py记录已处理文件,防止重复消化
飞书通知feishu_notifier.py消化完成/失败时发送飞书群消息
链接投喂link_digest.py独立工具,投喂网页链接和飞书文档链接
配置加载config_loader.py读取 config.yaml,支持环境变量覆盖

支持的文件格式

格式扩展名提取方式
Markdown.md直接读取
纯文本.txt直接读取(支持 UTF-8/GBK/GB2312)
HTML.html/.htm直接读取
PDF.pdfPyPDF2 提取文本
Word.docx/.docpython-docx 提取段落和表格
Excel.xlsx/.xlsopenpyxl 提取工作表
PPT.pptx/.pptpython-pptx 提取幻灯片文本
图片.png/.jpg/.jpeg/.bmp/.gif/.tiff/.webpTesseract OCR 中文+英文
SVG.svgXML 解析提取文本节点
网页链接URLrequests + BeautifulSoup 爬取

AI 分析配置

# .env 文件
ANTHROPIC_AUTH_TOKEN=sk-xxx        # API 密钥
ANTHROPIC_BASE_URL=https://zapi.aicc0.com  # AI 中转端点
MODEL=glm-5.1                      # 使用的模型
 
# 可用模型:glm-5.1 / deepseek-v4-pro / kimi-k2.6 / minimax-m2.7

AI 分析返回四个维度:

  • summary:核心概述(一句话)
  • key_points:核心观点(3-5 条列表)
  • key_concepts:关键概念(用于生成实体页)
  • related_topics:相关主题(用于页面关联)

日常操作

每天早上

cd D:\yangzhen\workproject\软件工程\llm-wiki\company-wiki\auto
..\..\.venv\Scripts\python file_watcher.py

看到”文件监控已启动”后最小化窗口。

投喂素材

把文件丢进以下任一位置:

  • 本地raw/articles/(文本类)或 raw/pdfs/(PDF 类)
  • 共享盘\\Desktop-4qvmiga\视频共享\知识库投喂\ 对应子目录
  • 链接python link_digest.py <URL>

查看结果

投喂后等待,飞书通知到达后 1-2 分钟访问 https://company-wiki.pages.dev

下班

在监控窗口按 Ctrl+C 关闭。

全自动化链路

投喂文件 → file_watcher 检测 → file_extractor 提取文本 → ai_analyzer AI 分析
    → digest_worker 生成页面 + 更新索引 → quartz_syncer 同步到 Quartz
    → quartz build 构建 HTML → git push 推送 GitHub → Cloudflare Pages 自动部署
    → 飞书通知

用户全程无需手动操作 git 或构建命令。