Files
poc_system/doc/13.PoC-Implementation-Checklist.md

194 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 13.PoC-Implementation-Checklist.md
> **Checklist triển khai PoC (Proof of Concept)** cho hệ thống tra cứu tài liệu SharePoint → Search → RAG Chat.
>
> ⚠️ Nguyên tắc của checklist này:
> - Dựa **100% trên các quyết định đã chốt trong file 112**
> - Dùng để **triển khai PoC thật**, không phải tài liệu lý thuyết
> - Checklist theo thứ tự **chuẩn kỹ thuật**, làm xong mục trước mới sang mục sau
> - Có thể dùng cho: Tech Lead, Dev, Vendor, AI Agent
---
## 0. Phạm vi PoC (BẮT BUỘC CHỐT TRƯỚC KHI LÀM)
### ✅ Mục tiêu PoC
- Tra cứu tài liệu nội bộ (SharePoint)
- Hỗ trợ **search + RAG chat**
- Đúng quyền người dùng
- Ưu tiên **tài liệu tiếng Việt**
### ❌ Ngoài phạm vi PoC
- Finetune OCR
- Phân tích bản vẽ kỹ thuật bằng AI
- Multitenant phức tạp
---
## 1. Chuẩn bị môi trường
- [ ] Tenant SharePoint test
- [ ] App Registration (Graph API apponly)
- [ ] Server PoC (CPU ≥ 16 cores, RAM ≥ 32GB)
- [ ] Docker / Container runtime
- [ ] OpenSearch cluster (dev size)
---
## 2. Ingestion SharePoint
- [ ] Kết nối Graph API thành công
- [ ] Lấy được site / library metadata
- [ ] Delta query hoạt động
- [ ] Persist delta token
- [ ] Detect create / update / delete file
---
## 3. Document Classification Engine (File 10)
- [ ] Parse extension + MIME type
- [ ] Header byte validation (chống giả extension)
- [ ] Gán `doc_type`
- [ ] Gán `processing_policy`
- [ ] Log lý do classify
---
## 4. PDF Inspection (File 11)
- [ ] Detect text layer PDF
- [ ] Calculate text density
- [ ] Detect vector / drawing layout
- [ ] Classify: TEXT_PDF / SCAN_PDF / DRAWING_PDF
- [ ] Log quyết định inspection
---
## 5. OCR Integration (File 12)
### 5.1 Điều kiện gọi OCR
- [ ] Chỉ OCR khi `SCAN_PDF`
- [ ] Skip DRAWING_PDF
- [ ] Skip nontextual documents
### 5.2 OCR Service
- [ ] PaddleOCR detector chạy ổn định
- [ ] VietOCR recognizer nhận tiếng Việt có dấu
- [ ] OCR pagewise
- [ ] OCR chạy được trên CPU
### 5.3 OCR Output
- [ ] Có page number
- [ ] Có text
- [ ] Có confidence
- [ ] OCR output chuẩn JSON contract
---
## 6. MarkItDown & Normalization
- [ ] Nhận text từ OCR hoặc textPDF
- [ ] Convert sang Markdown
- [ ] Giữ heading / paragraph / list
- [ ] Gắn page marker
---
## 7. Chunking
- [ ] Chunk theo heading / page
- [ ] Token size phù hợp cho search & RAG
- [ ] Gắn metadata: file_id, page, URL
---
## 8. Index & Search (OpenSearch)
- [ ] Mapping chunkfirst
- [ ] Index text field
- [ ] Index metadata field
- [ ] Index ACL
- [ ] Index embedding (nếu dùng)
---
## 9. Permission Enforcement
- [ ] Resolve user identity
- [ ] Resolve group membership
- [ ] Filter search theo ACL
- [ ] Không lộ file user không có quyền
---
## 10. Search Experience
- [ ] Keyword search hoạt động
- [ ] Search trả đúng file & page
- [ ] Highlight nội dung
- [ ] Click mở file gốc
---
## 11. RAG Chat (File 5)
### 11.1 Điều kiện vào RAG
- [ ] Có kết quả search
- [ ] OCR confidence đạt threshold
### 11.2 Prompt & Answer
- [ ] System prompt chặt (no hallucination)
- [ ] Chỉ dùng context search
- [ ] Trả câu trả lời + citation
### 11.3 Fallback
- [ ] Không có dữ liệu → trả lời chuẩn
---
## 12. Logging & Audit
- [ ] Log ingestion
- [ ] Log OCR
- [ ] Log search query
- [ ] Log RAG answer + context
---
## 13. User Validation (PoC Acceptance)
- [ ] User tìm được tài liệu mong muốn
- [ ] User hiểu citation
- [ ] AI không trả lời bịa
- [ ] UX dễ sử dụng
---
## 14. KPI PoC (Đủ/Không đủ)
- [ ] Search latency < 3s
- [ ] OCR Vietnamese readable
- [ ] RAG trả lời đúng phạm vi
- [ ] Không lộ quyền
---
## 15. Quyết định sau PoC
- [ ] Go Pilot
- [ ] Điều chỉnh OCR threshold
- [ ] Thêm loại document
- [ ] Finetune sau (nếu cần)
---
## Kết luận Checklist
- Checklist này hoàn thành → PoC **đã thành công về mặt kỹ thuật**
- Chưa hoàn thành → **không nên lên production**
---
*Tài liệu này là checklist thực thi, không phải tài liệu mô tả.*