PageIndex

Hệ thống RAG vectorless dựa trên tư duy lập luận (reasoning-based), giúp AI tra cứu tài liệu dài chính xác như chuyên gia.

Giới thiệu

PageIndex là một framework mã nguồn mở mang tính cách mạng trong lĩnh vực RAG (Retrieval-Augmented Generation). Khác với các hệ thống RAG truyền thống dựa vào Vector Database (cắt nhỏ văn bản và tìm kiếm tương đồng), PageIndex sử dụng phương pháp “Vectorless, Reasoning-based”.

Nó giải quyết vấn đề lớn nhất của RAG hiện tại: độ chính xác thấp khi xử lý các tài liệu dài và phức tạp (như báo cáo tài chính, tài liệu pháp lý, sách kỹ thuật). Thay vì chỉ tìm kiếm từ khóa, PageIndex xây dựng một cấu trúc cây phân cấp (như mục lục sách) và cho phép LLM thực hiện “tư duy” để điều hướng qua các phần của tài liệu, mô phỏng cách con người đọc và tra cứu thông tin.

Tính năng chính

  • Vectorless Retrieval: Không cần Vector Database, loại bỏ sự phức tạp của việc quản lý embeddings.
  • No Chunking: Không cắt nhỏ tài liệu một cách máy móc. PageIndex giữ nguyên cấu trúc tự nhiên (chương, mục) của văn bản.
  • Hierarchical Tree Index: Tạo chỉ mục dạng cây (Tree Structure) giúp AI nắm bắt ngữ cảnh toàn cục và chi tiết.
  • Reasoning-based Navigation: AI sử dụng tư duy để định vị thông tin cần thiết thay vì chỉ so khớp từ ngữ (semantic similarity).
  • Explainability: Kết quả trả về minh bạch, có thể truy xuất nguồn gốc chính xác (trang nào, mục nào).
  • Hỗ trợ MCP: Tích hợp sẵn Model Context Protocol để kết nối dễ dàng với các AI Agent như Claude Desktop.

Hướng dẫn cài đặt Local (macOS)

Để chạy PageIndex trên macOS, bạn cần cài đặt Python và lấy API Key.

Bước 1: Cài đặt Python (nếu chưa có) Sử dụng Homebrew:

brew install python

Bước 2: Tạo môi trường ảo (Khuyên dùng)

python3 -m venv venv
source venv/bin/activate

Bước 3: Cài đặt thư viện PageIndex

pip install pageindex

Bước 4: Cấu hình API Key Bạn cần đăng ký tài khoản tại dash.pageindex.ai để lấy API Key miễn phí (hoặc trả phí). Sau đó thiết lập biến môi trường:

export PAGEINDEX_API_KEY='your_api_key_here'

Hướng dẫn Docker

Repository này chủ yếu là thư viện Python. Để đóng gói một ứng dụng sử dụng PageIndex bằng Docker, bạn có thể sử dụng Dockerfile cơ bản sau:

  1. Tạo file Dockerfile:

# Sử dụng Python 3.10 slim để tối ưu dung lượng
FROM python:3.10-slim

# Thiết lập thư mục làm việc
WORKDIR /app

# Copy file requirements (nếu có) hoặc cài trực tiếp
RUN pip install --no-cache-dir pageindex

# Copy mã nguồn vào container
COPY . .

# Thiết lập biến môi trường (khuyên dùng file .env khi run)
ENV PAGEINDEX_API_KEY="your_api_key_here"

# Lệnh chạy ứng dụng
CMD ["python", "main.py"]
  1. Build và Run container:
    docker build -t pageindex-app .
    docker run -e PAGEINDEX_API_KEY='your_real_key' pageindex-app
    

Ví dụ Code (Example Code)

Dưới đây là đoạn code Python mẫu minh họa cách tạo index từ file PDF và thực hiện tra cứu thông tin:

import os
from pageindex import PageIndexClient

# 1. Khởi tạo client
api_key = os.getenv("PAGEINDEX_API_KEY")
client = PageIndexClient(api_key=api_key)

# 2. Upload tài liệu và xây dựng cấu trúc cây (Tree Index)
# Thay 'tai_lieu.pdf' bằng đường dẫn file thực tế của bạn
print("Đang xử lý tài liệu...")
tree_index = client.build_tree_from_path("tai_lieu.pdf")

# 3. Thực hiện truy vấn (Reasoning Retrieval)
question = "Doanh thu quý 3 tăng trưởng bao nhiêu phần trăm?"
print(f"Câu hỏi: {question}")

# AI sẽ tư duy qua cấu trúc cây để tìm câu trả lời
response = client.query(tree_index, question)

# 4. In kết quả
print("\nCâu trả lời:")
print(response.answer)
print("\nNguồn tham khảo:", response.sources)

Sources

Github Page

https://github.com/VectifyAI/PageIndex

Tags: github
Share: X (Twitter) Facebook LinkedIn