Ứng dụng hỗ trợ tra cứu, hỏi đáp tri thức pháp luật dựa trên Bộ pháp điển và CSDL văn bản QPPL Việt Nam.
Mục tiêu là phát triển một hệ thống tra cứu, hỏi đáp tri thức pháp luật Việt Nam. Dựa trên các mô hình ngôn ngữ lớn cùng với kiến trúc microservices.
Dự án được thực hiện trong cuộc thi Phần Mềm Nguồn Mở-Olympic Tin học Sinh viên Việt Nam 2023. Được được open source theo giấy phép GNU General Public License v3.0 bởi đội tác giả CTU-LinguTechnies.
Để biết thêm chi tiết về cuộc thi, bạn có thể xem tại đây.
Link thuyết trình Canva tại cuộc thi link
Slide bài thuyết trình tại cuộc thi dưới dạng PDF có thể được truy cập tại đây: Slide
- 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
- 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.
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 ý.
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:
- ReactJS: Xây dựng web-app.
- SpringBoot: Dựng API cho Law Service, Authentication Service, Chat Service, Api Gateway, Crawl,...
- 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.
- Transformer.js: Thư viện transformer cho JS, load trực tiếp trên trình duyệt web.
Hệ thống Tăng Cường Trí Tuệ (RAG) đại diện cho một mô hình đổi mới tiên tiến tận dụng sức mạnh kết hợp của ChatGPT Api, LangChain và Weaviate. Sự tích hợp tinh vi này cho phép sự kết hợp hài hòa giữa việc truy xuất thông tin và tạo nội dung, tạo ra các kết quả không chỉ chính xác và mạch lạc mà còn đầy sáng tạo và sâu sắc.
Thiết kế Hệ thống hỏi đáp như hình vẽ bên dưới:
Project CI/CD sử dụng Github và Github Actions để tự động hóa quá trình build và deploy. Quy trình như hình vẽ sau:
-
API Gateway - Crawl vào CSDL từ nguồn pháp điển Việt Nam.
-
Authorization Service - Dịch vụ xác thực.
-
Chat Service - Dịch vụ cung cấp thông tin Pháp Luật.
-
Law Service - Dịch vụ quản lý dữ liệu pháp điển và văn bản quy phạm pháp luật.
-
Crawl - Crawl vào CSDL từ nguồn pháp điển Việt Nam.
-
Web - Giao diện người dùng.
Để 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:
Trước hết, hãy clone dự án về máy tính của bạn:
git clone https://github.com/AVG-Team/VN-Law.git
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 crawl
Và tiếp tục theo hướng dẫn trong thư mục crawl README.md.
- Sau khi chạy xong, các service sẽ được chạy trên các port như sau:
Service | PORT |
---|---|
API Gateway | 9000 |
Auth Service | 9001 |
Law Service | 9002 |
Chat Service | 9003 |
Recommendation Service | 9004 |
- Đầu tiên, cd vào thư mục web:
cd front-end/website
- Cài đặt các thư viện cần thiết:
npm -i
- Chạy web-app development mode:
npm start
Lúc này web-app sẽ chạy ở địa chỉ http://localhost:3000.
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.
- Nguyễn Mai Bảo Huy:
- Nguyễn Tấn Dũng: Ntdvlog1683@gmail.com
- Nguyễn Văn Hoàng: vanhoang1232134@gmail.com
This project is licensed under the terms of the GPL V3 license.