Decentralization? We're still early!

开源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 回答你的问题时,它能:

  1. 检索(Retrieval):首先在你的笔记、文档等资料库中搜索与你的问题相关的信息片段。
  2. 生成(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 管理后台轻松完成配置:

  1. 启动 Khoj:确保你的 Khoj 正在运行(无论你使用哪种安装方式)。
  2. 访问管理后台:在浏览器中输入 http://localhost:42110/server/admin/ (如果你的 Khoj 运行在其他端口,请替换 42110)。
  3. 登录: 使用你在部署 Khoj 时设置的管理员邮箱和密码登录(如果没有设置过,对于 Docker 部署,可以通过 docker-compose.yml 设置 KHOJ_ADMIN_EMAILKHOJ_ADMIN_PASSWORD 环境变量;对于其他安装方式,请参考官方文档)。
  4. 找到配置:在左侧导航栏中找到 “Configurations” 或类似选项。
  5. 编辑配置:找到与 LLM 相关的配置条目,点击编辑。
  6. 设置 LLM
    • Provider:
      • 对于 OpenAI 模型,选择 openai
      • 对于 Gemini 模型,选择 google
      • 对于本地模型,选择 ollamalocal(取决于你使用的本地模型工具)。
      • 对于其他兼容 OpenAI API 的模型, 选择 openai
    • Model Name:输入你想要使用的模型名称(例如,gpt-3.5-turbogemini-prollama2 等,具体取决于你选择的 Provider)。
    • API Key (如果需要):如果你选择的是需要 API 密钥的模型(如 OpenAI、Gemini),请输入你的 API 密钥。
    • 其他参数:根据需要,你可能还需要设置其他参数,例如 api_base(对于兼容 OpenAI API 的服务)等。
  7. 保存更改:点击保存按钮。
  8. 重启服务:为了确保更改生效,你可能需要重启 Khoj 服务。

注意: 当设置完成后,你才能在Khoj 的 Web UI 看到你配置的 LLM 模型名称。

七、小结:AI正在改变知识管理

综上所述,Khoj 是一款与众不同的知识管理工具,它利用人工智能技术(包括先进的 RAG 技术),让搜索笔记、文档变得像聊天一样简单自然。它不仅能理解你的自然语言(搜索完全支持中文),还能根据上下文提供更精准的搜索结果。本地优先的设计不仅保护了你的隐私,也让你能够随时随地访问你的资料。通过多种安装方式,你可以轻松使用 Khoj,并灵活配置你喜欢的 AI 模型,让你的知识管理更上一层楼。

如果你经常为找不到之前的笔记信息而烦恼,如果你希望有一个更智能、更安全的知识管理工具,那么 Khoj 绝对值得一试。它能帮你更好地管理你的知识,提高你的工作效率,让你从繁琐的搜索中解放出来,更专注于思考和创造。对于研究者而言,Khoj也将进一步提升研究的效率,AI正在改写知识管理的实践!

作为非营利站点,基地的建设离不开大家的捐助支持。在Cardano钱包(如Lace、Eternl 等)中输入 ADA Handle 名称$brave2049,即可为基地提供小额捐助。为支持Cardano治理和基地建设,亦欢迎将Cardano链上治理权限委托给Brave(Brave的Cardano链上治理DRep信息)

回复