Quay lại danh sách
Tin tức công nghệ

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

7 tháng 6, 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ố, các công cụ tìm kiếm tích hợp trí tuệ nhân tạo như Perplexity AI đ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 thô, AI Search tổng hợp, phân tích và đưa ra câu trả lời trực tiếp kèm theo nguồn trích dẫn cụ thể. Tuy nhiên, đối với các doanh nghiệp, tổ chức và chuyên gia xử lý dữ liệu nhạy cảm, việc gửi các truy vấn nghiên cứu chiến lược lên các nền tảng đám mây công cộng luôn tiềm ẩn nguy cơ rò rỉ thông tin dữ liệu nghiêm trọng.

Để giải quyết triệt để bài toán này, giải pháp tối ưu nhất là tự vận hành một hệ thống AI Search Engine nội bộ trên máy chủ riêng (VPS/Server). Bài viết này sẽ hướng dẫn bạn từng bước thiết lập một hệ thống tương tự Perplexity nhưng có độ bảo mật 100%, sử dụng bộ ba công nghệ: SearXNG (Meta-search engine bảo mật), SearXNG-Markdown (trích xuất nội dung tinh gọn) và Local LLM (Mô hình ngôn ngữ lớn chạy cục bộ).

---

Kiến trúc hệ thống AI Search Engine riêng tư

Hệ thống AI Search tự lưu trữ (Self-hosted) hoạt động dựa trên cơ chế kết hợp giữa Tìm kiếm và Tạo sinh (Retrieval-Augmented Generation - RAG). Sơ đồ vận hành bao gồm các thành phần cốt lõi sau:

  • Giao diện người dùng (Frontend): Nơi tiếp nhận câu hỏi và hiển thị câu trả lời dạng dòng chảy (streaming) kèm trích dẫn, tương tự giao diện của Perplexity.
  • SearXNG (Search Backend): Thu thập kết quả tìm kiếm từ hơn 70 nguồn phổ biến (Google, Bing, DuckDuckGo) một cách ẩn danh, bảo vệ danh tính của máy chủ.
  • SearXNG-Markdown (Parser): Chuyển đổi các trang web tìm được thành định dạng Markdown thô, loại bỏ hoàn toàn quảng cáo, script và mã HTML thừa để tối ưu hóa context window.
  • Local LLM (Inference Engine): Sử dụng Ollama để chạy các mô hình mã nguồn mở như Llama 3 hoặc Qwen 2.5 trực tiếp trên tài nguyên VPS của bạn.
Ưu điểm vượt trội: Dữ liệu truy vấn không bao giờ rời khỏi hệ thống VPS của bạn, chi phí vận hành cố định và không bị giới hạn số lượng lượt tìm kiếm theo tháng.
---

Yêu cầu cấu hình VPS tối thiểu

Để hệ thống vận hành ổn định với tốc độ phản hồi tốt cho môi trường doanh nghiệp, cấu hình VPS khuyến nghị cần đáp ứng:

Thành phầnCấu hình tối thiểu (CPU Only)Cấu hình khuyến nghị (Có GPU)
CPU4 Cores (Intel/AMD)4 Cores hoặc cao hơn
RAM8 GB RAM (Dành cho mô hình 3B hoặc 7B quantized)16 GB RAM trở lên
GPUKhông yêu cầuNVIDIA T4, L4 hoặc RTX series (Tối thiểu 8GB VRAM)
Hệ điều hànhUbuntu 22.04 LTS / 24.04 LTSUbuntu 22.04 LTS / 24.04 LTS
---

Hướng dẫn triển khai chi tiết từng bước

Bước 1: Cài đặt Docker và môi trường cơ sở

Đầu tiên, hãy cập nhật hệ thống và cài đặt Docker cùng Docker Compose để quản lý các container dễ dàng hơn.

sudo apt update && sudo apt upgrade -y
sudo apt install docker.io docker-compose -y
sudo systemctl enable --now docker

Bước 2: Cấu hình và triển khai SearXNG

Tạo một thư mục riêng cho dự án và thiết lập file cấu hình cho SearXNG để cho phép xuất dữ liệu dưới định dạng JSON, phục vụ cho việc kết nối với AI.

  • Tạo thư mục dự án:
    mkdir -p ~/ai-search && cd ~/ai-search
  • Khởi tạo cấu hình SearXNG và kích hoạt định dạng JSON trong file settings.yml:
  • # Trong file settings.yml, hãy đảm bảo cấu hình phần formats như sau:
    search:
      formats:
        - html
        - json

    Bước 3: Tích hợp SearXNG-Markdown và Khởi chạy Docker Compose

    Tạo file docker-compose.yml để liên kết giao diện tìm kiếm (ví dụ: Vane hoặc Open WebUI chuyên dụng cho AI search), SearXNG, công cụ định dạng SearXNG-Markdown và Ollama lại với nhau trong cùng một mạng nội bộ.

    version: '3.8'
    
    services:
      searxng:
        image: docker.io/searxng/searxng:latest
        volumes:
          - ./searxng:/etc/searxng:ro
        ports:
          - "8080:8080"
        restart: always
    
      ollama:
        image: ollama/ollama:latest
        volumes:
          - ollama:/root/.ollama
        ports:
          - "11434:11434"
        restart: always
    
      ai-search-ui:
        image: itzcrazykns1337/vane:latest
        ports:
          - "3000:3000"
        environment:
          - SEARXNG_URL=http://searxng:8080
          - OLLAMA_BASE_URL=http://ollama:11434
        volumes:
          - ui-data:/home/vane/data
        depends_on:
          - searxng
          - ollama
        restart: always
    
    volumes:
      ollama:
      ui-data:

    Chạy lệnh sau để khởi động toàn bộ hệ thống ngầm: docker-compose up -d.

    Bước 4: Tải Mô hình ngôn ngữ (Local LLM) thông qua Ollama

    Sau khi container Ollama hoạt động, bạn cần tải mô hình ngôn ngữ phù hợp về VPS. Đối với cấu hình CPU, mô hình Qwen2.5-7B-Instruct hoặc Llama-3-8B phiên bản quantized là sự lựa chọn tối ưu về độ chính xác và khả năng xử lý tiếng Việt.

    docker exec -it ai-search-ollama-1 ollama run qwen2.5:7b
    ---

    Tối ưu hóa và Đánh giá hiệu năng thực tế

    Sau khi hoàn tất cài đặt, bạn truy cập vào giao diện quản trị qua cổng http://:3000. Hãy chọn mô hình vừa tải và bắt đầu thực hiện các truy vấn tìm kiếm đầu tiên. Hệ thống sẽ tự động gửi từ khóa đến SearXNG, lấy kết quả, chuyển qua bộ phân tích cấu trúc Markdown của SearXNG-Markdown để làm sạch dữ liệu, sau đó đưa vào Local LLM để tổng hợp câu trả lời hoàn chỉnh kèm số thứ tự nguồn trích dẫn ở cuối câu.

    Để đảm bảo an toàn tuyệt đối khi đưa vào sử dụng trong doanh nghiệp, bạn nên cấu hình thêm một lớp Reverse Proxy (như Nginx hoặc Caddy) kèm chứng chỉ SSL (HTTPS) và bật tính năng xác thực cơ bản (Basic Authentication) nhằm ngăn chặn các truy cập trái phép từ bên ngoài Internet vào hệ thống AI Search nội bộ của bạn.