Dự án là hệ thống AI backend số hoá tài liệu chuẩn production, được thiết kế chuyên biệt để xử lý các loại văn bản hành chính, văn bản pháp lý và giấy tờ tiếng Việt. Hệ thống kết hợp nhiều module (Pipeline) từ xử lý ảnh, nhận dạng ký tự (OCR), bóc tách thông tin (KIE), cho đến mô hình ngôn ngữ lớn (LLM) để hiểu và tóm tắt văn bản.
Python
1
13 commits
updated Apr 10, 2026
VN-Digitize-AI là hệ thống AI số hoá tài liệu hành chính và pháp lý tiếng Việt. Hệ thống cung cấp toàn bộ pipeline xử lý từ lúc nạp đầu vào (ảnh chụp/scan vật lý) đến đầu ra nguyên vẹn dữ liệu có cấu trúc JSON và file PDF 2 lớp có khả năng tìm kiếm (Searchable PDF).
Mục tiêu cốt lõi của dự án là loại bỏ quy trình nhập liệu thủ công, tự động đọc hiểu và bóc tách dữ liệu từ văn bản với độ chính xác cao nhờ sự kết hợp giữa Rule-based (Regex) và mô hình ngôn ngữ lớn (Local LLM), đồng thời đảm bảo bảo mật dữ liệu tuyệt đối (100% On-Premise).
loai_van_ban, so_van_ban, ngay_ban_hanh, co_quan_ban_hanh, và trich_yeu.| Thành phần | Công nghệ / Framework | Ghi chú |
|---|---|---|
| Backend API | FastAPI, Uvicorn | Xây dựng RESTful API tốc độ cao |
| Task Queue | Celery, Redis | Xử lý file nặng chạy ngầm bất đồng bộ |
| OCR Engine | DeepDoc VietOCR | Mô hình vgg_transformer nội bộ siêu chuẩn VN |
| Computer Vision | OpenCV, YOLOv8, Stamp2Vec | Xử lý ảnh, tìm chữ ký và mộc đỏ |
| LLM / AI | Ollama, PhoBERT | Bóc tách KIE Fallback, tóm tắt, sửa chính tả |
| Data Validation | Pydantic | Xác thực đầu vào/đầu ra nghiêm ngặt |
| PDF Tools | PyMuPDF (fitz) | IO PDF, tạo file PDF 2 lớp search được |
| Khác | TinyDB, Pyzbar | Database cho Feedback vòng lặp, Đọc mã vạch |
vie), Redis Server (dùng qua Docker / WSL / Memurai trên Windows), Ollama (cài đặt tại đây).Bước 1: Khởi động Ollama và Pull Model KIE Fallback mặc định:
ollama pull qwen2.5:3b-instruct
# Kiểm tra model
ollama list
Bước 2: Cài đặt Dependencies Python:
# Tạo và kích hoạt môi trường ảo (Virtual Environment)
python -m venv .venv
.venv\Scripts\activate # Trên Windows
# Cài đặt thư viện yêu cầu
pip install -r requirements.txt
Bước 3: Khởi chạy dự án:
Mở 2 cửa sổ Terminal để chạy song song API Server và Celery Worker (đảm bảo Redis đã chạy ở port 6379):
Terminal 1 (Chạy FastAPI):
.venv\Scripts\activate
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
Terminal 2 (Chạy Celery Worker):
.venv\Scripts\activate
celery -A app.celery_app worker --loglevel=info -P solo # Thêm `-P solo` trên Windows
sequenceDiagram
participant User
participant API as FastAPI Backend
participant Pipeline as OCR & Preprocessing
participant KIE as Hybrid KIE (Regex + LLM)
User->>API: POST /api/v1/extract-fields (Upload Ảnh/PDF)
API->>Pipeline: Deskew, Khử bóng, Giữ mộc đỏ
Pipeline->>API: Ảnh Sạch
API->>Pipeline: DeepDoc VietOCR trích xuất Text & Boxes
Pipeline->>API: Texts & Bounding Boxes
API->>KIE: Quét Regex lấy thông tin tự tin cao (>90%)
KIE->>KIE: Gọi Ollama nội suy những trường khó dựa trên Hint
KIE->>KIE: Hậu xử lý (Sửa chính tả ngầm định bởi PhoBERT, Validate DB)
KIE->>API: JSON Tổng Hợp Cuối Cùng
API-->>User: KIE Payload Data + Full boxes
OCR/
├── app/
│ ├── main.py # Entry point (16 API Endpoints)
│ ├── celery_app.py # Background task init (Celery + Redis)
│ ├── schemas.py # Pydantic schemas chung
│ └── services/ # Business Logic Layer
│ ├── ocr.py # DeepDoc VietOCR service
│ ├── kie_extractor.py # KIE đa tầng Pipeline
│ ├── preprocessing.py # CV2 Pipeline làm sạch ảnh
│ ├── postprocessing.py # Nhận diện Stamp, Signature, Table
│ ├── nlp_correction.py # Giao tiếp PhoBERT chữa lỗi
│ └── ...
├── deepdoc_vietocr/ # Module DeepDoc chuẩn (Core AI phụ trợ)
├── docs/ # Tài liệu thiết kế hệ thống chi tiết
├── data/ # Thư mục runtime lưu temp file, exported, feedback.json
├── test_kie.py # Demo Sandbox cho KIE tích hợp
└── requirements.txt
Để có cái nhìn sâu sát hơn về thiết kế kĩ thuật, thuật toán và luồng Use-case, vui lòng tham khảo trọn bộ tài liệu tại thư mục docs/:
01_Project_Overview_and_Setup.md - Tổng quan và Setup.02_Business_and_Flows.md - Tài liệu nghiệp vụ phân rã KIE & Phân loại trang.03_API_Reference.md - Danh mục tổng quan 16 Endpoint của hệ thống.04_AI_Architecture_and_Models.md - Đặc tả mô hình AI (YOLO, Stamp2Vec, PhoBERT, DeepDoc).05_Handover_Credentials_and_Operations.md - Quy trình Operation CI/CD và vận hành.project_documentation.md - Tài liệu đặc tả Use-cases ngắn gọn.Dự án là hệ thống AI backend số hoá tài liệu chuẩn production, được thiết kế chuyên biệt để xử lý các loại văn bản hành chính, văn bản pháp lý và giấy tờ tiếng Việt. Hệ thống kết hợp nhiều module (Pipeline) từ xử lý ảnh, nhận dạng ký tự (OCR), bóc tách thông tin (KIE), cho đến mô hình ngôn ngữ lớn (LLM) để hiểu và tóm tắt văn bản.
Python
1
13 commits
updated Apr 10, 2026
VN-Digitize-AI là hệ thống AI số hoá tài liệu hành chính và pháp lý tiếng Việt. Hệ thống cung cấp toàn bộ pipeline xử lý từ lúc nạp đầu vào (ảnh chụp/scan vật lý) đến đầu ra nguyên vẹn dữ liệu có cấu trúc JSON và file PDF 2 lớp có khả năng tìm kiếm (Searchable PDF).
Mục tiêu cốt lõi của dự án là loại bỏ quy trình nhập liệu thủ công, tự động đọc hiểu và bóc tách dữ liệu từ văn bản với độ chính xác cao nhờ sự kết hợp giữa Rule-based (Regex) và mô hình ngôn ngữ lớn (Local LLM), đồng thời đảm bảo bảo mật dữ liệu tuyệt đối (100% On-Premise).
loai_van_ban, so_van_ban, ngay_ban_hanh, co_quan_ban_hanh, và trich_yeu.| Thành phần | Công nghệ / Framework | Ghi chú |
|---|---|---|
| Backend API | FastAPI, Uvicorn | Xây dựng RESTful API tốc độ cao |
| Task Queue | Celery, Redis | Xử lý file nặng chạy ngầm bất đồng bộ |
| OCR Engine | DeepDoc VietOCR | Mô hình vgg_transformer nội bộ siêu chuẩn VN |
| Computer Vision | OpenCV, YOLOv8, Stamp2Vec | Xử lý ảnh, tìm chữ ký và mộc đỏ |
| LLM / AI | Ollama, PhoBERT | Bóc tách KIE Fallback, tóm tắt, sửa chính tả |
| Data Validation | Pydantic | Xác thực đầu vào/đầu ra nghiêm ngặt |
| PDF Tools | PyMuPDF (fitz) | IO PDF, tạo file PDF 2 lớp search được |
| Khác | TinyDB, Pyzbar | Database cho Feedback vòng lặp, Đọc mã vạch |
vie), Redis Server (dùng qua Docker / WSL / Memurai trên Windows), Ollama (cài đặt tại đây).Bước 1: Khởi động Ollama và Pull Model KIE Fallback mặc định:
ollama pull qwen2.5:3b-instruct
# Kiểm tra model
ollama list
Bước 2: Cài đặt Dependencies Python:
# Tạo và kích hoạt môi trường ảo (Virtual Environment)
python -m venv .venv
.venv\Scripts\activate # Trên Windows
# Cài đặt thư viện yêu cầu
pip install -r requirements.txt
Bước 3: Khởi chạy dự án:
Mở 2 cửa sổ Terminal để chạy song song API Server và Celery Worker (đảm bảo Redis đã chạy ở port 6379):
Terminal 1 (Chạy FastAPI):
.venv\Scripts\activate
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
Terminal 2 (Chạy Celery Worker):
.venv\Scripts\activate
celery -A app.celery_app worker --loglevel=info -P solo # Thêm `-P solo` trên Windows
sequenceDiagram
participant User
participant API as FastAPI Backend
participant Pipeline as OCR & Preprocessing
participant KIE as Hybrid KIE (Regex + LLM)
User->>API: POST /api/v1/extract-fields (Upload Ảnh/PDF)
API->>Pipeline: Deskew, Khử bóng, Giữ mộc đỏ
Pipeline->>API: Ảnh Sạch
API->>Pipeline: DeepDoc VietOCR trích xuất Text & Boxes
Pipeline->>API: Texts & Bounding Boxes
API->>KIE: Quét Regex lấy thông tin tự tin cao (>90%)
KIE->>KIE: Gọi Ollama nội suy những trường khó dựa trên Hint
KIE->>KIE: Hậu xử lý (Sửa chính tả ngầm định bởi PhoBERT, Validate DB)
KIE->>API: JSON Tổng Hợp Cuối Cùng
API-->>User: KIE Payload Data + Full boxes
OCR/
├── app/
│ ├── main.py # Entry point (16 API Endpoints)
│ ├── celery_app.py # Background task init (Celery + Redis)
│ ├── schemas.py # Pydantic schemas chung
│ └── services/ # Business Logic Layer
│ ├── ocr.py # DeepDoc VietOCR service
│ ├── kie_extractor.py # KIE đa tầng Pipeline
│ ├── preprocessing.py # CV2 Pipeline làm sạch ảnh
│ ├── postprocessing.py # Nhận diện Stamp, Signature, Table
│ ├── nlp_correction.py # Giao tiếp PhoBERT chữa lỗi
│ └── ...
├── deepdoc_vietocr/ # Module DeepDoc chuẩn (Core AI phụ trợ)
├── docs/ # Tài liệu thiết kế hệ thống chi tiết
├── data/ # Thư mục runtime lưu temp file, exported, feedback.json
├── test_kie.py # Demo Sandbox cho KIE tích hợp
└── requirements.txt
Để có cái nhìn sâu sát hơn về thiết kế kĩ thuật, thuật toán và luồng Use-case, vui lòng tham khảo trọn bộ tài liệu tại thư mục docs/:
01_Project_Overview_and_Setup.md - Tổng quan và Setup.02_Business_and_Flows.md - Tài liệu nghiệp vụ phân rã KIE & Phân loại trang.03_API_Reference.md - Danh mục tổng quan 16 Endpoint của hệ thống.04_AI_Architecture_and_Models.md - Đặc tả mô hình AI (YOLO, Stamp2Vec, PhoBERT, DeepDoc).05_Handover_Credentials_and_Operations.md - Quy trình Operation CI/CD và vận hành.project_documentation.md - Tài liệu đặc tả Use-cases ngắn gọn.