如何自托管 Khoj:你的私人 AI 第二大脑
一个你自行运行的开源 AI 第二大脑——在你的硬件上使用本地或云端模型,与自己的文档和网页聊天。
Khoj 是一个开源、可自托管的“AI 第二大脑”——一个个人 AI 助手,能从网络和你自己的文档中给出答案,支持任何本地或云端 LLM,并可通过浏览器、Obsidian、Emacs、桌面端和手机访问。Vane 是一个面向实时网络的 Perplexity 风格引擎,而 Khoj 则围绕你的资料构建:你的 PDF、Markdown 笔记、Word 文档、Notion 页面等。本指南涵盖 Khoj 是什么、如何用 Docker 自托管、如何连接你的文档和本地模型,以及何时选择 Khoj 而非 Vane。
官方仓库是 github.com/khoj-ai/khoj。关于更广泛的 AI 答案引擎领域,请参阅我们的汇总:开源 Perplexity 替代方案。
Khoj 是什么
Khoj 自称是一个 AI 第二大脑。实际上,它完成了托管助手通常让你三选一的三种功能:
- 来自你自己文档的答案。 你将 Khoj 指向你的文件——PDF、Markdown、Word、Notion、org-mode,甚至图片——它会为语义搜索建立索引,这样你就可以提问,并从自己的知识中获得有依据、带引用的答案。
- 来自网络的答案。 它也可以在线搜索来回答你文档中没有的问题。
- 充当助手。 除了搜索,它还支持自定义代理、自动化以及按计划运行的定时或“深度”研究。
无论你在哪里工作,它都能触及你:网页应用、Obsidian 插件、Emacs 包、桌面应用、手机应用,甚至 WhatsApp。这种多客户端覆盖是其标志性特性——你的第二大脑跟随你跨越各种工具。
| Khoj | |
|---|---|
| 是什么 | 可自托管的 AI 第二大脑 / 个人助手 |
| 许可证 | AGPL-3.0 |
| GitHub 星标 | ~35.2k (截至 2026 年 6 月) |
| 背景 | Y Combinator (W24) |
| 向量存储 | pgvector (PostgreSQL + pgvector 扩展) |
| 文档类型 | PDF, Markdown, Word, Notion, org-mode, 图片 |
| 本地 LLM | 是——Ollama (llama3, qwen, gemma, mistral) |
| 云端 LLM | gpt, claude, gemini, deepseek |
| 客户端 | 浏览器, Obsidian, Emacs, 桌面, 手机, WhatsApp |
有两个事实影响你对 Khoj 的看法。首先,它采用 AGPL-3.0 许可证——强 Copyleft,这在你打算将 Khoj 嵌入到你分发的产品中时很重要(与 Vane 宽松的 MIT 许可证 相比)。对于自己或团队使用,AGPL 完全不是障碍。其次,它使用 pgvector——PostgreSQL 扩展——作为向量存储,这意味着文档的语义搜索运行在普通、久经考验的 Postgres 上,而不是一个独立的向量数据库。如果你想了解这一层,请参阅我们的自托管向量数据库汇总以及什么是嵌入。
Khoj 的工作原理
当你向 Khoj 询问关于你的文档的问题时,它运行的是检索增强生成(RAG)——尽管你无需用这些术语来思考。流程如下:
- 摄取。 你的文件被分块并转换为嵌入——捕捉语义的数字向量。
- 存储。 这些向量存放在 PostgreSQL 内的 pgvector 中。
- 检索。 你的问题以相同方式嵌入,pgvector 通过语义搜索找到最语义相似的分块。
- 生成。 检索到的分块被交给所选 LLM,它写出带有引用回源文件的有依据的答案。
因此,一个典型的自托管 Khoj 部署会同时启动几个服务——Khoj 应用、一个 PostgreSQL + pgvector 数据库,以及支持组件(一个用于网络搜索的 SearXNG 实例,以及一个供某些高级功能使用的沙盒代码执行环境)。Docker Compose 将它们整合在一起,你无需手动组装。
为什么要自托管 Khoj
你可以使用 Khoj 的托管云版本,但如果你在乎所有权,自托管才是重点:
- 你的文档仍然归你所有。 使用本地模型时,你的文件、它们的嵌入以及由此生成的答案永远不会离开你的基础设施——没有任何内容发送给第三方,也不会训练别人的模型。
- 模型选择。 通过 Ollama 运行本地 LLM 以获得完全的隐私,或者在你需要更多推理能力时接入云端模型(GPT、Claude、Gemini、DeepSeek)。
- 无订阅、无限制。 只要你的硬件允许,可以索引任意多的文档;在你自己的机器上没有按席位或按文档计费。
- 它是你的助手。 自定义代理和自动化按照你的条件、你的计划、针对你的数据运行。
代价是通常自托管的代价:你需要配置它、打补丁,并保持 Postgres 健康。Khoj 比单纯的元搜索引擎运行起来更重,因为它带着一个数据库和文档索引——但这正是你获得私有文档问答的代价。
自托管 Khoj:设置概览
这是 Khoj 部署的大致形式。请始终遵循项目自身的文档和 README 以获取准确的最新命令——Khoj 附带一个 Docker Compose 设置,它会在版本之间维护和更新。
1. 前提条件
你需要一台装有 Docker 和 Docker Compose 的主机。由于 Khoj 运行 PostgreSQL 加一个文档索引(以及可选的本地 LLM),因此比元搜索引擎需要更多资源——一台 4 GB+ 内存 的机器是合理的起点,如果你索引大型语料库或在同一台机器上运行本地模型,则需要更多内存。如果要做本地推理,GPU 会有很大帮助。
2. 获取 Docker Compose 设置
Khoj 发布了一个 docker-compose.yml,定义了整个技术栈——Khoj 服务器、PostgreSQL + pgvector 数据库,以及支持服务。标准流程是下载那个 compose 文件(或克隆仓库),设置几个环境变量,然后启动所有服务:
docker compose up -d
首次运行时,数据库会初始化,Khoj 服务器启动。稍等片刻,然后在 compose 文件中显示的地址(通常是一个本地端口)打开 Web UI。
3. 创建账户并选择模型
首次启动时,你通过 Web UI 设置一个管理员账户。然后配置你的 LLM:
- 本地 (Ollama): 运行 Ollama,拉取模型(
ollama pull llama3.1),并将 Khoj 指向你的 Ollama 端点。这样生成过程完全在你的硬件上完成。 - 云端: 当你想要前沿级别的答案时,添加 GPT、Claude、Gemini 或 DeepSeek 的 API 密钥。
4. 连接你的文档
这一步让 Khoj 成为第二大脑,而不是一个网络搜索框。你连接你的知识来源:
- 通过 Web UI 直接上传 PDF、Word、Markdown 和其他文件。
- Obsidian 或 Emacs 插件,自动将你现有的笔记库同步到 Khoj。
- Notion 和其他支持的来源。
Khoj 将你连接的内容索引到 pgvector。从那时起,你的问题会跨你自己的知识进行搜索,答案会引用来源文件。首次索引大型笔记库需要一段时间(它必须嵌入所有内容);后续更新是增量的。
5. 在你喜欢的客户端中使用
安装适合你工作流程的任何客户端——浏览器应用、Obsidian 插件、桌面或手机应用——它们都连接到同一个自托管服务器。你的索引和对话保留在你的硬件上;客户端只是前端。
连接本地模型以实现完全隐私
与任何自托管 AI 工具一样,Khoj 在模型层提供了一个隐私与质量的权衡:
| 本地 (Ollama) | 云端 LLM | |
|---|---|---|
| 数据去向 | 停留在你的硬件上 | 提示词 + 检索到的分块发送给提供商 |
| 隐私性 | 完全可能私有 | 提供商能看到你的文档摘录 |
| 答案质量 | 良好,受硬件限制 | 前沿水平 |
| 成本 | 仅硬件成本 | 按 token 的 API 费用 |
| 最佳适用 | 敏感的个人/工作文档 | 最难的问题,最佳措辞 |
对于一个第二大脑,隐私风险比网络搜索更高——你喂给它的是你实际的笔记、合同和研究资料。如果这些内容敏感,就全程本地运行:Ollama 用于生成,本地嵌入模型用于索引,pgvector 放在你自己的机器上。整个循环留在你的网络内部。只有当某个特别难的问题值得把那些摘录发送出去时,才考虑使用云端模型,并且要审慎做出这个选择。
何时选择 Khoj 与 Vane
两者都是优秀的自托管 AI 工具,但它们是为不同任务而构建的。
| Khoj | Vane (前身 Perplexica) | |
|---|---|---|
| 主要任务 | 与你自己的文档对话 | 类 Perplexity 风格的网络答案 |
| 最佳比喻 | AI 第二大脑 | AI 搜索引擎 |
| 自己文档的问答 | 核心功能 (pgvector RAG) | 有限 |
| 网络搜索 | 支持 | 支持(核心,通过内置 SearXNG) |
| 客户端 | 浏览器, Obsidian, Emacs, 桌面, 手机, WhatsApp | Web UI |
| 许可证 | AGPL-3.0 (copyleft) | MIT (宽松) |
| 星标 (2026 年 6 月) | ~35.2k | ~35.4k |
决策主要取决于你的问题来自哪里:
- 选择 Khoj 当你的目标是跨多个设备搜索和对话于你自己的知识——笔记、文档、研究库——并以网络搜索作为额外功能。对于个人或团队知识助手来说,这是这里最强的选项。
- 选择 Vane 当你的目标是来自实时网络的 Perplexity 风格答案,并且文档问答不是你的优先事项。
- 注意许可证 如果你要将其嵌入到你将要分发的产品中:Vane 的 MIT 是宽松的;Khoj 的 AGPL-3.0 是 Copyleft。仅限内部使用时,两者都无关紧要。
- 同时运行两者 如果你愿意——许多人将 Vane 用于开放网络,将 Khoj 用于自己的文件。它们并不冲突。
有关包括 SurfSense 和 SearXNG 在内的完整全景图,请参阅开源 Perplexity 替代方案。
隐私与数据所有权
Khoj 的整个主张是你的第二大脑属于你。自托管、指向本地模型、pgvector 放在你自己的服务器上,整个循环——你的文档、它们的嵌入、你的问题和生成的答案——都留在你的网络内部。没有第三方索引你的文件,没有提供商在你的笔记上进行训练,而且你可以将其运行在气隙环境中。
唯一会改变的地方是模型层:如果你选择云端 LLM,提示词和检索到的文档摘录会发送给该提供商进行生成。鉴于这些摘录来自你的私人文件,请仔细权衡。对任何敏感内容保持本地生成,并将云端模型保留用那些质量值得暴露的问题。同样的数据所有权逻辑贯穿我们的自托管 RAG 指南。
常见问题
Khoj 用于什么? Khoj 是一个可自托管的 AI “第二大脑”——一个个人助手,能够回答来自你自己的文档(PDF、Markdown、Word、Notion、org-mode、图片)和网络的问题。它支持自定义代理和定时研究,你可以通过浏览器、Obsidian、Emacs、桌面端、手机和 WhatsApp 访问它。
Khoj 免费且开源吗? 是的。Khoj 在 AGPL-3.0 许可证下开源,并且完全可自托管,因此没有软件成本。请注意 AGPL 是一个 Copyleft 许可证——仅在你计划将 Khoj 嵌入并分发到自己的产品中时相关,对于自己运行则无关紧要。
Khoj 能与本地 LLM 一起使用吗? 是的。Khoj 通过 Ollama 与本地模型一起工作(llama3、qwen、gemma、mistral 等),因此你可以在自己的硬件上完全运行它。当你需要更多推理能力时,它还支持云端模型(GPT、Claude、Gemini、DeepSeek)。
Khoj 使用什么数据库? Khoj 使用 pgvector——PostgreSQL 的向量扩展——作为对其文档进行语义搜索的向量存储。自托管部署在 Docker Compose 栈中运行带有 pgvector 的 PostgreSQL。
Khoj 与 Vane——哪个更好? 没有哪个“更好”;它们做不同的工作。Khoj 旨在跨多个客户端与你的文档聊天。Vane 旨在从实时网络获取 Perplexity 风格的答案。根据你的问题是关于自己的文件还是开放网络来选择——如果你两者都需要,可以同时运行。
Khoj 是在你自己的知识上自托管私有 AI 助手的最全功能方式。从这里开始,了解其背后的 RAG 流程,将其与 Vane 及其他答案引擎比较,或阅读它运行的向量数据库层。Aquila 是你拥有的 AI 搜索的独立家园。掌控你自己的搜索。