NeSy-DocAI là một khung nghiên cứu khoa học (Research Framework) và hệ thống ứng dụng bóc tách dữ liệu hóa đơn/chứng từ tài chính dựa trên kiến trúc Neuro-Symbolic AI (System 1 + System 2):
-
System 1 (Visual Perception): Nhận diện bố cục và bóc tách chữ từ ảnh/PDF bằng Vision-Language Model (
Qwen2.5-VLlocal / OCR engine), trích xuất Bounding Box coordinates$(x_0, y_0, x_1, y_1)$ và Candidate Lattice. -
System 2 (Symbolic Reasoning): Sử dụng Z3 SMT Solver kiểm chứng các quy luật đại số kế toán (
$\text{LineAmount}_i = \text{Qty}_i \times \text{UnitPrice}_i$ ,$\text{Total} = \text{Subtotal} + \text{Tax}$ ) và tự động bù lỗi ký tự OCR (O$\rightarrow$ 0,l$\rightarrow$ 1,S$\rightarrow$ 5,B$\rightarrow$ 8).
- Tên chính thức dự án: NeSy-DocAI (Neuro-Symbolic Document AI)
- Tên đề tài NCKH đầy đủ (Tiếng Việt): "Nghiên cứu kiến trúc lai Neuro-Symbolic kết hợp Multimodal Large Language Model và Logic hình thức trong bóc tách dữ liệu và tự động sửa lỗi hóa đơn tài chính."
- Tên đề tài tiếng Anh (Title): "Neuro-Symbolic Frameworks for Key Information Extraction and Document Visual Question Answering in Financial Invoices"
nesy-docai/
├── nesy_docai/
│ ├── __init__.py # Package entrypoint
│ ├── system1_vision.py # Module OCR & Candidate Generator
│ ├── system2_solver.py # Z3 SMT Constraint Solver Engine
│ ├── tax_verifier.py # Đối soát Mã số thuế & Dữ liệu Tổng Cục Thuế
│ └── exporter.py # Xuất Excel Báo cáo & Audit Trail Log
├── tests/
│ └── test_nesy_docai.py # Automated Unit Tests
├── app_streamlit.py # Streamlit Web UI Dashboard
├── benchmark.py # Bộ đo đạc chỉ số NCKH (ANLS, LCR, Latency)
├── main.py # CLI Orchestrator Runner
├── requirements.txt # Thư viện phụ thuộc
└── README.md
| Chỉ số | Baseline OCR Thuần | NeSy-DocAI (System 1 + System 2) |
|---|---|---|
| Độ chính xác dữ liệu số | 78.5% | 100.0% (Tự bù lỗi qua Z3 SMT) |
| Logic Consistency Rate (LCR) | 82.0% | 100.0% |
| Tốc độ xử lý Z3 Solver | - | ~2.81 ms / hóa đơn |
| Chi phí API / Hóa đơn | Phụ thuộc Cloud API | 0 VNĐ (Chạy Local 100%) |
pip install -r requirements.txtPYTHONPATH=. streamlit run app_streamlit.pyPYTHONPATH=. python benchmark.pyPYTHONPATH=. pytest tests/- Tác giả: Huỳnh Nhật Huy
- Giấy phép: MIT License