Tự động phân loại văn bản và tạo công việc từ hệ thống quản lý văn bản bằng AI - Thiết kế sao cho đáp ứng ?
Vấn đề thực tế
Mỗi ngày, các đơn vị trong tổ chức nhận hàng chục văn bản đến từ các hệ thống quản lý văn bản nội bộ. Hiện tại quy trình xử lý hoàn toàn thủ công:
Người dùng phải mở tay từng văn bản để đọc nội dung Tự xác định văn bản thuộc dự án nào trong danh sách hàng chục dự án đang triển khai Tạo công việc/task thủ công vào hệ thống quản lý công việc → Tốn thời gian xử lý, dễ bỏ sót, thiếu nhất quán giữa các đơn vị.
Mong muốn
Văn bản mới đến → Tự động phân loại dự án (AI) → Tự động tạo task Ràng buộc thực tế cần xử lý
Ràng buộc Giải thích Nhiều hệ thống nguồn khác nhau Mỗi đơn vị có thể dùng các DMS hoặc cổng nội bộ riêng Xác thực đa yếu tố Không thể truy cập tự động, cần OTP/QR theo chính sách bảo mật Phiên làm việc có thời hạn Hệ thống nguồn tự đăng xuất sau một khoảng không hoạt động AI cần giám sát Cần người rà soát các trường hợp AI không đủ độ chắc chắn Không tạo trùng Cùng một văn bản không được tạo thành nhiều task Phân biệt theo đơn vị Mỗi đơn vị có danh sách dự án và người xử lý riêng biệt Nhiều đối tác triển khai Mỗi đối tác dùng hệ thống văn bản và giao diện khác nhau Thách thức mở rộng: Kết nối đa hệ thống văn bản
Tổ chức có nhiều đối tác hợp tác, mỗi đối tác sử dụng một hệ thống quản lý văn bản riêng biệt với giao diện và cấu trúc dữ liệu khác nhau:
Đối tác A dùng hệ thống X với giao diện A, cấu trúc trang A Đối tác B dùng hệ thống Y với giao diện B, cấu trúc trang B Đối tác C dùng hệ thống Z với giao diện C, cấu trúc trang C ... và có thể còn nhiều thêm
1 CÂU TRẢ LỜI
Chào bạn, bài toán của bạn rất điển hình trong các tổ chức lớn khi đối mặt với sự phân mảnh dữ liệu và rào cản bảo mật (MFA). Để giải quyết triệt để, mình đề xuất một kiến trúc dựa trên 3 trụ cột: Hybrid Automation, AI Processing, và Centralized State Management. Phá vỡ rào cản kết nối (The Connectivity Challenge) Vì các hệ thống nguồn có MFA và giao diện khác nhau, việc dùng API thuần túy là bất khả thi. Giải pháp: Sử dụng RPA (Robotic Process Automation) kết hợp với Human-in-the-loop.Cơ chế: Xây dựng các RPA Bots (sử dụng Framework như Robot Framework hoặc UiPath) đóng vai trò là "người dùng ảo". Xử lý MFA: Khi Bot gặp màn hình OTP/QR, nó sẽ đẩy một thông báo (qua Telegram/Slack) để người phụ trách đơn vị đó thực hiện xác thực "mồi". Sau khi xác thực, Bot sẽ duy trì Session để thu thập văn bản định kỳ. Adapter Pattern: Xây dựng mỗi đối tác một "Adapter" riêng để bóc tách dữ liệu (Scraping) từ các giao diện X, Y, Z khác nhau nhưng trả về một cấu trúc dữ liệu chuẩn (JSON).Bộ não phân loại và Trích xuất (AI Engine)Thay vì chỉ phân loại đơn thuần, chúng ta sử dụng mô hình LLM (Large Language Model) với kỹ thuật RAG (Retrieval-Augmented Generation). Dữ liệu đầu vào: Toàn bộ nội dung văn bản (OCR nếu là ảnh/PDF quét) + Danh sách dự án riêng biệt của từng đơn vị. Xử lý: AI sẽ thực hiện Named Entity Recognition (NER) để tìm các mã dự án, tên đối tác. Prompt Engineering: Cung cấp context về danh sách dự án của đơn vị đó để AI so khớp. Ngưỡng tin cậy (Confidence Score): Nếu AI xác định độ chắc chắn < 85%, task sẽ được đẩy vào trạng thái "Pending Review" để con người rà soát trước khi tạo task chính thức. Quản lý trạng thái và Chống trùng lặp Idempotency Key: Mỗi văn bản khi lấy về sẽ được băm (Hash) nội dung hoặc dùng số ký hiệu văn bản làm Key duy nhất trong Database (Redis/PostgreSQL). Trước khi tạo task, Bot sẽ kiểm tra Key này để đảm bảo không tạo trùng. Tenant Partitioning: Phân tách dữ liệu theo đơn vị ngay từ tầng Database để đảm bảo đơn vị A không thấy dự án của đơn vị B. Quy trình tổng thể (Workflow) Trigger: RPA Bot quét hệ thống nguồn theo lịch trình (Schedule). Ingestion: Tải văn bản -> Lưu vào kho đệm -> Đánh dấu Idempotency. AI Labelling: LLM phân loại dự án, trích xuất Deadline, người xử lý dự kiến. Verification: Nếu Score cao -> Tự động gọi API hệ thống quản lý công việc (Jira/Asana/ClickUp) để tạo Task. Nếu Score thấp -> Gửi thông báo cho Admin đơn vị duyệt qua Dashboard UI. Logging: Ghi log chi tiết phiên làm việc để xử lý trường hợp hệ thống nguồn tự đăng xuất. Thách thức mở rộng Để hệ thống không bị "vỡ" khi có thêm đối tác D, E, F: Cần xây dựng một Low-code Engine hoặc bộ Selector Config linh hoạt để cấu trúc lại Bot mà không cần viết lại code Core cho mỗi giao diện mới. Góc nhìn cá nhân: Bài toán này khó nhất không nằm ở AI, mà nằm ở RPA duy trì Session và Xử lý MFA. Bạn nên bắt đầu bằng một bản PoC (Proof of Concept) cho một đối tác khó nhất để kiểm chứng luồng đi của dữ liệu trước khi scale cho toàn tổ chức.
Hy vọng giải pháp này giúp ích cho dự án của bạn!