Paperless-ngx từ lâu đã là một giải pháp quản lý tài liệu “không giấy tờ” tuyệt vời, giúp bạn số hóa và sắp xếp mọi giấy tờ vật lý cũng như tài liệu kỹ thuật số vào một nơi an toàn, dễ dàng tìm kiếm. Với khả năng tự động phân loại và lập chỉ mục mạnh mẽ, việc tìm kiếm file trở nên vô cùng đơn giản. Tuy nhiên, điều gì sẽ xảy ra nếu chúng ta có thể “siêu cấp” một phần mềm đã tốt như Paperless-ngx bằng cách tích hợp mô hình ngôn ngữ lớn (LLM)? Có nhiều lựa chọn cho phép bạn kết hợp LLM như OpenAI hoặc một LLM tự host (self-hosted) để biến hệ thống quản lý tài liệu của mình thành một trợ lý thông minh và mạnh mẽ.
Trong dự án tự host này, chúng tôi đã sử dụng Paperless AI, một giải pháp hoạt động hoàn hảo với tất cả tài liệu được lưu trữ trong Paperless-ngx. Việc triển khai Paperless AI tuy yêu cầu một chút nỗ lực ban đầu, nhưng nó chính là trái tim của dự án nâng cấp này. Không để bạn chờ lâu hơn nữa, hãy cùng tìm hiểu cách bạn có thể triển khai dự án “siêu tăng áp” AI này trên hệ thống của mình.
Thiết lập các dịch vụ cần thiết
Chuẩn bị kỹ lưỡng cho việc tích hợp AI
Việc sử dụng Paperless-ngx không quá phức tạp nếu bạn có kinh nghiệm với hệ điều hành Linux. Cá nhân tôi đã thử cài đặt trên Windows 11 nhưng nhanh chóng chuyển sang một phiên bản Ubuntu chạy trên Windows Subsystem for Linux (WSL 2). Lý do là máy tính chính của tôi đủ mạnh với card đồ họa NVIDIA RTX 3060, một yếu tố cực kỳ quan trọng để đạt hiệu suất tốt hơn khi chạy LLM cục bộ.
Mặc dù tôi chưa thử nghiệm Paperless AI mà không có GPU, tôi tin rằng nó vẫn có thể hoạt động được. Điểm cộng là WSL 2 nhận diện GPU của tôi ngay lập tức, trong khi việc này sẽ đòi hỏi nhiều công sức hơn nếu bạn sử dụng VMware.
Đầu tiên và quan trọng nhất, bạn cần cài đặt và cấu hình Docker một cách chính xác. Tôi đã chọn Dockge cho dự án này, một công cụ giúp tạo ra một “stack” Docker bao gồm Paperless-ngx, Paperless AI và các thành phần cần thiết khác một cách cực kỳ dễ dàng.
Trước khi tạo stack Docker, bạn phải cài đặt một mô hình ngôn ngữ lớn cục bộ (Local LLM) trên hệ thống của mình. Tôi đã chọn Ollama cho dự án này; tất cả những gì bạn cần làm là chạy lệnh Curl được liệt kê trên trang web chính thức của Ollama để bắt đầu cài đặt. Ollama sẽ không tự động tải các mô hình theo mặc định, vì vậy bạn phải tải một mô hình thủ công.
curl -fsSL https://ollama.com/install.sh | sh
Tôi đã sử dụng Llama2, một phiên bản khá mới, bạn có thể cài đặt bằng cách chạy lệnh ollama run llama2
. Quá trình này sẽ mất một thời gian tùy thuộc vào kích thước của LLM mà bạn chọn cho thiết lập Paperless AI. Bạn có thể kiểm tra xem mô hình có hoạt động hay không bằng cách chạy lại lệnh tương tự; nó sẽ yêu cầu bạn nhập một câu lệnh (prompt). Tôi đã yêu cầu nó “tạo một bài thơ về Goku”, và nó đã hoàn thành khá nhanh chóng.
Quay trở lại với stack mà tôi đã đề cập, bạn có thể sử dụng các file compose được liệt kê trên kho lưu trữ Paperless-ngx chính thức trên GitHub. Tôi đã sử dụng bản có Postgres, nhưng bạn cũng có các tùy chọn khác. Sao chép nội dung file vào Dockge, sau đó chỉnh sửa thuộc tính volume
thành một thư mục khác nếu bạn không muốn sử dụng thư mục media
mặc định.
Tiếp theo, hãy thêm nội dung file compose của Paperless AI bên dưới stack mà bạn đang tạo. Dán nội dung của file ENV chính thức vào phần tiếp theo trong Dockge và nhấn Deploy. Bây giờ, chúng ta sẽ chuyển sang phần cấu hình.
Giao diện quản lý nhiều container Docker thông qua Portainer, minh họa việc triển khai các dịch vụ như Paperless-ngx và Paperless AI.
Cấu hình Paperless-ngx để làm việc với Paperless AI
Tích hợp bộ ba: Paperless-ngx, Ollama và Paperless AI
Đầu tiên, hãy đăng nhập vào giao diện web (webUI) của Paperless-ngx bằng cách sử dụng tổ hợp URL:số_cổng. Hoặc, bạn có thể nhấp vào số cổng trong stack Dockge để chuyển hướng đến giao diện web. Đăng ký để truy cập vào bảng điều khiển (dashboard) và sau đó nhấp vào Settings.
Chúng ta cần tạo một mã thông báo ủy quyền (authorization token) để Paperless AI có thể truy cập Paperless-ngx. Nhấp vào nút Open Django admin và sau đó nhấp vào dấu cộng (+) bên cạnh trường Auth Token. Chọn tên người dùng của bạn từ danh sách và nhấn Save để tạo mã thông báo. Sao chép mã này và sau đó khởi chạy giao diện web của Paperless AI (địa_chỉ_IP_của_bạn:3000).
Đăng ký và nhập mã API mà bạn đã sao chép trước đó, tiếp theo là tên người dùng Paperless-ngx của bạn. Kế đến, hãy thiết lập phần AI với Ollama làm LLM và chỉ định tên mô hình. Tôi đã sử dụng Llama2, vì vậy tôi sẽ nhập llama2
.
Cuối cùng, thay đổi thời gian quét tự động (auto-scan time) thành một phút để phân tích nhanh hơn và bật xử lý AI (enable AI processing) cùng tất cả các tính năng bạn muốn. Nhấn Save, và bảng điều khiển của Paperless AI sẽ xuất hiện.
Lợi ích vượt trội từ AI
Xử lý thủ công, tìm kiếm, trò chuyện và nhiều hơn nữa
Nếu bạn đang sử dụng một phiên bản Paperless-ngx mới như tôi, bạn sẽ cần tải lên một vài tài liệu vào hệ thống trước khi có thể thấy AI hoạt động. Bạn có thể làm điều đó bằng cách sử dụng nút tải lên (upload) ở góc phải để đưa một số file vào hệ thống của mình.
Vì chúng ta đã thiết lập xử lý AI tự động từ trước, bạn không cần phải làm gì thêm. Chỉ cần đợi Paperless AI nhận diện và xử lý các tài liệu này, và kết quả sẽ hiển thị trên trang chủ của bảng điều khiển. Sau khi quá trình xử lý hoàn tất, chuyển sang phần Documents trong Paperless-ngx, và bạn sẽ thấy một thẻ AI processed trên mỗi tài liệu, cùng với các thẻ khác mà Paperless-ngx tự động thêm vào. Thiết lập hệ thống gắn thẻ này ngay từ đầu giúp bạn biết những file nào đã được phân tích và những file nào cần sự can thiệp thủ công.
Bây giờ, hãy chuyển đến bảng điều khiển Paperless AI một lần nữa và chọn tùy chọn Chat. Tại đây, bạn có thể chọn bất kỳ tài liệu nào đã được phân tích và trò chuyện với AI về chúng. Ví dụ, tôi đã hỏi về tỷ lệ vật liệu giảm, và nó đã đưa ra một bản tóm tắt nhanh chóng của tài liệu. Hoặc khi tôi hỏi về giá vé từ một hóa đơn vé tàu, nó đã làm điều đó một cách hoàn hảo.
Nếu tùy chọn trò chuyện từng tài liệu không phù hợp với bạn, hãy thử tính năng RAG chat. Tính năng này cho phép bạn truy vấn bất kỳ điều gì từ bộ sưu tập tài liệu đã được xử lý mà không cần chọn file thủ công. Vì vậy, bạn có thể hỏi những câu hỏi tương tự mà không cần nhớ tên file, và AI sẽ cố gắng tìm ngữ cảnh và nguồn của câu hỏi của bạn. Bạn cũng có thể xem lịch sử tài liệu đã được phân tích và thậm chí bật/tắt các tính năng AI trong cài đặt.
Nâng cấp mạnh mẽ Paperless-ngx với LLM cục bộ
Paperless-ngx vốn đã có thể thu thập nhiều chi tiết từ tài liệu của bạn bằng công nghệ OCR (nhận dạng ký tự quang học) và biến chúng thành có thể tìm kiếm được. Tuy nhiên, việc sử dụng LLM cùng với Paperless-ngx sẽ giúp bạn tìm kiếm bằng ngôn ngữ tự nhiên thay vì phải sử dụng các từ khóa cụ thể. Nếu bạn không muốn phụ thuộc vào các dịch vụ như OpenAI, bạn hoàn toàn có thể tự host một LLM cục bộ trên hệ thống của mình. Mặc dù việc này đòi hỏi một cỗ máy mạnh mẽ, nhưng nó sẽ cải thiện đáng kể cách bạn xử lý và sàng lọc các tài liệu, mang lại trải nghiệm quản lý thông tin thông minh và linh hoạt hơn.
Bạn đã sẵn sàng để nâng cấp hệ thống quản lý tài liệu của mình chưa? Hãy chia sẻ kinh nghiệm hoặc bất kỳ câu hỏi nào bạn có về việc tích hợp Paperless-ngx với AI trong phần bình luận bên dưới!