Skip to content

letuandatt/LegalAIChatbot

Repository files navigation

📚 LegalAIChatbot

Python Flask LangChain License

💡 LegalAIChatbot là một hệ thống hỏi – đáp văn bản pháp luật tiếng Việt dựa trên phương pháp Retrieval-Augmented Generation (RAG).
📂 Người dùng có thể tải lên file PDF (văn bản pháp luật), hệ thống sẽ tự động trích xuất metadata, lưu tài liệu dưới dạng embeddings, hoặc truy vấn trực tiếp vào kho tri thức của hệ thống.
✅ Kết quả: câu trả lời chính xác, có trích dẫn rõ ràng từ văn bản gốc.


🖼️ Giao diện hệ thống

LegalAIChatbot UI


🚀 Tính năng nổi bật

  • Upload PDF: Hỗ trợ trích xuất metadata tự động (ngày ban hành, người ký, số hiệu, …).
  • Vector Embeddings + ChromaDB: Sử dụng embedding model (Google Generative Embeddings), lưu vào Chroma database để truy vấn nhanh.
  • Hybrid Search (Semantic + BM25): Tăng độ chính xác trả lời bằng kết hợp tìm kiếm ngữ nghĩa và từ khóa.
  • Hỏi đáp theo ngữ cảnh: Trả lời chính xác với trích dẫn nguồn, ngày ban hành, người ký.
  • Quản lý nhiều cuộc trò chuyện (sessions): Cho phép tạo, xóa, đổi tên, chuyển đổi giữa các phiên hỏi đáp dễ dàng.

🛠️ Công nghệ sử dụng

Thành phần Công nghệ / Thư viện
Web Framework Flask
NLP + RAG Pipeline LangChain + Google Generative AI
Vector Database ChromaDB
Keyword Search rank_bm25
PDF Parsing fitz (PyMuPDF)
Embedding Model Google Generative Embeddings

📦 Cài đặt & Sử dụng

1. Clone repo

git clone https://github.com/letuandatt/LegalAIChatbot.git
cd LegalAIChatbot

2. Tạo và kích hoạt môi trường ảo

python -m venv .venv
# Linux / macOS:
source .venv/bin/activate
# Windows:
.venv\Scripts\activate

3. Cài đặt dependencies

pip install -r requirements.txt

Các gói chính gồm:

  • Flask~=3.1.2
  • langchain-core~=0.3.74
  • langchain-google-genai~=2.1.9
  • rank-bm25~=0.2.2
  • langchain~=0.3.27
  • langchain-experimental~=0.3.4
  • langchain-text-splitters~=0.3.9
  • python-dotenv~=1.1.1
  • ragas~=0.3.2
  • datasets~=3.6.0
  • requests, selenium, beautifulsoup4 …

4. Thiết lập biến môi trường

Tạo file .env trong thư mục gốc và thêm API key:

GOOGLE_API_KEY=your_api_key_here

5. Chạy ứng dụng

python app.py

Ứng dụng chạy tại: http://127.0.0.1:5000/

📖 Hướng dẫn sử dụng

  1. Tạo phiên trò chuyện mới trên giao diện.
  2. Tải file PDF văn bản pháp luật lên hoặc truy vấn trực tiếp vào kho kiến thức của hệ thống.
  3. Nếu tải file PDF, hệ thống sẽ trích xuất metadata và lưu vào vectorstore.
  4. Đặt câu hỏi như:
    • "Theo chỉ thị 17/CT-TTg năm 2025, Bộ Tài chính có vai trò gì?"
    • "Theo Khoản b, Mục 1, Chỉ thị 07/CT-TTg, Thủ tướng yêu cầu tạm dừng việc gì?"
    • "Mức chuẩn nghèo khu vực nông thôn theo Chỉ thị 1752/CT-TTg là bao nhiêu?"
  5. Nhận câu trả lời có trích dẫn rõ ràng.

📊 Kiến trúc hệ thống

             ┌───────────────────────┐
             │  User Query (Câu hỏi) │
             └───────────┬───────────┘
                         │
     ┌───────────────────┴─────────────────────┐
     │                                         │
[User uploads PDF]                   [Truy vấn trực tiếp KB]
     │                                         │
     ▼                                         ▼
Preprocessing (metadata + chunking)    Truy vấn vectorstore mặc định
     │                                         │
     ▼                                         ▼
Embedding Model                        Embedding Model
     │                                         │
     ▼                                         ▼
Vectorstore (ChromaDB) <─── cả hai đều bổ sung dữ liệu ──▶
     │
     ▼
Hybrid Search (Semantic + BM25)
     │
     ▼
RAG (Gemini LLM) sinh câu trả lời kèm trích dẫn nguồn 
     │
     ▼
Web UI (Flask) hiển thị kết quả


🔮 Định hướng phát triển

  • Hỗ trợ thêm vectorstore khác (Pinecone, Milvus, Weaviate).
  • Bổ sung giao diện chat trực quan hơn (Vue/React).
  • Cải thiện pipeline tiền xử lý văn bản pháp luật.
  • Tích hợp xác thực người dùng & quản lý dữ liệu.

📄 Giấy phép

Dự án phát hành dưới giấy phép Apache-2.0 license.


👨‍💻 Tác giả & Liên hệ

📌 Lê Tuấn Đạt


Made with ❤️ by Lê Tuấn Đạt

About

A chatbot for searching details from legal documents

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors