Getting Started
🔎 Danh Mục
- Giới Thiệu
- Chức Năng
- Tổng Quan Hệ Thống
- Cấu Trúc Thư Mục
- Hướng Dẫn Cài Đặt
- CI/CD
- 🙌 Đóng Góp
- 📝 License
Giới Thiệu
- Pháp điển là tập hợp các quy phạm pháp luật đang còn hiệu lực của các văn bản quy phạm pháp luật do cơ quan nhà nước ở trung ương ban hành, từ Thông tư trở lên và trừ Hiến pháp.
- Cơ sở dữ liệu văn bản quy phạm pháp luật Việt Nam được xây dựng từ năm 2000, bao gồm các văn bản quy phạm pháp luật từ năm 1990 đến nay. Cơ sở dữ liệu này được cập nhật thường xuyên, đảm bảo tính toàn vẹn, đầy đủ và chính xác của các văn bản quy phạm pháp luật.
- Tuy nhiên, do việc cập nhật không thường xuyên của pháp điển so với các văn bản quy phạm pháp luật, nên pháp điển hiện tại không đảm bảo tính toàn vẹn, đầy đủ và chính xác của các văn bản quy phạm pháp luật.
Chức Năng Chính
Project tập trung vào các chức năng chính như sau:
- 🤖 Trả lời các câu hỏi về pháp luật của người dùng.
- 🔍 Hệ thống tra cứu các pháp điển, văn bản quy phạm pháp luật: chỉ mục, liên kết các điều mục, các bảng và biểu mẫu.
- 📖 Tóm tắt văn bản, hỗ trợ người dùng trong lúc tra cứu.
- 📝 Gợi ý văn bản quy phạm pháp luật theo từ khóa tìm kiếm, nhận đóng góp để cải thiện gợi ý.
👩💻 Tổng Quan Hệ Thống
Backend của hệ thống được thiết kế theo kiến trúc microservices, với các công nghệ sử dụng như sau:
- NextJS 14: Xây dựng web-app, hỗ trợ SEO, SSR, SSG.
- Kong API Gateway: API Gateway cho hệ thống.
- ExpressJS: Dựng API cho Auth Service.
- SpringBoot: Dựng API cho Law Service.
- Flask: Dựng API cho Q&A - RAG Service.
- LangChain: Sử dụng để truy vấn các context là tri thức luật.
- MySQL: Cơ sở dữ liệu quan hệ.
- Redis: Cơ sở dữ liệu NoSQL in-memory dạng key-value.
- ChromaDB: Cơ sở dữ liệu embedding dạng vector.
- RabbitMQ: Message broker cho hệ thống.
- Docker: Containerize các service.
- Docker Compose: Quản lý các container.
- Prometheus: Monitor các metrics.
- Grafana: WebUI hiển thị metrics.
Cấu trúc thư mục
- Crawler - Crawl vào CSDL từ nguồn pháp điển Việt Nam.
- Backend - Chứa các mô hình, services, kiến trúc của hệ thống.
- Web - Giao diện người dùng.
- Documents - Tài liệu về dự án.
Hướng Dẫn Cài Đặt
Yêu Cầu 📋
Để cài đặt và chạy được dự án, trước tiên bạn cần phải cài đặt các công cụ bên dưới. Hãy thực hiện theo các hướng dẫn cài đặt sau, lưu ý chọn hệ điều hành phù hợp với máy tính của bạn:
Lưu ý: NextJS 14 chỉ tương thích với NodeJS từ version 18 trở lên.
🔨 Cài Đặt
Trước hết, hãy clone dự án về máy tính của bạn:
git clone https://github.com/CTU-LinguTechies/VN-Law-Advisor.git vnlawadvisor
cd vào thư mục vnlawadvisor:
cd vnlawadvisor
Chạy crawler lấy dữ liệu pháp điển và các van bản quy phạm pháp luật (optional):
Bước này chỉ cần chạy một lần duy nhất để lấy dữ liệu pháp điển và các văn bản quy phạm pháp luật vào cơ sở dữ liệu MySQL. Nếu bạn đã có dữ liệu, bạn có thể bỏ qua bước này và tự import vào hệ thống với hướng dẫn phía dưới.
Để cào dữ liệu, hãy:
cd law-crawler
Và tiếp tục theo hướng dẫn trong thư mục law-crawler README.md.
Chạy backend hệ thống
- Đầu tiên, cd vào thư mục backend:
cd backend
- Start các services với 1 lệnh docker-compose:
docker-compose up -d
Chạy web-app
- Đầu tiên, cd vào thư mục web:
cd web
- Cài đặt các thư viện cần thiết:
npm install
- Chạy web-app development mode:
npm run dev
Lúc này web-app sẽ chạy ở địa chỉ http://localhost:3000. Đến đây, bạn đã cài đặt xong. Còn nếu như bạn muốn chạy project ở môi trường production, hãy ngừng development server và chạy các lệnh sau:
- Build frontend web-app
npm run build
- Chạy web-app production mode:
npm run start
Lúc này web-app sẽ chạy ở địa chỉ http://localhost:3000.
🙌 Đóng góp cho dự án
Nếu bạn muốn đóng góp cho dự án, hãy đọc CONTRIBUTING.md để biết thêm chi tiết.
Mọi đóng góp của các bạn đều được trân trọng, đừng ngần ngại gửi pull request cho dự án.
📝 License
This project is licensed under the terms of the GPL V3 license.