# 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 1–12** > - 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 - Fine‑tune OCR - Phân tích bản vẽ kỹ thuật bằng AI - Multi‑tenant phức tạp --- ## 1. Chuẩn bị môi trường - [ ] Tenant SharePoint test - [ ] App Registration (Graph API – app‑only) - [ ] 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 non‑textual documents ### 5.2 OCR Service - [ ] PaddleOCR detector chạy ổn định - [ ] VietOCR recognizer nhận tiếng Việt có dấu - [ ] OCR page‑wise - [ ] 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 text‑PDF - [ ] 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 chunk‑first - [ ] 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 - [ ] Fine‑tune 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ả.*