开源AI副驾驶 Khoj:知识管理利器,打造第二大脑

你是不是经常遇到这样的情况:明明记得自己在某个笔记、文档、网页里看过某个重要的信息,但就是怎么也找不到?翻遍了所有的文件夹,用尽了各种关键词,还是大海捞针一样?别担心,今天Brave就给你介绍一个“神器”——Khoj。它就像一个智能的 AI 副驾驶(Copilot),能帮你快速找到你想要的任何信息。而且,它是开源的、可自托管的,支持中文搜索,还能连接你的在线和本地文档,并灵活配置你喜欢的 AI 模型,真正成为你的“第二大脑”。
Brave按:目前的AI工具在配置上都有复杂性。Khoj的配置就比Open WebUI要稍微复杂一些。请按需使用。
一、Khoj:不仅仅是笔记本,更是“第二大脑”
我们平时使用的传统笔记软件,大多是基于文件夹和关键词来管理和搜索信息的。这种方式在笔记数量少的时候还算方便,但一旦笔记数量多了,就很容易陷入混乱。而且,很多时候我们只记得大概的内容,或者想用更自然的语言来描述我们要找的东西,这时候关键词搜索就显得力不从心了。
Khoj 的出现,就是为了解决这些痛点。它不仅仅是一个笔记工具,更像是一个能够理解你、帮助你管理和检索知识的“第二大脑”。它利用了先进的人工智能技术(包括 RAG 技术,下文会详细介绍),让你能够用最自然的方式来搜索你的笔记、文档,就像和你自己对话一样。
举个例子,假设你在笔记里记录了一次关于“新产品发布会”的会议内容。如果你用传统的笔记软件搜索,可能需要尝试“发布会”、“新产品”、“会议记录”等多个关键词,而且还不一定能找到最相关的那条笔记。但是,如果你使用 Khoj,你只需要输入“上次讨论新产品发布的会议记录在哪里?”,Khoj 就能准确地帮你找到那条笔记,甚至还能帮你总结出会议的要点。
不同于其他需要上传笔记到云端的服务,Khoj 把你的所有数据都保存在你的电脑本地。这意味着你完全掌控着自己的数据,不用担心隐私泄露的问题。而且,即使没有网络,你也能随时随地访问和搜索你的笔记,再也不用担心因为网络问题而耽误工作。
二、像聊天一样搜索,告别关键词的烦恼
通过引入LLM模型以及RAG 技术(Retrieval-Augmented Generation,检索增强生成),Khoj能“听懂”你说的话,理解你的问题,并帮你检索知识库中的内容。RAG技术是一种结合了信息检索和文本生成能力的人工智能框架。简单来说,当 Khoj 回答你的问题时,它能:
- 检索(Retrieval):首先在你的笔记、文档等资料库中搜索与你的问题相关的信息片段。
- 生成(Generation):然后,利用 LLM,基于检索到的信息片段,生成一个流畅、自然的回答。
RAG 的优势在于:
- 答案更准确、更可靠: 因为答案是基于你的实际资料,而不是 LLM 的“幻觉”或过时的知识。
- 可溯源: Khoj 通常会告诉你答案的来源,方便你核对和深入了解。
- 减少 LLM 的负担: 检索过程缩小了 LLM 需要处理的信息范围,提高了效率。
需要注意,虽然 Khoj 的核心功能(如搜索、AI 助手)支持中文,但其用户界面(Web UI)目前主要还是英文的。 不过,这并不会影响你使用中文来搜索和管理你的笔记。你可以使用浏览器自带的翻译功能。
Khoj 不仅仅支持文字笔记,还能处理图片、音频、PDF 等各种格式的文件。这意味着你可以把各种各样的资料(包括在线文档和本地文件)都放进 Khoj 里,不用担心格式不兼容的问题。例如,你可以把会议录音、现场照片、演示文稿等都放进 Khoj,然后通过自然语言搜索,快速找到你需要的任何信息。
三、上下文感知,让搜索结果更精准
除了能理解你的自然语言,Khoj 还能根据你笔记的上下文,提供更精准的搜索结果。这意味着,Khoj 不仅仅是看你输入了什么,还会结合你笔记的内容、时间、标签等各种信息,来判断你真正想要找的是什么。
比如,你在不同的笔记里都提到了“苹果”这个词,一个是在讨论水果,另一个是在讨论苹果公司。如果你用传统的笔记软件搜索“苹果”,可能会得到一堆混杂的结果。但是,如果你用 Khoj 搜索,并且你的问题是关于科技公司的,Khoj 就会根据上下文,优先返回关于苹果公司的笔记,而不是关于水果的。
这种上下文感知的能力,让 Khoj 的搜索结果更加精准,也更符合你的实际需求。它就像一个聪明的 AI 副驾驶,能够理解你的意图,帮你找到最相关的信息。
四、不止是搜索,AI 副驾驶还能帮你更多
Khoj 不仅仅是一个强大的搜索工具,它内置的 AI 副驾驶可以帮你完成更多任务。这个 AI 副驾驶由强大的 LLM(大型语言模型)驱动,你可以根据自己的需求和偏好,灵活选择和配置不同的 LLM。
Khoj 支持多种 LLM,包括但不限于:
- OpenAI 的 GPT 系列模型:性能强大,但可能需要付费。
- Google 的 Gemini 模型:同样性能出色,也可能涉及费用。
- 本地模型(Local LLM):例如通过 Ollama 等工具运行的开源模型,完全离线,保护隐私,但可能对计算资源有一定要求。
- 其他兼容 OpenAI API 的模型:比如一些第三方提供的服务。
这个 AI 副驾驶可以帮你总结长篇的笔记或文章,让你快速掌握核心内容。它还可以回答你的问题,就像一个随时待命的知识库。甚至,它还能帮你生成一些简单的文本内容,比如邮件草稿、会议纪要等。
Khoj 的 AI 副驾驶功能,让它不仅仅是一个被动的知识库,更是一个能够主动帮助你的智能伙伴。它可以帮你节省时间,提高效率,让你更专注于思考和创造。
五、Khoj 支持Docker Compose快速部署
作为开源自托管软件,Khoj 提供了多种安装方式,以适应不同的用户和环境:
- Docker 部署 (推荐): 通过 Docker,你可以使用
docker-compose.yml
文件轻松定义和管理 Khoj 及其相关服务,并在几分钟内搭建好运行环境。这是最推荐的安装方式,尤其适合熟悉 Docker 的用户。 - pip 安装: 如果你熟悉 Python 环境,可以使用
pip
包管理器直接安装 Khoj。 - 可执行文件: Khoj 也提供了预编译的可执行文件,方便那些不想安装 Python 或 Docker 的用户。
- 源码安装: 对于高级用户,你也可以从 Khoj 的 GitHub 仓库克隆源代码,自行构建和安装。
你可以在 Khoj 的官方文档中找到每种安装方式的详细指南。
services:
database:
image: docker.io/pgvector/pgvector:pg15
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
volumes:
- khoj_db:/var/lib/postgresql/data/
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 30s
timeout: 10s
retries: 5
sandbox:
image: ghcr.io/khoj-ai/terrarium:latest
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 2
search:
image: docker.io/searxng/searxng:latest
volumes:
- khoj_search:/etc/searxng
environment:
- SEARXNG_BASE_URL=http://localhost:8080/
server:
depends_on:
database:
condition: service_healthy
# Use the following line to use the latest version of khoj. Otherwise, it will build from source. Set this to ghcr.io/khoj-ai/khoj-cloud:latest if you want to use the prod image.
image: ghcr.io/khoj-ai/khoj:latest
# Uncomment the following line to build from source. This will take a few minutes. Comment the next two lines out if you want to use the official image.
# build:
# context: .
ports:
# If changing the local port (left hand side), no other changes required.
# If changing the remote port (right hand side),
# change the port in the args in the build section,
# as well as the port in the command section to match
- "42110:42110"
extra_hosts:
- "host.docker.internal:host-gateway"
working_dir: /app
volumes:
- khoj_config:/root/.khoj/
- khoj_models:/root/.cache/torch/sentence_transformers
- khoj_models:/root/.cache/huggingface
# Use 0.0.0.0 to explicitly set the host ip for the service on the container. https://pythonspeed.com/articles/docker-connection-refused/
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_HOST=database
- POSTGRES_PORT=5432
- KHOJ_DJANGO_SECRET_KEY=secret
- KHOJ_DEBUG=False
- KHOJ_ADMIN_EMAIL=username@example.com
- KHOJ_ADMIN_PASSWORD=password
# Default URL of Terrarium, the default Python sandbox used by Khoj to run code. Its container is specified above
- KHOJ_TERRARIUM_URL=http://sandbox:8080
# Uncomment line below to have Khoj run code in remote E2B code sandbox instead of the self-hosted Terrarium sandbox above. Get your E2B API key from https://e2b.dev/.
# - E2B_API_KEY=your_e2b_api_key
# Default URL of SearxNG, the default web search engine used by Khoj. Its container is specified above
- KHOJ_SEARXNG_URL=http://search:8080
# Uncomment line below to use with Ollama running on your local machine at localhost:11434.
# Change URL to use with other OpenAI API compatible providers like VLLM, LMStudio etc.
# - OPENAI_BASE_URL=http://host.docker.internal:11434/v1/
#
# Uncomment appropriate lines below to use chat models by OpenAI, Anthropic, Google.
# Ensure you set your provider specific API keys.
# ---
# - OPENAI_API_KEY=your_openai_api_key
# - GEMINI_API_KEY=your_gemini_api_key
# - ANTHROPIC_API_KEY=your_anthropic_api_key
#
# Uncomment appropriate lines below to enable web results with Khoj
# Ensure you set your provider specific API keys.
# ---
# Free, Slower API. Does both web search and webpage read. Get API key from https://jina.ai/
# - JINA_API_KEY=your_jina_api_key
# Paid, Fast API. Only does web search. Get API key from https://serper.dev/
# - SERPER_DEV_API_KEY=your_serper_dev_api_key
# Paid, Fast, Open API. Only does webpage read. Get API key from https://firecrawl.dev/
# - FIRECRAWL_API_KEY=your_firecrawl_api_key
# Paid, Fast, Higher Read Success API. Only does webpage read. Get API key from https://olostep.com/
# - OLOSTEP_API_KEY=your_olostep_api_key
#
# Uncomment the necessary lines below to make your instance publicly accessible.
# Proceed with caution, especially if you are using anonymous mode.
# ---
# - KHOJ_NO_HTTPS=True
# Replace the KHOJ_DOMAIN with the server's externally accessible domain or I.P address from a remote machie (no http/https prefix).
# Ensure this is set correctly to avoid CSRF trusted origin or unset cookie issue when trying to access the admin panel.
# - KHOJ_DOMAIN=192.168.0.104
# - KHOJ_DOMAIN=khoj.example.com
# Replace the KHOJ_ALLOWED_DOMAIN with the server's internally accessible domain or I.P address on the host machine (no http/https prefix).
# Only set if using a load balancer/reverse_proxy in front of your Khoj server. If unset, it defaults to KHOJ_DOMAIN.
# For example, if the load balancer service is added to the khoj docker network, set KHOJ_ALLOWED_DOMAIN to khoj's docker service name: `server'.
# - KHOJ_ALLOWED_DOMAIN=server
# - KHOJ_ALLOWED_DOMAIN=127.0.0.1
# Uncomment the line below to disable telemetry.
# Telemetry helps us prioritize feature development and understand how people are using Khoj
# Read more at https://docs.khoj.dev/miscellaneous/telemetry
# - KHOJ_TELEMETRY_DISABLE=True
# Comment out this line when you're using the official ghcr.io/khoj-ai/khoj-cloud:latest prod image.
command: --host="0.0.0.0" --port=42110 -vv --anonymous-mode --non-interactive
volumes:
khoj_config:
khoj_db:
khoj_models:
khoj_search:
六、通过管理后台配置你喜欢的 AI 模型
Khoj 让你能够灵活选择和配置 AI 模型(LLM)。你可以通过 Khoj 的 Django 管理后台轻松完成配置:
- 启动 Khoj:确保你的 Khoj 正在运行(无论你使用哪种安装方式)。
- 访问管理后台:在浏览器中输入
http://localhost:42110/server/admin/
(如果你的 Khoj 运行在其他端口,请替换42110
)。 - 登录: 使用你在部署 Khoj 时设置的管理员邮箱和密码登录(如果没有设置过,对于 Docker 部署,可以通过
docker-compose.yml
设置KHOJ_ADMIN_EMAIL
和KHOJ_ADMIN_PASSWORD
环境变量;对于其他安装方式,请参考官方文档)。 - 找到配置:在左侧导航栏中找到 “Configurations” 或类似选项。
- 编辑配置:找到与 LLM 相关的配置条目,点击编辑。
- 设置 LLM:
- Provider:
- 对于 OpenAI 模型,选择
openai
。 - 对于 Gemini 模型,选择
google
。 - 对于本地模型,选择
ollama
或local
(取决于你使用的本地模型工具)。 - 对于其他兼容 OpenAI API 的模型, 选择
openai
。
- 对于 OpenAI 模型,选择
- Model Name:输入你想要使用的模型名称(例如,
gpt-3.5-turbo
、gemini-pro
、llama2
等,具体取决于你选择的 Provider)。 - API Key (如果需要):如果你选择的是需要 API 密钥的模型(如 OpenAI、Gemini),请输入你的 API 密钥。
- 其他参数:根据需要,你可能还需要设置其他参数,例如
api_base
(对于兼容 OpenAI API 的服务)等。
- Provider:
- 保存更改:点击保存按钮。
- 重启服务:为了确保更改生效,你可能需要重启 Khoj 服务。
注意: 当设置完成后,你才能在Khoj 的 Web UI 看到你配置的 LLM 模型名称。
七、小结:AI正在改变知识管理
综上所述,Khoj 是一款与众不同的知识管理工具,它利用人工智能技术(包括先进的 RAG 技术),让搜索笔记、文档变得像聊天一样简单自然。它不仅能理解你的自然语言(搜索完全支持中文),还能根据上下文提供更精准的搜索结果。本地优先的设计不仅保护了你的隐私,也让你能够随时随地访问你的资料。通过多种安装方式,你可以轻松使用 Khoj,并灵活配置你喜欢的 AI 模型,让你的知识管理更上一层楼。
如果你经常为找不到之前的笔记信息而烦恼,如果你希望有一个更智能、更安全的知识管理工具,那么 Khoj 绝对值得一试。它能帮你更好地管理你的知识,提高你的工作效率,让你从繁琐的搜索中解放出来,更专注于思考和创造。对于研究者而言,Khoj也将进一步提升研究的效率,AI正在改写知识管理的实践!
回复