llmwiki-suite
🌐 English · 中文
把一堆 Markdown 笔记编成「会生长、能问答」的个人知识库。
源自 Karpathy 的 LLM-wiki 思路:不做每次查询临时切片的 RAG,而是用工具链 持续编译笔记——补 frontmatter、建 BM25 + wikilink 图索引、巡检断链, 最后通过 CLI 或微信通道问答。
包名 vs 命令名:PyPI 发布名为
llmwiki-suite(llmwiki这个包名已被其他项目占用), 安装后执行命令仍然是llmwiki—— 即「装的是llmwiki-suite,用的是llmwiki」。
安装
已在 PyPI 发布。推荐直接装
serve版(核心 + 跑llmwiki serve需要的 fastapi/uvicorn,也是所有通道——微信/企微/飞书/Telegram 共用的运行时); 只看检索/巡检则装核心版即可(零依赖)。
# 推荐:一条命令装好【全部能力】(核心 + 通道时代 fastapi/uvicorn)
pip install "llmwiki-suite[serve]"
# 轻量:只装核心(ingest / index / query / lint / eval,零第三方依赖)
# pip install llmwiki-suite
要求 Python >= 3.11。
本地开发安装(源码)
推荐在项目级虚拟环境中安装(与 CI 同构、依赖隔离):
git clone https://github.com/voidvec/llmwiki-suite.git
cd llmwiki-suite
python -m venv .venv
# Windows: .venv\Scripts\activate macOS/Linux: source .venv/bin/activate
pip install -e ".[wechat,dev]" # 全部通道 + 测试/pre-commit 依赖
pre-commit install # 注册仓库级钩子(可选但推荐)
五步接入你已有的笔记库
cd ~/my-notes # 1. 进入你的笔记目录
llmwiki init # 2. 生成 llmwiki.toml 配置模板
llmwiki ingest # 3. 补 frontmatter + 规范化 wikilink
llmwiki index # 4. 建检索索引
llmwiki query "..." # 5. 检索 / 问答
可选:llmwiki lint(巡检断链/词表)、llmwiki eval(评估低质量子集并输出诊断)、
llmwiki serve(启动 HTTP 问答服务,需 serve extras)。
命令一览
| 命令 | 作用 |
|---|---|
llmwiki init |
在目标库生成 llmwiki.toml 模板 + 脚手架(.gitignore / pre-commit / CI) |
llmwiki ingest |
扫描笔记,补齐 frontmatter,规范化 wikilink 命名 |
llmwiki index |
生成 BM25 + wikilink 图检索索引(kb-index.json) |
llmwiki query "..." |
召回最相关章节;配置 LLM_WIKI_API_KEY 后基于召回结果生成完整回答 |
llmwiki lint |
巡检:断链、词表越界、命名规范 |
llmwiki eval |
用内置评估集跑 recall@k / MRR |
llmwiki serve |
启动 FastAPI 桥接服务(/chat /recall /healthz) |
所有命令支持 --repo <path> 显式指定库路径(默认取当前目录)。
渠道接入(微信 / 企业微信 / 飞书 / Telegram)
用 llmwiki serve 把知识库接到 IM,直接发消息问答:
# ① 已装渠道版则直接可用;否则先补装渠道依赖
pip install "llmwiki-suite[serve]"
# ② 配置 LLM(OpenAI 兼容端点;只设 KEY 时默认走 OpenAI)
export LLM_WIKI_API_KEY="sk-xxx"
export LLM_WIKI_BASE_URL="https://api.openai.com/v1" # 不设则默认 OpenAI
export LLM_WIKI_MODEL="gpt-4o-mini" # 不设则默认 gpt-4o-mini
export LLM_WIKI_BRIDGE_TOKEN="my-secret" # 可选:保护问答接口(本地验证通道可忽略)
llmwiki serve --host 127.0.0.1 --port 8000
- 个人微信(推荐,免费官方 iLink 通道):浏览器打开
http://127.0.0.1:8000/ilink/webui→ 手机微信扫码 → 绑定成功后 直接在微信里给 bot 发消息即查即答。 - 企业微信:配置
LLM_WIKI_WECOM_*环境变量后自动启用回调 / 主动推送通道。 - 飞书:配置
LLM_WIKI_FEISHU_APP_ID/LLM_WIKI_FEISHU_APP_SECRET(可选LLM_WIKI_FEISHU_VERIFY_TOKEN做事件签名校验),在飞书开放平台把事件订阅 回调地址设为https://<你的域名>/feishu/callback即可(challenge 自动应答)。 - Telegram:用 @BotFather 建 bot 得 token,配置
LLM_WIKI_TELEGRAM_BOT_TOKEN, 把 webhook 设到https://<你的域名>/telegram/callback(setWebhook;可用LLM_WIKI_TELEGRAM_SECRET_TOKEN做回调鉴权)。
路由总是注册:
serve启动时四条通道的路由(/ilink/*、/wecom/*、/feishu/callback、/telegram/callback)无条件挂载,缺凭据时返回可读的hint(不会 404)。可通过http://127.0.0.1:8000/healthz查看各通道configured / enabled状态。通道回调用不到LLM_WIKI_BRIDGE_TOKEN。 Telegram webhook 需要公网可达地址(可用 frp / ngrok / 腾讯云轻量等反代到 8000)。
换 LLM 厂商 / 模型(OpenAI 兼容协议即可)
套件只调 OpenAI 兼容的 /chat/completions,不看厂商名——任何提供该协议的服务都能用:
| 厂商 | LLM_WIKI_BASE_URL |
LLM_WIKI_MODEL |
|---|---|---|
| OpenAI(默认) | https://api.openai.com/v1 |
gpt-4o-mini |
| DeepSeek | https://api.deepseek.com/v1 |
deepseek-chat |
| 通义千问 | https://dashscope.aliyuncs.com/compatible-mode/v1 |
qwen-plus |
| Kimi / Moonshot | https://api.moonshot.cn/v1 |
moonshot-v1-8k |
| 本地 Ollama | http://127.0.0.1:11434/v1 |
qwen2.5:7b(API_KEY 随便填) |
换厂商只需把上面三个变量一起设;只有 OpenAI 时只用
LLM_WIKI_API_KEY即可。 支持任意 OpenAI/chat/completions兼容的第三方服务(DeepSeek / 通义 / Kimi / 本地 Ollama / vLLM 等), 完整对接步骤、会话持久化与排错,详见 [[llmwiki-tutorial-02-channel]]。
配置与密钥
- 库配置:库根
llmwiki.toml(categories 词表、排除目录、模型名等非密钥项) - 密钥:只走环境变量(
LLM_WIKI_API_KEY、LLM_WIKI_BRIDGE_TOKEN(可选)、LLM_WIKI_WECOM_*、LLM_WIKI_ILINK_*、LLM_WIKI_FEISHU_*、LLM_WIKI_TELEGRAM_*),本套件不读取任何.env文件
文档
全部文档在 docs/,按「入口 → 进阶 → 参考」组织:
| 文档 | 说明 |
|---|---|
docs/getting-started.md |
入口:五步接入已有笔记库(10 分钟上手) |
docs/llmwiki-tutorial-01-system.md |
体系搭建完整教程:目录规范、Ingest / Query / Lint、自动化 |
docs/llmwiki-tutorial-02-channel.md |
渠道接入:微信 / 企业微信桥接、serve 部署 |
docs/llmwiki-tutorial-03-quality-tuning.md |
检索质量调优:评估集、诊断、调参 |
docs/llmwiki-eval.md |
命令参考:eval 全部选项、评估集 schema、报告字段、指标解读 |
docs/llmwiki-evolution-roadmap.md |
路线图:从被动问答到知识库自进化(L0→L3) |
docs/llmwiki-architecture.md |
系统架构:分层设计、通道抽象 |
docs/obsidian-guide.md |
可选:用 Obsidian 作为前端编辑器 |
docs/pypi-release-guide.md |
维护者:发布到 PyPI 的操作指南(注册/2FA/Token/twine) |
CHANGELOG.md |
版本变更记录(Keep a Changelog 风格) |
建议顺序:getting-started → tutorial-01 → 02/03(按需)→ architecture。
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file llmwiki_suite-0.1.2.tar.gz.
File metadata
- Download URL: llmwiki_suite-0.1.2.tar.gz
- Upload date:
- Size: 118.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e7404d15de972fd1db5338674693423b43c944dc5aa5e41054ed70e66883293
|
|
| MD5 |
29db923f7b4ce1f3ce90c41f8f8681f2
|
|
| BLAKE2b-256 |
01e6fcec4cb4a7d34935d40146a07eb85c8d31bb1a7fe2fc80157e6118616d1d
|
File details
Details for the file llmwiki_suite-0.1.2-py3-none-any.whl.
File metadata
- Download URL: llmwiki_suite-0.1.2-py3-none-any.whl
- Upload date:
- Size: 86.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
137a8396022419c9d7b2ee49b7f3caf9b868a4f4b82faefe58504a4c5db4489a
|
|
| MD5 |
27b956245bf04be060d85efdaf3d0796
|
|
| BLAKE2b-256 |
1557b07119a6869b3ec979b3ac8022655339e8b4ae3dbc5d7667528503daf5e0
|