llm-wiki-lib — LLM-powered Wiki SDK
A Rust crate for building AI-native knowledge bases. Ingest documents, query your wiki with natural language, and lint for health issues — all powered by LLMs.
Overview
源文档 (PDF/MD/HTML/TXT)
↓ Ingest Pipeline
LLM (Claude/GPT) — 结构化摘要 + 知识沉淀
↓
wiki/*.md — AI 生成的知识 Markdown
↓ Query Pipeline
用户提问
↓ LLM 读取 wiki 内容 → 生成回答
Three Pipelines
1. Ingest Pipeline
将源文档转换为结构化知识页面:
1. 读取源文件(PDF / Markdown / HTML / TXT / JSON / CSV)
2. 提取纯文本内容
3. 调用 LLM,发送:
- system_md(AI 行为准则)
- 源文档内容(截断至 8000 字符)
- 任务指令(生成 wiki 页面)
4. LLM 生成 Markdown,写入 wiki/ 目录
2. Query Pipeline
自然语言问答:
1. 读取 wiki/ 下所有 .md 文件
2. 将内容注入 LLM prompt
3. LLM 综合知识回答问题
4. 返回回答 + 来源文件列表
3. Lint Pipeline
健康检查(静态分析,无需 LLM):
- 断链检测(
[[wikilink]]指向不存在的文件) - 重复标题检测(文件内 + 跨文件)
- 空文件告警
- 缺少
<!-- source: ... -->元数据 - 内容过短占位符
Configuration
TOML 文件 (~/.config/wind/config.toml):
[]
[]
= "anthropic" # 或 "openai"
= "claude-haiku-4-20250514"
= "sk-ant-..."
# 可选:兼容 API(如 OpenRouter)
# base_url = "https://openrouter.ai/api/v1"
[]
= "~/.local/share/wind/wiki" # 知识库目录
= "~/.local/share/wind/workspace" # 源文件目录
= "~/.config/wind/SYSTEM.md" # AI 行为准则
环境变量(优先级更高):
Rust API
use Wiki;
let wiki = new.await?;
// Ingest: 文档 → wiki 知识
let result = wiki.ingest.await?;
println!;
// Query: 自然语言问答
let answer = wiki.query.await?;
println!;
// Lint: 健康检查
let report = wiki.lint.await?;
println!;
// Status: 统计
let status = wiki.status?;
println!;
CLI
# 安装 SDK 后运行示例 CLI
# 或直接使用 wind-cli wiki 子命令
Dependencies
llm-wiki-lib
├── reqwest (HTTP → Anthropic/OpenAI API)
├── lopdf (PDF 文本提取)
├── scraper (HTML 文本提取)
├── tokio (async runtime)
├── directories (跨平台路径)
└── chrono (时间戳)
Directory Structure
~/.local/share/wind/
├── workspace/ ← 用户源文件
│ ├── greeting.txt
│ └── notes/
└── wiki/ ← AI 生成的知识 Markdown
├── Q1摘要.md ← Ingest 生成
└── SYSTEM.md ← AI 行为准则
License
MIT OR Apache-2.0