Skip to content

Repository files navigation

Advanced RAG System - AI Document Assistant

Hệ thống Chatbot RAG (Retrieval-Augmented Generation) hướng production, cho phép người dùng trò chuyện và truy vấn thông tin từ nhiều nguồn dữ liệu như tài liệu, hình ảnh OCR và website.

Tinh nang noi bat

  • Ho tro da dinh dang du lieu:
    • Tai lieu van ban: PDF, DOCX, TXT
    • OCR hinh anh bang EasyOCR
    • Web crawling qua Cloudflare Browser Rendering API
  • Pipeline RAG nang cao:
    • Hybrid Search: ket hop FAISS (semantic) + BM25 (keyword)
    • Cross-Encoder Re-ranking: chon context lien quan nhat
    • Query Rewriting + Multi-hop Retrieval
    • Self-Evaluation: tu danh gia chat luong cau tra loi
  • Kien truc linh hoat:
    • Hoat dong tren CPU
    • Ho tro GPU (NVIDIA)

Yeu cau he thong

  1. Da cai Docker va Docker Compose.
  2. Co tai khoan Cloudflare (neu dung web crawl).
  3. Tuy chon: NVIDIA Container Toolkit neu chay bang GPU.

Huong dan cai dat

Buoc 1: Chuan bi du an

Dam bao thu muc du an co toi thieu:

  • manage.py
  • Dockerfile
  • docker-compose.yml
  • Thu muc rag_app/
  • Thu muc streamlit_frontend/
  • requirements.txt

Buoc 2: Cau hinh bien moi truong

Tao file moi truong tu mau:

cp .env.example .env

Mo .env va dien cac gia tri can thiet:

  • Database:
    • POSTGRES_DB
    • POSTGRES_USER
    • POSTGRES_PASSWORD
  • Hardware:
    • Dat USE_GPU=True neu dung GPU NVIDIA
    • Neu khong dung GPU, dat USE_GPU=False
  • Cloudflare (neu dung web crawl):
    • CLOUDFLARE_ACCOUNT_ID
    • API_TOKEN

Neu chay GPU, cap nhat docker-compose.yml cho cac service can GPU (vi du ollama, web):

deploy:
  resources:
    reservations:
      devices:
        - driver: nvidia
          count: 1
          capabilities: [gpu]

Buoc 3: Cau hinh FAISS cho GPU (tuy chon)

Mac dinh du an dung faiss-cpu. Neu chay GPU, sua requirements.txt:

  • Xoa/comment: faiss-cpu==1.8.0
  • Them: faiss-gpu==1.8.0

Dieu kien bat buoc khi dung GPU:

Buoc 4: Build va khoi dong container

Chay lenh sau tai thu muc goc:

docker-compose up -d --build

Lenh nay se build backend/frontend va khoi dong cac service can thiet (bao gom Postgres, Ollama neu co cau hinh).

Buoc 5: Khoi tao database va tai khoan admin

docker-compose exec web python manage.py migrate
docker-compose exec web python manage.py createsuperuser

Buoc 6: Tai model cho Ollama

Du an mac dinh dung:

  • LLM: qwen2:7b
  • Embedding: nomic-embed-text

Tai model trong container Ollama:

docker-compose exec ollama ollama pull qwen2:7b
docker-compose exec ollama ollama pull nomic-embed-text

Ban co the thay doi ten model trong file .env de phu hop cau hinh may.

About

An advanced AI Document Assistant using a RAG pipeline with Hybrid Search (FAISS + BM25) and local LLMs via Ollama.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages