Khoj:本地优先的 AI 第二大脑,把笔记变成可对话知识库

Khoj:本地优先的 AI 第二大脑,把笔记变成可对话知识库

智能体

📖 简介

Khoj 是本地优先的 AI 第二大脑,支持 Obsidian/Emacs/网页/桌面多端,能对笔记做语义搜索、自动生成、跨文档问答,OpenAI 兼容 API,数据完全掌控在自己手里。

📝 详细介绍

开篇

这篇教程带你从零跑起一个 Khoj 实例,最终你会拥有一个本地运行的 AI 问答服务,它能直接检索你指定的 Markdown 笔记文件,并用自然语言回答你的问题。整个过程不需要上传数据,也不依赖云端。

前置条件

  • Linux/macOS/WSL 环境,Windows 原生请用 Docker 方式
  • Python 3.10 或更高版本,以及 pip 20+
  • 已安装 Ollama,并拉取至少一个模型(推荐 llama3.1
  • 至少 8GB 内存(本地模型推理建议 16GB)
  • 一个存放笔记的文件夹,比如 ~/notes

安装部署

安装 Khoj

创建虚拟环境,避免污染系统依赖:

python3 -m venv khoj-env
source khoj-env/bin/activate

安装 Khoj(包含本地模型支持):

pip install "khoj[ai]"

初始化配置

生成默认配置文件目录:

khoj init

编辑 ~/.khoj/khoj.yml,先写一个最小可运行配置:

content-type:
  markdown:
    input-files:
      - /home/yourname/notes

chat:
  model: "ollama/llama3.1"
  embed-model: "ollama/nomic-embed-text"

记得把 /home/yourname/notes 换成你的笔记目录。

启动

khoj --config ~/.khoj/khoj.yml

看到类似 Server running on http://localhost:42123 的日志就说明成功了。

第一个 Demo:让 Khoj 回答笔记里的问题

先准备笔记内容

这一步要创建笔记文件,并写入几条带明确事实的信息,方便后面验证。

mkdir -p ~/notes
cat > ~/notes/okr.md << 'EOF'
# 季度目标
- Q3 冲刺目标:把用户留存率从 60% 提升到 70%
- 关键结果 1:上线新版引导流程
- 负责人:小林
EOF

重建索引

新增文件后需要让 Khoj 重新读取笔记:

khoj --config ~/.khoj/khoj.yml --re-index

在网页里提问

打开浏览器访问 http://localhost:42123,在输入框里输入:

Q3 冲刺目标是什么?

预期输出:根据你的笔记,Q3 冲刺目标是把用户留存率提升到 70%,关键是上线新版引导流程,负责人的小林。

如果没跑通,确认 Ollama 已启动:ollama serve,并且模型已拉取:ollama pull llama3.1

配置与调优

定期刷新索引

Khoj 不会自动监控文件变化。结合 cron 每小时重建一次:

crontab -e
0 * * * * cd /path/to/khoj-env/bin && ./khoj --config ~/.khoj/khoj.yml --re-index

切换更强或更快的模型

如果硬件允许,可以在 khoj.ymlchat.model 里换成更大的模型,比如 ollama/mistral,或者改用 OpenAI 模型:

chat:
  model: "ollama/mistral"
  top-k: 5

限制回答范围,减少幻觉

在配置中提高检索结果数量,并关闭全局搜索,让回答更贴近笔记:

chat:
  model: "ollama/mistral"
  retrieval-top-k: 8
  reranker: "cross-encoder"

常见坑与排错

报错信息原因解决办法
ConnectionRefusedError: [Errno 111]Ollama 没启动或端口不对先运行 ollama serve,再重启 Khoj
No module named 'torch'本地嵌入模型需要 PyTorch执行 pip install "khoj[gpu]"pip install torch --index-url https://download.pytorch.org/whl/cpu
Error indexing files笔记目录路径写错或权限不足检查 khoj.yml 里的 input-files 是否为绝对路径,且当前用户可读
回答内容完全是模板化,答非所问模型没有检索到笔记,可能索引没刷新执行 khoj --config ~/.khoj/khoj.yml --re-index,确认日志里有“Indexing complete”

下一步

  • 接入 Notion、Google Docs 等更多内容源,在 content-type 下添加对应配置
  • 为 Khoj 写一个本地 Web 前端,用 WebSocket 把对话流式推送到页面
  • 用 Docker Compose 打包你的 Khoj + Ollama,一键部署到局域网服务器,供多设备使用
🚀

AI 项目推荐

智能体
标签
#知识库 #第二大脑 #自托管 #语义搜索
浏览
👁️ 16
发布日期
2026-08-30