5.0 KiB
5.0 KiB
10.Appendix-Document-Type-Classification-and-Processing-Strategy.md
Phụ lục chiến lược phân loại & xử lý tài liệu cho toàn bộ hệ thống SharePoint → Search → RAG.
⚠️ Nguyên tắc sử dụng
- Đây là phụ lục độc lập, không chỉnh sửa các file 1–9.
- Được coi là luật xử lý file của hệ thống.
- Mọi pipeline hiện tại và mở rộng trong tương lai PHẢI tuân theo phụ lục này.
- Mục tiêu: an toàn, mở rộng được, không xử lý sai loại tài liệu.
1. Mục tiêu của phụ lục
Phụ lục này nhằm:
- Chuẩn hoá cách hệ thống hiểu và xử lý từng loại file
- Ngăn việc:
- OCR / MarkItDown bừa bãi
- Đưa bản vẽ kỹ thuật vào RAG
- Xử lý sai Excel/dữ liệu bảng
- Tạo luồng ngoại lệ có kiểm soát cho file mới hoặc hiếm gặp
2. Nguyên tắc cốt lõi (BẮT BUỘC)
- Không có "one-size-fits-all" cho tài liệu
- Phân loại file xảy ra TRƯỚC OCR và MarkItDown
- Extension là rule đầu, KHÔNG phải rule cuối
- Tài liệu không có giá trị ngôn ngữ → không RAG
- File lạ vẫn được ingest, nhưng xử lý an toàn
3. Document Classification Engine (DCE)
3.1 Vai trò
DCE chịu trách nhiệm quyết định file đi vào pipeline nào.
Nếu chưa quyết định được → file KHÔNG được xử lý sâu hơn.
3.2 Input của DCE
- Extension (vd:
.pdf,.dwg,.xlsx) - MIME type
- File size
- Header bytes (chống giả extension)
- Với PDF:
- Có text layer hay không
- Pattern nhanh (drawing vs text)
3.3 Output của DCE (bắt buộc)
{
"doc_type": "textual_document | technical_drawing | structured_data | binary_unsupported",
"processing_policy": "text_pipeline | metadata_only | table_pipeline | skip",
"confidence": 0.95,
"reason": "PDF detected as engineering drawing based on layout"
}
4. Các nhóm tài liệu và chiến lược xử lý
4.1 Nhóm A – Textual Documents (Tài liệu ngôn ngữ)
Ví dụ
- PDF văn bản (scan hoặc text)
- DOCX, PPTX
- PDF quy định, hợp đồng
Xử lý
- ✅ OCR (nếu scan)
- ✅ MarkItDown
- ✅ Chunking
- ✅ Search
- ✅ RAG Chat
Ghi chú
- Đây là nguồn chính cho RAG
4.2 Nhóm B – Technical Drawings (Bản vẽ kỹ thuật)
Ví dụ
- PDF bản vẽ kỹ thuật
- DWG / DXF / IFC
Xử lý
- ✅ Metadata indexing
- ✅ Thumbnail / preview (nếu có)
- ✅ OCR giới hạn title block (tuỳ chọn)
KHÔNG làm
- ❌ OCR toàn bộ
- ❌ MarkItDown
- ❌ RAG
Lý do
- Nội dung chính là hình học, không phải ngôn ngữ
- RAG sẽ dễ hallucinate và gây rủi ro nghiệp vụ
4.3 Nhóm C – Structured Data Documents (Dữ liệu bảng)
Ví dụ
- Excel (XLSX)
- CSV
Sub-case 1: Excel có mô tả nghiệp vụ
- ✅ Trích xuất giới hạn
- ✅ Convert sang Markdown có kiểm soát
- ✅ Search
- ⚠️ RAG chỉ áp dụng phần text
Sub-case 2: Excel số liệu / danh sách lớn
- ✅ Extract header + key columns
- ✅ Index theo field
- ❌ MarkItDown toàn file
- ❌ OCR
- ❌ RAG ngôn ngữ tự do
4.4 Nhóm D – Binary / Unsupported Documents
Ví dụ
.acad,.psd,.step,.zip
Xử lý
- ✅ Metadata-only ingestion
- ✅ Search theo tên / project
- ❌ Không OCR
- ❌ Không convert
- ❌ Không RAG
5. Luồng xử lý ngoại lệ (Exception Flow)
5.1 Khi nào kích hoạt
- Extension chưa có rule
- MIME / header không khớp extension
- File có pattern bất thường
5.2 Luồng chi tiết
File mới
↓
Basic metadata ingest
↓
DCE classify = UNKNOWN
↓
Flag: Pending Classification
↓
Rule-based auto guess (nếu có)
↓
Manual admin review (hiếm)
↓
Update classification rule
↓
Optionally re-process file
5.3 Nguyên tắc an toàn
- ❌ Không OCR file chưa rõ loại
- ❌ Không cho RAG đọc file pending
- ✅ Vẫn search được theo metadata
6. Tác động tới Search & RAG
- Search
- Phải tôn trọng
processing_policy
- Phải tôn trọng
- RAG
- Chỉ dùng
textual_document - Skip toàn bộ nhóm B, C(subcase 2), D
- Chỉ dùng
7. Lợi ích dài hạn của chiến lược này
- ✅ Không phá pipeline khi có file mới
- ✅ An toàn AI (no hallucination)
- ✅ Tối ưu chi phí OCR
- ✅ Mở rộng không cần sửa core
- ✅ Dễ audit
8. Kết luận phụ lục
- Phân loại tài liệu là điểm quyết định sống còn của hệ thống
- Extension là điểm bắt đầu, không phải kết luận
- OCR và MarkItDown là công cụ, không phải mục tiêu
- RAG chỉ dùng khi có giá trị ngôn ngữ thật
Phụ lục này là tài liệu tham chiếu nền tảng khi mở rộng hoặc audit toàn hệ thống.