Featured image of post Khoj: Bộ Não AI Thứ Hai Mã Nguồn Mở Mà Bạn Có Thể Tự Cài

Khoj: Bộ Não AI Thứ Hai Mã Nguồn Mở Mà Bạn Có Thể Tự Cài

Khoj là ứng dụng AI cá nhân mã nguồn mở đóng vai trò như bộ não thứ hai của bạn — chat với bất kỳ LLM nào, tìm kiếm tài liệu bằng AI ngữ nghĩa, tạo agent tùy chỉnh, và tự cài đặt hoàn toàn trên máy của mình.

Phần 1: Nền Tảng — Mô Hình Tư Duy

Bạn có hàng trăm note rải rác trong Obsidian, Notion, tập tin PDF nghiên cứu và các file Markdown. Bạn phải chuyển qua lại giữa ChatGPT, Claude, và Gemini, dán ngữ cảnh thủ công từng lần. Bạn muốn một AI đã đọc hết mọi thứ bạn biết — nhưng các nhà cung cấp lớn lại nhốt toàn bộ dữ liệu của bạn trên đám mây của họ.

Đó chính xác là khoảng trống mà Khoj được xây dựng để lấp đầy.

Mô Hình Tư Duy: Hãy nghĩ Khoj như một bộ não AI cá nhân chạy theo nguyên tắc — không phải chatbot đơn thuần, mà là một trợ lý kiến thức luôn hoạt động, đã đọc mọi tài liệu bạn từng viết, có thể tìm kiếm internet, tạo agent tự động, và làm tất cả điều này ngay trên máy bạn hoặc trên đám mây của Khoj, tùy lựa chọn.

Trong khi hầu hết các công cụ AI là stateless (mỗi cuộc trò chuyện bắt đầu từ đầu), Khoj là stateful và được lập chỉ mục kiến thức. Đây là AI nhớ được bạn.


Phần 2: Điều Tra — Kiến Trúc Chuyên Sâu

Bức Tranh Tổng Thể

Khoj là ứng dụng Python full-stack được xây dựng trên nền FastAPI ở lõi. Đây là luồng tổng quát:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
┌──────────────────────────────────────────────────────────────┐
│                     Khoj Clients                             │
│  Web App │ Plugin Obsidian │ Package Emacs │ Phone │ WhatsApp │
└─────────────────────────┬────────────────────────────────────┘
                          │ REST / WebSocket API
┌─────────────────────────▼────────────────────────────────────┐
│                   Khoj Server (FastAPI)                      │
│  ┌─────────────┐  ┌──────────────┐  ┌──────────────────────┐ │
│  │  Pipeline   │  │  Router Chat │  │   Engine Agent       │ │
│  │  Indexing   │  │              │  │  (Tool + Planner)    │ │
│  └──────┬──────┘  └──────┬───────┘  └──────────────────────┘ │
└─────────┼────────────────┼────────────────────────────────────┘
          │                │
┌─────────▼──────┐  ┌──────▼──────────────────────────────────┐
│  Vector Store  │  │         LLM Adapters                     │
│  (embeddings)  │  │  OpenAI │ Anthropic │ Google │ Ollama    │
└────────────────┘  └─────────────────────────────────────────┘

Cấu Trúc Mã Nguồn

Codebase Khoj dưới src/khoj/ được tổ chức rõ ràng theo chức năng:

Thư mụcMục đích
routers/Các endpoint FastAPI REST & WebSocket (chat, agent, tìm kiếm, file)
processor/conversation/LLM adapter cho từng nhà cung cấp (OpenAI, Anthropic, Google, Ollama)
processor/content/Parser tài liệu (PDF, Markdown, Notion, Org-mode, Word)
database/Models Django ORM — cuộc trò chuyện, agent, file, người dùng
search/Pipeline tìm kiếm ngữ nghĩa dùng sentence-transformers
routers/api_agents.pyREST API đầy đủ để tạo và quản lý agent

Mẫu LLM Adapter

Một trong những thiết kế thanh lịch nhất của Khoj là mẫu LLM adapter. Mỗi nhà cung cấp có module riêng với cùng interface:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# src/khoj/processor/conversation/anthropic/anthropic_chat.py
async def converse_anthropic(
    messages: List[ChatMessage],
    model: Optional[str] = "claude-3-7-sonnet-latest",
    api_key: Optional[str] = None,
    deepthought: Optional[bool] = False,
    tracer: dict = {},
) -> AsyncGenerator[ResponseWithThought, None]:
    """Trò chuyện với người dùng dùng Claude của Anthropic"""
    async for chunk in anthropic_chat_completion_with_backoff(
        messages=messages,
        model_name=model,
        temperature=0.2,
        ...
    ):
        yield chunk

Mẫu tương tự được áp dụng cho openai_chat.py, google_chat.py, và ollama_chat.py. Router chọn adapter phù hợp lúc runtime dựa trên model mà người dùng cấu hình — bạn chuyển từ GPT-4o sang Gemini sang Llama 3 mà không cần thay đổi bất kỳ dòng code nào.

Pipeline Nạp Tài Liệu

Khoj đọc kho kiến thức của bạn và lập chỉ mục vào vector store để truy hồi ngữ nghĩa:

  • PDF → parser pypdf
  • Markdown / Org-mode → trích xuất plain text
  • Notion → tích hợp API chính thức
  • Word → parser Office XML
  • Ảnh → mô tả bằng Vision LLM

Tất cả đều vào chỉ mục vector embedding (sentence-transformers). Khi bạn đặt câu hỏi, Khoj thực hiện tìm kiếm tương đồng ngữ nghĩa trên corpus của bạn, lấy k phần liên quan nhất, và truyền chúng làm ngữ cảnh vào LLM — RAG cổ điển, nhưng tích hợp sâu sắc.


Phần 3: Chẩn Đoán — Khoj Làm Gì Cho Lập Trình Viên

Trường Hợp 1: Trợ Lý Nghiên Cứu Cá Nhân

Tải toàn bộ thư viện nghiên cứu — 300 PDF, 1.000 note Markdown, toàn bộ Notion — và trò chuyện với chúng:

1
2
3
4
# Đồng bộ thư mục tài liệu local
khoj --content-file /path/to/research/

# Hoặc qua web UI: Settings → Files → Upload

Hỏi: “Trong các bài báo của mình, bài nào đề cập kiến trúc Transformer cho dự báo chuỗi thời gian?” Khoj truy hồi các đoạn liên quan, trích dẫn chúng, và tổng hợp câu trả lời mạch lạc.

Trường Hợp 2: Agent AI Tùy Chỉnh

Hệ thống agent của Khoj cho phép bạn tạo nhân vật AI chuyên biệt với kho kiến thức, LLM, system prompt và công cụ riêng:

1
2
3
4
5
6
Settings → Agents → Create Agent
- Name: "Python Code Reviewer"
- Model: Llama 3.1 70B (local via Ollama)
- Knowledge Base: tài liệu codebase nội bộ của công ty
- Tools: Web Search, Code Execution
- Persona: "Bạn là senior engineer nghiêm khắc. Review code về bảo mật và độ chính xác."

Mỗi agent có endpoint chat riêng. Bạn có thể có agent “Nhà Phân Tích Nghiên Cứu” đọc PDF học thuật và agent “Copywriter Marketing” đọc tài liệu brand guidelines — cả hai chạy trên cùng một server Khoj.

Trường Hợp 3: Nghiên Cứu Tự Động (Scheduled Jobs)

Khoj có thể đóng vai trợ lý chủ động:

  • Thiết lập task nghiên cứu hàng ngày: “Mỗi sáng, tìm kiếm tin tức về AI safety và gửi cho tôi một bản tóm tắt dạng newsletter”
  • Nó duyệt web, tổng hợp thông tin, và giao đến kênh bạn cấu hình (email, webhook, v.v.)

Trường Hợp 4: Bảo Mật Dữ Liệu — Chạy Hoàn Toàn Local

Dành cho lập trình viên không muốn gửi dữ liệu lên đám mây bên thứ ba:

1
2
3
4
5
# Chạy Llama 3 local qua Ollama
ollama run llama3.1

# Trỏ Khoj vào đó
# Trong Khoj UI → Chat Models → Add Model → host: http://localhost:11434

Tài liệu của bạn ở trên ổ đĩa của bạn. Cuộc trò chuyện được xử lý local. Không có dữ liệu nào rời máy tính.

Các LLM Được Hỗ Trợ

LoạiNhà cung cấpModel ví dụ
CloudOpenAIGPT-4o, o3-mini
CloudAnthropicClaude 3.7 Sonnet
CloudGoogleGemini 1.5 Pro, Flash
CloudCohere, Mistral AICommand R, Mistral Large
LocalOllamaLlama 3.1, Qwen, Gemma, DeepSeek

Phần 4: Giải Pháp — Cách Bắt Đầu

Lựa Chọn A: Cloud (Không Cần Cài Đặt)

Con đường nhanh nhất — truy cập app.khoj.dev và tạo tài khoản miễn phí. Không cần cài đặt gì.

Lựa Chọn B: Self-Host với Docker (Khuyên Dùng)

1
2
3
4
5
6
7
mkdir ~/.khoj && cd ~/.khoj

# Tải file compose chính thức
wget https://raw.githubusercontent.com/khoj-ai/khoj/master/docker-compose.yml

# Khởi động
docker-compose up -d

Truy cập http://localhost:42110 là xong.

Lựa Chọn C: Self-Host với pip (Dành Cho Python Developer)

1
2
3
4
5
# Cài đặt với hỗ trợ LLM local (llama-cpp-python)
python -m pip install 'khoj[local]'

# Khởi động server
khoj

Để tăng tốc bằng GPU:

1
2
3
4
5
# NVIDIA CUDA
CMAKE_ARGS="-DGGML_CUDA=on" FORCE_CMAKE=1 python -m pip install 'khoj[local]'

# Apple M1/M2/M3
CMAKE_ARGS="-DGGML_METAL=on" python -m pip install 'khoj[local]'

Thêm Kho Kiến Thức Của Bạn

Sau khi khởi động Khoj:

  1. Web App: Vào Settings → Files → kéo thả PDF, Markdown, hoặc kết nối Notion
  2. Obsidian Plugin: Cài plugin Khoj → nó lập chỉ mục vault của bạn tự động
  3. CLI đồng bộ:
1
khoj --content-file ~/notes/ --content-file ~/research/*.pdf

Kết Nối LLM Ưa Thích

Trong Settings → Chat Models:

  • Thêm OpenAI key cho GPT-4o
  • Thêm Anthropic key cho Claude
  • Trỏ về http://localhost:11434 cho các model Ollama local

Khoj sẽ định tuyến tất cả cuộc trò chuyện qua model bạn chọn làm mặc định.


Mô Hình Tư Duy Cuối Cùng

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
┌────────────────────────────────────────────────────────────┐
│                          Khoj                              │
│                                                            │
│  "Bộ não AI thứ hai mã nguồn mở của bạn"                  │
│                                                            │
│  Khoj LÀ:                                                  │
│  → Ứng dụng AI cá nhân tự cài được (FastAPI + Python)      │
│  → Router LLM-agnostic (GPT, Claude, Gemini, Ollama)       │
│  → Pipeline RAG trên TÀI LIỆU CỦA BẠN                     │
│  → Trình xây dựng agent với kiến thức + công cụ tùy chỉnh │
│                                                            │
│  Khoj GIẢI QUYẾT:                                          │
│  → Kiến thức rải rác qua file, app và công cụ              │
│  → Phụ thuộc vào dịch vụ AI đóng, chỉ trên cloud          │
│  → Quyền riêng tư: dữ liệu ở trên máy bạn nếu bạn muốn   │
│                                                            │
│  Khoj KÍCH HOẠT:                                           │
│  → Chat với hàng ngàn tài liệu của riêng bạn              │
│  → LLM local (Llama, Qwen, DeepSeek) qua Ollama            │
│  → Agent tự động nghiên cứu và gửi newsletter              │
│  → Đa nền tảng: Web, Obsidian, Emacs, Phone, WhatsApp      │
│                                                            │
│  Self-host: pip install khoj | docker-compose up           │
│  Cloud: app.khoj.dev (có gói miễn phí)                    │
└────────────────────────────────────────────────────────────┘

GitHub: khoj-ai/khoj
Docs: docs.khoj.dev
Live App: app.khoj.dev

Được tạo với sự lười biếng tình yêu 🦥

Subscribe to My Newsletter