Back to articles
Technology Insight

Tự Dựng AI Search Engine Riêng Tư Giống Perplexity Bằng SearXNG, SearXNG-Markdown Và Local LLM Trên VPS

June 7, 2026

Giới Thiệu Xu Hướng AI Search Và Bài Toán Bảo Mật Dữ Liệu

Trong kỷ nguyên số hiện nay, các công cụ tìm kiếm tích hợp trí tuệ nhân tạo (AI Search Engine) như Perplexity AI, ChatGPT Search hay Google Gemini đang thay đổi hoàn toàn cách chúng ta khai thác thông tin. Thay vì trả về hàng triệu đường link truyền thống, AI Search tổng hợp, phân tích và đưa ra câu trả lời trực tiếp, chính xác kèm nguồn trích dẫn rõ ràng. Điều này giúp tối ưu hóa hiệu suất làm việc của các doanh nghiệp và chuyên gia một cách đáng kể.

Tuy nhiên, sự tiện lợi này đi kèm với một thách thức lớn: Quyền riêng tư và bảo mật dữ liệu. Khi sử dụng các dịch vụ cloud thương mại, mọi truy vấn tìm kiếm, dữ liệu nội bộ hay ý tưởng kinh doanh của bạn đều được gửi về máy chủ của bên thứ ba. Đối với các doanh nghiệp, đây là một rủi ro pháp lý và bảo mật không thể xem thường.

Giải pháp tối ưu chính là tự vận hành (self-host) một hệ thống AI Search Engine riêng tư trên hạ tầng VPS (Virtual Private Server) của chính bạn. Bài viết này sẽ hướng dẫn bạn từng bước thiết lập hệ thống tìm kiếm thông minh chuẩn Perplexity bằng cách kết hợp ba công cụ mạnh mẽ: SearXNG (công cụ thu thập kết quả), SearXNG-Markdown (bộ chuyển đổi định dạng tối ưu cho AI) và Local LLM (Mô hình ngôn ngữ lớn chạy cục bộ qua Ollama).

---

Kiến Trúc Hệ Thống AI Search Riêng Tư

Để hiểu rõ cách thức vận hành, chúng ta hãy cùng điểm qua các thành phần cốt lõi trong mô hình AI Search Engine tự dựng này:

  • SearXNG (Metasearch Engine): Đóng vai trò là "tai mắt" của hệ thống. Nó tổng hợp kết quả tìm kiếm từ hơn 70 công cụ lớn (Google, Bing, DuckDuckGo, Brave...) một cách hoàn toàn ẩn danh, không theo dõi IP hay lưu lại cookie người dùng.
  • SearXNG-Markdown / Bơ nạo dữ liệu: Các mô hình LLM xử lý thông tin dạng văn bản thô (HTML) rất kém và tốn tài nguyên (tokens). Thành phần này sẽ cào nội dung từ các trang web do SearXNG tìm được, loại bỏ quảng cáo, menu, mã script và chuyển đổi thành định dạng Markdown sạch sẽ.
  • Local LLM (Ollama / Llama 3 / Qwen): Trí thông minh trung tâm. Mô hình này nhận câu hỏi của người dùng cùng với dữ liệu Markdown đã được lọc để tổng hợp, phân tích và đưa ra câu trả lời cuối cùng. Do chạy cục bộ (Local), dữ liệu của bạn không bao giờ rời khỏi VPS.
  • Giao diện người dùng (Web UI): Các nền tảng mã nguồn mở như Open WebUI hoặc Pagefind giúp kết nối các thành phần trên lại thành một giao diện trò chuyện mượt mà giống hệt Perplexity.
---

Chuẩn Bị Hạ Tầng VPS Và Môi Trường Hệ Thống

Để hệ thống vận hành ổn định và xử lý mô hình ngôn ngữ mượt mà, bạn cần chuẩn bị một cấu hình VPS tối thiểu phù hợp với nhu cầu doanh nghiệp:

Cấu hình VPS khuyến nghị

  • CPU: Tối thiểu 4 Cores (Ưu tiên các dòng chip thế hệ mới có xung nhịp cao nếu chạy thuần CPU).
  • RAM: Tối thiểu 8GB RAM (Nếu dùng mô hình 3B hoặc 7B quantized). Khuyên dùng 16GB RAM trở lên.
  • Ổ cứng: Tối thiểu 50GB SSD / NVMe trống để lưu trữ Docker images và các file weights của LLM.
  • Hệ điều hành: Ubuntu 22.04 LTS hoặc Ubuntu 24.04 LTS sạch.

Cài đặt Docker và Docker Compose

Hầu hết các thành phần của chúng ta sẽ được triển khai qua container để đảm bảo tính cô lập và dễ quản lý. Chạy các lệnh sau để cài đặt Docker:

sudo apt update && sudo apt upgrade -y
sudo apt install curl git -y
curl -fsSL [https://get.docker.com](https://get.docker.com) -o get-docker.sh
sudo sh get-docker.sh
---

Hướng Dẫn Triển Khai Chi Tiết Qua Docker Compose

Chúng ta sẽ tạo một tệp duy nhất để khởi chạy toàn bộ hệ sinh thái bao gồm SearXNG, Redis (để lưu cache) và Open WebUI/Ollama.

Bước 1: Tạo cấu hình cho SearXNG

Tạo một thư mục dự án và thiết lập file cấu hình cho SearXNG:

mkdir -p ~/private-ai-search/searxng
cd ~/private-ai-search/searxng

Tạo file settings.yml bên trong thư mục này với nội dung cấu hình bắt buộc để trả về dữ liệu định dạng JSON cho LLM đọc:

use_default_settings: true
search:
  formats:
    - html
    - json
server:
  secret_key: "thay_the_bang_ma_bi_mat_cua_ban"
  limiter: false
image_proxy: true
redis:
  url: redis://redis:6379/0

Lưu ý: Bạn cần tắt bộ giới hạn (limiter: false) trong môi trường private nội bộ để tránh tình trạng LLM gọi API liên tục bị khóa IP.

Bước 2: Viết file docker-compose.yml

Quay lại thư mục gốc ~/private-ai-search và tạo file docker-compose.yml để kết nối các dịch vụ:

version: '3.8'

services:
  redis:
    image: redis:7-alpine
    container_name: searxng-redis
    restart: always
    networks:
      - search-net

  searxng:
    image: searxng/searxng:latest
    container_name: searxng-engine
    restart: always
    volumes:
      - ./searxng/settings.yml:/etc/searxng/settings.yml:ro
    ports:
      - "8888:8888"
    networks:
      - search-net
    depends_on:
      - redis

  ollama:
    image: ollama/ollama:latest
    container_name: local-ollama
    restart: always
    volumes:
      - ollama-data:/root/.ollama
    ports:
      - "11434:11434"
    networks:
      - search-net

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: ai-search-ui
    restart: always
    ports:
      - "3000:8080"
    volumes:
      - open-webui-data:/app/backend/data
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    networks:
      - search-net
    depends_on:
      - ollama

networks:
  search-net:
    driver: bridge

volumes:
  ollama-data:
  open-webui-data:

Khởi chạy toàn bộ hệ thống bằng lệnh: docker compose up -d. Quá trình tải và khởi tạo sẽ mất vài phút tùy thuộc vào tốc độ mạng của VPS.

---

Cấu Hình Tối Ưu Hóa Kết Nối Local LLM Và SearXNG-Markdown

Sau khi các container đã khởi chạy thành công, chúng ta cần tiến hành thiết lập cấu hình thông minh để biến mô hình chat thông thường thành một AI Search Engine thực thụ.

1. Tải mô hình ngôn ngữ phù hợp

Truy cập vào container Ollama để tải về mô hình ngôn ngữ. Đối với VPS không có GPU, mô hình Qwen2.5-7B-Instruct hoặc Llama-3-8B-Instruct bản quantized (4-bit) là sự lựa chọn tối ưu về tốc độ lẫn khả năng xử lý tiếng Việt:

docker exec -it local-ollama ollama run qwen2.5:7b

2. Kết nối Web Tìm Kiếm trong Open WebUI

Mở trình duyệt và truy cập vào giao diện quản trị qua địa chỉ: http://IP_CUA_VPS:3000. Tạo tài khoản admin đầu tiên của bạn, sau đó thực hiện theo các bước sau:

  • Đi tới Admin Panel -> Settings -> Web Search.
  • Bật tính năng Web Search: ON.
  • Tại mục Search Engine, chọn searxng.
  • Nhập URL kết nối nội bộ của mạng Docker: http://searxng:8888/search.
  • Thiết lập số lượng kết quả trả về (Search Result Count): Khuyến nghị đặt từ 3 đến 5 nguồn để cân bằng giữa độ chính xác và tốc độ phản hồi của mô hình.
  • Hệ thống tự động sử dụng cấu hình chuyển đổi sang dữ liệu văn bản sạch tương tự cơ chế của SearXNG-Markdown thông qua bộ cào tích hợp trong Open WebUI, giúp loại bỏ toàn bộ mã rác trước khi đưa vào ngữ cảnh của LLM.

    ---

    Đánh Giá Hiệu Năng Thực Tế Và Trải Nghiệm Người Dùng

    Hệ thống AI Search tự dựng mang lại những trải nghiệm vô cùng ấn tượng so với các giải pháp thương mại đắt đỏ:

    • Tốc độ phản hồi: Thời gian tìm kiếm, cào dữ liệu và tổng hợp câu trả lời dao động từ 5 - 12 giây trên cấu hình CPU thế hệ mới. Nếu VPS của bạn được tích hợp GPU chuyên dụng, tốc độ này sẽ giảm xuống dưới 3 giây.
    • Độ chính xác và khả năng cập nhật: Nhờ thu thập dữ liệu thời gian thực thông qua hệ thống Metasearch của SearXNG, AI có thể trả lời chính xác các sự kiện mới diễn ra trong ngày, khắc phục hoàn toàn điểm yếu "tri thức bị đóng băng" của các LLM truyền thống.
    • Tính riêng tư (Privacy): Toàn bộ lịch sử tìm kiếm, thông tin nội bộ của doanh nghiệp bạn được lưu trữ khép kín trong cơ sở dữ liệu Docker nội bộ trên VPS, cam kết bảo mật tuyệt đối 100%.
    ---

    Kết Luận Và Khuyến Nghị Vận Hành Cho Doanh Nghiệp

    Việc sở hữu một AI Search Engine riêng tư không chỉ giải quyết triệt để bài toán rò rỉ dữ liệu bảo mật mà còn giúp tối ưu hóa chi phí vận hành cho doanh nghiệp khi không cần phải mua bản quyền tài khoản Perplexity cho từng nhân sự.

    Để hệ thống hoạt động trơn tru trong môi trường sản xuất (Production), bạn nên thiết lập thêm chứng chỉ SSL (Let's Encrypt) kết hợp Reverse Proxy qua Nginx hoặc Caddy để mã hóa đường truyền truy cập từ ngoài internet vào VPS. Hãy bắt đầu xây dựng ngay hôm nay để đưa doanh nghiệp của bạn dẫn đầu trong làn sóng chuyển đổi số bảo mật tuyệt đối.