用自然语言搜索你的笔记和文档,像问 ChatGPT 一样问你的私人知识库。
# 1. 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
# 2. 拉取推荐模型(千问3 Embedding,中文最优)
ollama pull qwen3-embedding:8b
# 3. 创建虚拟环境并安装依赖
python3 -m venv .venv
.venv/bin/pip install numpy requests fastapi pydantic uvicorn PyPDF2 pdfplumber python-docx
# 4. 启动
.venv/bin/python3 start.py
打开 http://localhost:5777 → 文件丢到 ~/workspace/knowledge/ → 管理页点「重新索引」→ 搜索页开搜。
新增文件后不用每次都手动点重新索引,设个定时任务每30分钟自动扫描:
openclaw cron add \
--name "knowledge-rag 自动索引" \
--every 1800000 \
--message "运行索引检查:cd ~/.openclaw/workspace/skills/knowledge-rag && .venv/bin/python3 scripts/index_knowledge.py" \
--silent
~/workspace/knowledge/
├── notes/ ← 技术笔记、读书笔记
├── bilibili/ ← B站转录
├── wechat-articles/ ← 公众号文章
├── other/ ← 其他文档
└── (可建任意子目录,去设置页添加)
支持 .txt / .md / .pdf(文字版)/ .docx 文件。
> "帮我搜笔记里关于 Docker 的部分"
> "知识库里有没有讲 Transformer 的文章?"
我会自动调搜索,带原文回答。
.venv/bin/python3 scripts/query_knowledge.py "你的问题"
.venv/bin/python3 scripts/query_knowledge.py "微服务" --source bilibili --top 5
.venv/bin/python3 scripts/query_knowledge.py --stats
新增文件后运行索引即可:
.venv/bin/python3 scripts/index_knowledge.py # 增量
.venv/bin/python3 scripts/index_knowledge.py --force # 全量重建
当用户说"把这段存到知识库",按以下规则操作:
| 内容类型 | 存放目录 | 文件名 |
|---|---|---|
| --------- | --------- | -------- |
| 技术笔记、概念解释 | notes/ | 中文描述.md |
| B站视频转录 | bilibili/ | 自动处理 |
| 公众号、网页文章 | wechat-articles/ | 文章标题.md |
| 其他 | other/ | 内容摘要.md |
保存后运行 .venv/bin/python3 scripts/index_knowledge.py 更新索引。
在设置页修改 embed_model 字段:
| 场景 | 模型 | 大小 | |
|---|---|---|---|
| ------ | ------ | ------ | |
| ✅ 推荐(质量最高) | qwen3-embedding:8b | 4.7GB | 中文优秀,检索质量最高 |
| 轻量(CPU友好) | qwen3-embedding:0.6b | 640MB | 对 CPU 友好,中文不错 |
| 多语言 | bge-m3 | 1.2GB | |
| 最小体积 | nomic-embed-text | 274MB |
改完后点「重新索引」,系统自动检测并全量重建。
用户首次使用或出问题时,按顺序排查:
ollama --version,否则引导去 https://ollama.com/downloadollama list | grep qwen3-embedding,否则 ollama pull qwen3-embedding:8b~/workspace/knowledge/.rag_data/model_meta.json,不匹配则提示重建快速诊断:
curl -s http://localhost:8768/api/stats | .venv/bin/python3 -c "
import sys,json; d=json.load(sys.stdin)
em = d.get('embed_model',{})
print(f'配置: {em.get(\"current\",\"?\")} | 索引: {em.get(\"stored\",\"?\")} ({em.get(\"stored_dim\",\"?\")}维)')
print(f'状态: {\"✅ 正常\" if not em.get(\"mismatch\") else \"❌ 不匹配\"}')"
python3 -m venv .venv && .venv/bin/pip install PyPDF2 pdfplumber python-docx~/workspace/knowledge/,卸载不丢Bilibili Auto Transcript — 装了这个 skill 后,B站视频转录完自动存到知识库,不用手动操作:
clawhub install bilibili-auto-transcript
转录的文件自动进 ~/workspace/knowledge/bilibili/,转完即搜。
共 4 个版本