Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CNTT" các nội dung bạn quan tâm.

AI Automators trong Drupal – Làm thế nào để điều phối quy trình AI nhiều bước?

ICT

Thực tế các tài liệu được crawl về, mình thường sẽ xử lý bằng python (+AI API) sau đó import csv/json với đầy đủ các fields đã được cập nhật đầy đủ. Chắc chắn sẽ ổn định, an tâm hơn nhiều. Cũng có thể "auto" từ A-Z để đưa vào Drupal, mà không cần can thiệp.

Nhưng hướng dẫn này có thể phù hợp cho các content được viết/bài đăng thủ công. Nếu việc đăng bài thủ công là chính, cân nhắc xem hướng dẫn này nhé.

AI Automators biến các quy trình AI phức tạp từ việc phải viết code thủ công sang cấu hình qua giao diện quản trị. Nghiên cứu tình huống này cho thấy BetterRegulation đã xây dựng các workflow AI đạt chuẩn production, xử lý hơn 200 tài liệu mỗi tháng với độ chính xác trên 95% – sử dụng chuỗi nhiều bước, hàng đợi nền (background queues) và prompt được quản trị bởi admin. Không cần viết mã tích hợp tùy chỉnh.

AI Automators là gì?

AI Automators là một submodule của module AI trong Drupal, cung cấp framework để xây dựng các workflow tự động trong Drupal, đặc biệt mạnh cho các tích hợp AI.

Một AI Automator có thể là một thao tác đơn lẻ (ví dụ: tóm tắt văn bản), trong khi AI Automator Chain cho phép tạo các workflow nhiều bước, trong đó đầu ra của mỗi bước trở thành đầu vào cho bước tiếp theo.

Có thể xem đây là một workflow engine cho các quy trình phức tạp nhiều bước, cho phép bạn xây dựng workflow AI thông qua cấu hình trong giao diện quản trị thay vì phải lập trình. Module cung cấp cơ chế trừu tượng hóa nhà cung cấp (provider abstraction), nghĩa là có thể hoạt động liền mạch với OpenAI, Anthropic, các mô hình local và nhiều nền tảng khác.

Các workflow được tạo ra có thể tái sử dụng: xây dựng một lần, áp dụng cho nhiều content type.


Nếu không sử dụng AI Automators, việc tích hợp AI vào Drupal đồng nghĩa với:

  • Viết code tùy chỉnh cho từng workflow.

  • Tích hợp thủ công với từng API provider.

  • Hardcode prompt trong codebase.

  • Xử lý nhiều đoạn mã lặp lại (boilerplate).

  • Tự quản lý logic điều phối nhiều bước phức tạp.

Điều này hoàn toàn có thể thực hiện, nhưng tốn thời gian và dễ phát sinh lỗi, khó bảo trì.


Khi sử dụng AI Automators, bạn có thể:

  • Cấu hình workflow qua giao diện UI.

  • Quản lý prompt trong admin interface, cho phép non-developers chỉnh sửa và tinh chỉnh.

  • Thay đổi AI provider mà không cần chỉnh sửa code.

  • Tái sử dụng workflow giữa các content type.

  • Xây dựng quy trình nhiều bước một cách trực quan.

Việc chuyển từ “code” sang “configuration” giúp giảm đáng kể thời gian phát triển và cho phép các chuyên gia nghiệp vụ chủ động cải tiến quy trình.


BetterRegulation sử dụng AI Automators để:

  • Phân loại tài liệu, trong đó 15 trường được tự động điền từ phân tích PDF.

  • Tạo bản tóm tắt với ba loại khác nhau (dài, ngắn và trích xuất nghĩa vụ).

  • Xử lý nền qua queue cho các tác vụ tốn thời gian.

  • Thực hiện xử lý lỗi và logging toàn diện trong toàn bộ workflow.

Hướng dẫn này sẽ giúp bạn hiểu cách tận dụng AI Automators để xây dựng các workflow AI trong Drupal.

Bối cảnh dự án

Phân tích chuyên sâu này dựa trên triển khai thực tế của BetterRegulation. Họ đã có sẵn một nền tảng Drupal 11 đang vận hành và muốn bổ sung năng lực AI mà không làm gián đoạn quy trình biên tập hiện tại, cũng như không cần phát triển tùy chỉnh quy mô lớn.

Thách thức đặt ra khá đa chiều. Nhiều loại nội dung khác nhau – tài liệu Know How, General Consultations và nội dung Station – đều cần được xử lý bằng AI, nhưng mỗi loại đòi hỏi cách tiếp cận khác nhau. Phân loại theo thời gian thực phù hợp với một số workflow, trong khi tạo bản tóm tắt chạy nền lại hợp lý hơn với các workflow khác. Các biên tập viên pháp lý – những người hiểu rõ nhất về cấu trúc taxonomy và sắc thái phân loại tài liệu – cần có khả năng tinh chỉnh prompt dựa trên kiểm thử độ chính xác, mà không phải chờ chu kỳ phát triển của lập trình viên.

Quan trọng hơn, hạ tầng kỹ thuật đã sẵn có: RabbitMQ đang xử lý các nhu cầu queue khác, Drupal 11 đã chạy production ổn định và môi trường hệ thống được cấu hình vững chắc. Họ không muốn thực hiện thay đổi kiến trúc lớn.

Giải pháp được lựa chọn là sử dụng AI Automators để cấu hình các workflow AI thông qua giao diện quản trị thay vì viết code tùy chỉnh cho từng tích hợp. Quyết định kiến trúc này cho phép lặp lại và cải tiến nhanh trong quá trình phát triển, đồng thời – quan trọng hơn – trao quyền cho chuyên gia nghiệp vụ (các biên tập viên pháp lý) tự tinh chỉnh prompt dựa trên độ chính xác thực tế mà không cần sự can thiệp của lập trình viên.

Khi nào nên dùng AI Automators, khi nào nên viết code tùy chỉnh?

Không phải mọi tích hợp AI đều cần AI Automators. Quyết định phụ thuộc vào độ phức tạp của workflow, cấu trúc đội ngũ và yêu cầu về tốc độ lặp lại cải tiến.


AI Automators phát huy tối đa hiệu quả trong workflow phức tạp

AI Automators đặc biệt hữu ích khi bạn xử lý quy trình nhiều bước – ví dụ: trích xuất nội dung từ PDF, sau đó phân tích văn bản, rồi parse kết quả và điền vào các field. Mỗi bước phụ thuộc vào bước trước; nếu điều phối thủ công, bạn sẽ phải viết logic orchestration phức tạp và khó bảo trì.

Module thực sự thể hiện giá trị khi có nhiều tác vụ AI phối hợp với nhau. Phân loại, tóm tắt và phân tích có thể cùng chạy trên một nội dung, mỗi tác vụ sử dụng prompt và model khác nhau. AI Automators xử lý việc điều phối này thông qua cấu hình thay vì code.

Khả năng cấu hình bởi người không chuyên kỹ thuật là một lợi thế lớn. Khi biên tập viên pháp lý hoặc chuyên gia nghiệp vụ cần tinh chỉnh prompt dựa trên kiểm thử độ chính xác, việc cấp quyền truy cập admin UI giúp họ chủ động thay đổi thay vì phải chờ lập trình viên. Chu kỳ cải tiến giảm từ vài ngày xuống còn vài phút.

Nếu bạn cần linh hoạt giữa các AI provider – ví dụ thử nghiệm Claude so với GPT cho một use case cụ thể, hoặc muốn giữ phương án mở khi thị trường AI thay đổi – AI Automators giúp trừu tượng hóa phần code đặc thù của từng provider. Chuyển model qua cấu hình, không cần deploy code.

Trong quá trình phát triển và kiểm thử, việc lặp lại cũng rất nhanh: clone một automator, chỉnh prompt, test trên tài liệu thực tế, so sánh kết quả. Không cần branch Git, không cần pipeline triển khai – chỉ cấu hình, kiểm thử và tinh chỉnh.

Cuối cùng, AI Automators hỗ trợ chuẩn hóa quy trình. Khi nhiều content type cần xử lý AI tương tự nhau, việc tạo các pattern workflow có thể tái sử dụng giúp tránh trùng lặp code và đảm bảo tính nhất quán.


Khi nào code tùy chỉnh hợp lý hơn?

Code tùy chỉnh vẫn là lựa chọn phù hợp khi logic quá đặc thù và không khớp với mô hình workflow cấu hình. Nếu nghiệp vụ có rẽ nhánh điều kiện phức tạp, điều phối nhiều hệ thống bên ngoài, hoặc yêu cầu xử lý thuật toán ngoài phạm vi gọi API AI, việc xây dựng service tùy chỉnh sẽ cho bạn toàn quyền kiểm soát.

Những luồng yêu cầu hiệu năng cực cao cũng có thể phù hợp hơn với code trực tiếp. Dù AI Automators chỉ tạo overhead tối thiểu, nếu bạn xử lý hàng nghìn tài liệu mỗi giờ và từng mili-giây đều quan trọng, tích hợp API trực tiếp sẽ loại bỏ lớp trừu tượng trung gian.

Với các tích hợp phức tạp liên quan đến nhiều hệ thống bên ngoài và yêu cầu điều phối tinh vi, code tùy chỉnh mang lại linh hoạt hơn để xử lý các trường hợp ngoại lệ mà cấu hình workflow khó biểu đạt.

Và trong một số trường hợp, bạn chỉ có một thao tác đơn giản – một lần gọi API, xử lý thẳng. Khi đó, việc thêm cơ chế workflow orchestration là dư thừa. Tích hợp trực tiếp sẽ gọn gàng và hợp lý hơn.


Lựa chọn của BetterRegulation

BetterRegulation chọn AI Automators vì nhu cầu của họ hoàn toàn phù hợp với thế mạnh của module. Họ có nhiều bước xử lý cần điều phối: trích xuất PDF, làm sạch văn bản, phân tích AI, parse kết quả và điền field. Các biên tập viên pháp lý – chuyên gia hiểu rõ sắc thái taxonomy – cần tự tinh chỉnh prompt mà không phải thông qua lập trình viên. Họ cũng muốn linh hoạt thử nghiệm các model AI khác nhau theo sự phát triển của thị trường. Tính nhất quán giữa các loại tài liệu là yêu cầu quan trọng để đảm bảo khả năng bảo trì lâu dài. Và trong giai đoạn phát triển, tốc độ lặp lại quan trọng hơn việc tối ưu đến từng mili-giây hiệu năng.

Kết quả là: thời gian phát triển ban đầu nhanh hơn, bảo trì dài hạn dễ dàng hơn và hệ thống linh hoạt hơn khi yêu cầu thay đổi.

 

AI Automator entities hoạt động như thế nào?

Hiểu rõ các thành phần cấu thành AI Automators sẽ giúp bạn thiết kế workflow hiệu quả. Module tổ chức quá trình xử lý dựa trên ba khái niệm cốt lõi, phối hợp với nhau để biến đầu vào thành đầu ra.


Khái niệm cốt lõi

Trong module, một AI Automator có thể đại diện cho:

  • Một thao tác AI đơn lẻ, hoặc

  • Một workflow nhiều bước hoàn chỉnh.

Khi cần nhiều bước phối hợp, bạn tạo AI Automator Chain – một chuỗi trong đó đầu ra của bước trước trở thành đầu vào của bước sau.


Cấu trúc của một AI Automator Chain

Một automator chain gồm ba thành phần chính:

  1. Automator Base Fields – cung cấp dữ liệu đầu vào (ví dụ: file PDF được upload).

  2. Output fields – lưu kết quả từ từng bước xử lý (ví dụ: văn bản trích xuất, phản hồi AI).

  3. Chain configuration – định nghĩa thứ tự các thao tác (trích xuất text từ PDF → phân tích bằng AI → parse kết quả → điền vào field).

Ba thành phần này kết hợp lại thành một pipeline xử lý hoàn chỉnh.


Automator Base Field (đầu vào)

Automator Base Field là thuật ngữ module dùng để chỉ nguồn dữ liệu đầu vào. Đây là “nguyên liệu thô” mà workflow sẽ xử lý – có thể là:

  • File PDF

  • Nội dung văn bản

  • Hình ảnh

  • Hoặc bất kỳ dữ liệu nào cần phân tích/chuyển đổi

Trong triển khai của BetterRegulation, Automator Base Field là field_pdf_file, lưu file PDF được upload và được đưa qua pipeline trích xuất – phân tích.

Module còn hỗ trợ Automator Input Mode:

  • Basic mode: sử dụng một field.

  • Advanced mode: sử dụng nhiều field thông qua token.

Điều này cho phép linh hoạt trong cách dữ liệu đi vào workflow.


Output Fields (kết quả)

Output fields (còn gọi là AI Automator Output Fields trong tài liệu) lưu kết quả trung gian và cuối cùng của quá trình xử lý.

Khác với Automator Base Field chứa dữ liệu đầu vào, output fields ghi nhận “trạng thái sau xử lý” của từng bước.

Các output phổ biến gồm:

  • Văn bản trích xuất từ PDF

  • Phản hồi thô từ AI (thường ở dạng JSON)

  • Metadata xử lý (timestamp, token count)

  • Thông báo lỗi

Trong AI Automator Chain, các field này tạo thành pipeline: đầu ra của bước trước là đầu vào của bước sau.

Triển khai của BetterRegulation sử dụng:

  • field_extracted_text để lưu text đã làm sạch từ PDF.

  • field_ai_response để lưu JSON thô từ GPT-4o-mini.

Việc tách biệt này mang lại nhiều lợi ích:

  • Debug dễ dàng: kiểm tra từng bước đã xử lý thế nào.

  • Caching hiệu quả: tái sử dụng text đã trích xuất cho nhiều prompt khác nhau mà không cần xử lý lại PDF.

  • Audit minh bạch: biết chính xác AI trả về gì trước khi parse.

  • Reprocessing linh hoạt: chạy lại các bước sau mà không cần lặp lại bước đầu (rất hữu ích khi tinh chỉnh prompt).


Chain Configuration

Chain configuration là nơi định nghĩa workflow – chuỗi AI Automators được thực thi theo thứ tự.

Theo tài liệu module, chain được tạo như các entity tạm thời, có thể bundle, mỗi bước AI tương ứng với một field riêng, xử lý dữ liệu qua nhiều giai đoạn trong cùng một workflow thống nhất.

Mỗi bước trong chain có bốn thành phần chính:

  1. Type – xác định thao tác cần thực hiện (trích xuất text, phân tích AI, parse, v.v.). Trong module có thể là text completion automator, image analysis automator hoặc plugin tùy chỉnh.

  2. Source – xác định field đầu vào (từ Automator Base Field hoặc output của bước trước).

  3. Configuration – các tham số riêng của bước, bao gồm Automator Prompt, model, tùy chọn xử lý.

  4. Output – field sẽ ghi kết quả để các bước tiếp theo sử dụng.

Module cũng sử dụng Automator Weight để kiểm soát thứ tự thực thi khi nhiều automator áp dụng trên cùng một field – weight thấp sẽ chạy trước.


Tổng thể, AI Automator Chain vận hành như một pipeline có cấu trúc rõ ràng: input → xử lý nhiều bước → lưu output trung gian → xuất kết quả cuối cùng. Thiết kế này giúp workflow AI trở nên minh bạch, có thể debug, có thể mở rộng và dễ bảo trì trong môi trường production.

 

 

Cách xây dựng workflow AI nhiều bước bằng Chain

Hãy xây dựng workflow tóm tắt tài liệu của BetterRegulation dưới dạng AI Automator Chain – một quy trình nhiều bước, trong đó đầu ra của automator trước là đầu vào của automator sau.


Ví dụ Chain: Tóm tắt tài liệu

Mục tiêu:
Tạo ba loại tóm tắt từ một tài liệu PDF:

  • Tóm tắt dài (long summary)

  • Tóm tắt ngắn (short summary)

  • Trích xuất nghĩa vụ pháp lý (obligations summary)


Các bước trong Chain

Chain gồm bốn AI Automator chạy tuần tự:

  1. Gửi file PDF đến Unstructured.io để trích xuất văn bản sạch.

  2. Gửi văn bản đã trích xuất đến GPT-4o-mini để tạo bản tóm tắt dài.

  3. Rút gọn bản tóm tắt dài thành bản ngắn qua một lần gọi GPT khác.

  4. Phân tích lại văn bản gốc với prompt chuyên biệt để trích xuất các nghĩa vụ pháp lý.


Vì sao chọn thứ tự này?

Thiết kế này dựa trên ràng buộc thực tế và tối ưu chi phí:

  • Không thể xử lý song song bước 2 và 3 vì bản tóm tắt ngắn phụ thuộc vào bản tóm tắt dài.

  • Văn bản đã trích xuất được tái sử dụng cho nhiều tác vụ, thay vì trích xuất PDF ba lần.

  • Giảm thời gian xử lý và chi phí API.


Bước 1: PDF → Text (Unstructured.io)

Bước đầu tiên sử dụng một plugin trích xuất văn bản tùy chỉnh tích hợp với Unstructured.io.

Quy trình:

  • Lấy file PDF từ Automator Base Field.

  • Gửi đến API Unstructured.io với chế độ phân tích layout độ phân giải cao.

  • Nhận về các phần tử có cấu trúc (title, paragraph, list item…).

  • Loại bỏ nhiễu như header, footer.

  • Ghép nội dung sạch với khoảng cách hợp lý.

  • Lưu kết quả vào một output field.

Kết quả: văn bản sạch, sẵn sàng cho AI xử lý, kể cả với layout PDF phức tạp.


Bước 2: Text → Long Summary (GPT)

Bước thứ hai sử dụng tính năng text completion tích hợp sẵn của AI Automators.

Thực hiện:

  • Lấy văn bản đã trích xuất.

  • Gửi đến model GPT-4o-mini.

  • Sử dụng prompt yêu cầu tóm tắt toàn diện, tập trung vào:

    • Mục đích tài liệu

    • Phạm vi

    • Đối tượng bị ảnh hưởng

    • Chủ đề chính

    • Bối cảnh

Cấu hình:

  • Temperature thấp (0.3) để đảm bảo kết quả ổn định và thiên về tính chính xác thay vì sáng tạo.

  • Prompt dùng token để chèn động nội dung văn bản.

  • Phản hồi của AI được lưu vào một output field mới.


Bước 3: Long Summary → Short Summary (GPT)

Bước thứ ba lấy bản tóm tắt dài và rút gọn lại bằng một prompt khác, tập trung vào “chắt lọc” thay vì “sáng tạo”.

Lợi ích của cách tiếp cận này:

  • Sử dụng ít token hơn vì xử lý bản tóm tắt thay vì toàn bộ văn bản.

  • Có thể tái tạo bản tóm tắt ngắn mà không cần tạo lại bản dài.

  • Dễ tối ưu từng loại tóm tắt độc lập dựa trên phản hồi người dùng.


Thiết kế theo dạng Chain như vậy giúp workflow:

  • Có cấu trúc rõ ràng.

  • Tối ưu chi phí và hiệu năng.

  • Dễ bảo trì và debug.

  • Linh hoạt tinh chỉnh từng bước mà không ảnh hưởng toàn bộ quy trình.

 

Cách quản lý Prompt trong AI Automators

Một trong những tính năng mạnh nhất của AI Automators là khả năng quản lý prompt thông qua giao diện quản trị thay vì hardcode trong codebase. Điều này cho phép cải tiến nhanh và trao quyền trực tiếp cho chuyên gia nghiệp vụ tinh chỉnh workflow.


Lưu trữ và chỉnh sửa Prompt

Vị trí trong Admin UI:
/admin/config/ai/automators

Tại đây, bạn có thể quản lý các automator và chain. Mỗi automator đều có thể cấu hình Automator Prompt trực tiếp trong giao diện quản trị.


Lợi ích của việc quản lý Prompt qua UI

Quản lý prompt qua giao diện thay vì hardcode mang lại nhiều lợi ích thực tiễn:

  • Có thể chỉnh sửa prompt mà không cần thay đổi code.

  • Không cần deploy, không cần commit Git, không chờ CI/CD pipeline.

  • Biên tập viên và chuyên gia nghiệp vụ có thể tự tinh chỉnh prompt.

  • Dễ dàng thực hiện A/B testing: clone chain, chỉnh prompt, test với tài liệu thật, so sánh kết quả.

  • Vẫn đảm bảo version control vì prompt là một phần của Drupal configuration, có thể export, track và rollback.

  • Chu kỳ cải tiến rút ngắn từ vài ngày xuống vài phút: chỉnh prompt → lưu → test ngay.


Quy trình tối ưu Prompt tại BetterRegulation

Quy trình thực tế của họ:

  1. Developer tạo prompt ban đầu.

  2. Biên tập viên pháp lý đánh giá và đề xuất cải tiến.

  3. Chỉnh sửa prompt trong admin UI.

  4. Test với 10–20 tài liệu thực tế.

  5. Đo lường độ chính xác.

  6. Tinh chỉnh và lặp lại.

Kết quả: độ chính xác tăng từ 85% lên 95% nhờ quá trình lặp cải tiến.


Token Injection (Chèn token động)

AI Automators hỗ trợ thay thế token động, giúp prompt thích ứng với nội dung đang được xử lý.

Các token có thể sử dụng bao gồm:

  • {{ field_name }} – tham chiếu bất kỳ field nào từ Automator Base Field hoặc output của các bước trước.

  • {{ node:title }} – tiêu đề node.

  • {{ node:created }} – ngày tạo.

  • {{ user:name }} – người dùng hiện tại.

  • Token tùy chỉnh khai báo qua hook_token_info().

Nhờ cơ chế này, prompt có thể tham chiếu:

  • Dữ liệu entity

  • Ngữ cảnh người dùng

  • Metadata hệ thống

  • Hoặc bất kỳ token Drupal nào khả dụng

Bạn có thể sử dụng nhiều token trong cùng một prompt để tạo hướng dẫn có ngữ cảnh. Ví dụ:

  • Tham chiếu content type.

  • Tham chiếu tiêu đề.

  • Tham chiếu ngày tạo.

  • Tham chiếu vai trò người dùng.

Tất cả được thay thế tự động khi workflow chạy.


Tóm lại, việc quản lý prompt qua UI kết hợp với token injection giúp hệ thống AI trong Drupal trở nên linh hoạt, dễ kiểm soát và dễ tối ưu trong môi trường production.

 

Cách tích hợp AI Automators với Drupal Forms

AI Automators có thể được kích hoạt trực tiếp từ form chỉnh sửa nội dung của Drupal, giúp biên tập viên chủ động kiểm soát thời điểm chạy xử lý. Cách triển khai phụ thuộc vào việc bạn cần kết quả ngay (realtime) hay có thể xử lý nền (background).


Kích hoạt AI Automators từ UI

Phương án 1: Bấm nút (xử lý realtime)

Với bài toán phân loại tài liệu, BetterRegulation thêm nút “Generate with AI” vào form chỉnh sửa nội dung bằng cơ chế form alter của Drupal.

Khi người dùng bấm nút:

  • Nút kích hoạt một handler có AJAX.

  • Hiển thị progress indicator trong lúc xử lý.

  • Handler tải cấu hình automator.

  • Truyền file PDF đã upload vào workflow.

  • Thực thi workflow.

  • Lấy phản hồi AI dạng JSON.

  • Parse JSON và điền giá trị vào các field trên form.

  • Form được rebuild tự động để hiển thị các field đã được điền, cho phép biên tập viên xem lại và chỉnh sửa trước khi lưu.


Phương án 2: Tự động kích hoạt (xử lý nền qua queue)

Với bài toán tạo bản tóm tắt, hệ thống dùng entity hooks của Drupal để tự động đưa tác vụ vào queue khi tài liệu được tạo mới hoặc cập nhật.

Cơ chế queue:

  • Khi node được create/update, hệ thống queue một job.

  • Job được gắn timestamp delay 15 phút, để đảm bảo nội dung “ổn định” trước khi chạy tác vụ AI tốn chi phí.

  • Không cần thao tác từ người dùng: bản tóm tắt sẽ tự sinh tự động ở chế độ nền.

Cách này phù hợp khi kết quả không cần ngay lập tức và không muốn làm gián đoạn trải nghiệm biên tập.

 

Xử lý realtime so với xử lý nền

Realtime (đồng bộ)

Dùng xử lý realtime khi người dùng cần kết quả ngay lập tức. Phân loại tài liệu là ví dụ điển hình: biên tập viên upload PDF, bấm “Generate with AI”, rồi chờ các field được điền tự động. Thời gian xử lý thường khoảng 10 giây đến 2 phút. Trải nghiệm người dùng (UX) gồm:

  • Hiển thị tiến trình (progress indicator)

  • Cập nhật form bằng AJAX, hiển thị các field đã được điền ngay khi có kết quả


Background (bất đồng bộ)

Xử lý nền phù hợp khi kết quả không cần ngay lập tức. Sinh bản tóm tắt là trường hợp phù hợp: biên tập viên không cần tóm tắt để hoàn thành việc tạo nội dung, vì vậy hệ thống có thể xử lý sau. Thời gian xử lý có thể lâu hơn do không chặn thao tác người dùng; bản tóm tắt sẽ tự xuất hiện khi xử lý xong, người dùng không cần chờ.


Cách BetterRegulation áp dụng

  • Categorization chạy realtime vì biên tập viên cần các field phân loại được điền trước khi lưu tài liệu — gán taxonomy là phần lõi của quy trình tạo nội dung.

  • Summaries chạy nền vì không gấp, và không nên làm gián đoạn quy trình biên tập.

Nhờ vậy, biên tập viên có thể tạo nội dung, phân loại và lưu ngay, trong khi các bản tóm tắt được tạo “hậu trường”.


Phản hồi cho người dùng trong lúc xử lý

Với xử lý realtime, hệ thống:

  • Hiển thị throbber (biểu tượng xoay) kèm thông điệp ước tính thời gian để người dùng biết hệ thống đang làm việc.

  • Khi hoàn tất, hiển thị thông báo thành công, nêu rõ bao nhiêu field đã được điền, đồng thời nhắc biên tập viên kiểm tra lại kết quả.

  • Khi lỗi, hiển thị thông báo lỗi với lý do cụ thể, giúp biên tập viên hiểu vấn đề, quyết định thử lại hay chuyển sang xử lý thủ công.

 

Tích hợp Queue với RabbitMQ

Với các tác vụ AI tốn thời gian, đưa xử lý vào queue mang lại lợi ích quan trọng so với xử lý đồng bộ (synchronous). BetterRegulation dùng RabbitMQ để xử lý nền, kèm một cơ chế delay thông minh nhằm tránh gọi API lặp lại không cần thiết.


Vì sao nên đưa Automator vào queue?

Xử lý đồng bộ trong môi trường production thường tạo ra nhiều vấn đề:

  • Chặn UI: người dùng phải chờ 30–60 giây cho đến khi xử lý xong, không làm được việc khác.

  • Rủi ro timeout: nếu tác vụ vượt quá timeout của PHP hoặc web server, request có thể fail.

  • Gọi AI dư thừa: biên tập viên chỉnh sửa liên tiếp (5 lần save nhanh) có thể kích hoạt 5 lần gọi AI đắt tiền cho cùng một tài liệu.

  • Tải cao giờ cao điểm: mọi xử lý dồn vào giờ hành chính khi hệ thống đã bận.

Queue giải các vấn đề này khá “đúng bài”:

  • Không chặn thao tác: người dùng tiếp tục làm việc, xử lý chạy nền.

  • Không sợ timeout: worker chạy ngoài vòng đời web request nên có thời gian xử lý dài hơn.

  • Cơ chế delay giúp gom nhiều lần chỉnh sửa thành một lần xử lý.

  • Phân phối tải: có thể xử lý vào giờ thấp điểm khi tài nguyên rảnh hơn.


Giải thích cơ chế delay 15 phút

Vấn đề BetterRegulation gặp

Biên tập viên thường:

  1. Tạo tài liệu (kích hoạt tạo summary)

  2. Thấy sai tiêu đề → sửa và lưu

  3. Thêm metadata → lưu

  4. Sửa lỗi chính tả → lưu

  5. Rà soát lần cuối → lưu

Kết quả: 5 lần save trong 10 phút5 lần gọi AI tạo summary cho cùng một tài liệu.

Giải pháp: trì hoãn thực thi queue

Cách triển khai:

  • Hệ thống kiểm tra tài liệu đã có trong queue chưa:

    • Nếu đã có, chỉ cần reset thời điểm chạy = 15 phút tính từ hiện tại.

    • Nếu chưa có, tạo một queue item mới kèm timestamp delay 15 phút.

  • Worker khi lấy job sẽ kiểm tra timestamp:

    • Nếu chưa tới giờ, đưa job trở lại queue để chạy sau.

    • Nếu đã tới giờ, mới thực thi tạo summary.

Kết quả: biên tập viên sửa 5 lần trong 10 phút vẫn chỉ kích hoạt 1 lần gọi AI (chạy sau lần chỉnh cuối 15 phút), tiết kiệm 4 lần gọi API và chi phí tương ứng.

Thời gian delay có thể cấu hình trong hệ thống cấu hình của Drupal để phù hợp thói quen làm việc và cân nhắc chi phí.


RabbitMQ + Drupal: tích hợp như thế nào?

Vì sao chọn RabbitMQ?

RabbitMQ cung cấp:

  • Giao hàng thông điệp đáng tin cậy (reliable delivery)

  • Lưu bền (persistence) qua restart server

  • Cơ chế xác nhận (acknowledgment) để tránh mất job

  • Dead letter queue để xử lý job lỗi

  • Dễ scale bằng cách thêm worker

Lưu ý: BetterRegulation đã có RabbitMQ sẵn cho nhu cầu queue khác, nên phần AI chỉ “ăn theo” hạ tầng hiện hữu.

Thiết lập cơ bản

  • Cài Drupal RabbitMQ module qua Composer

  • Cấu hình kết nối trong settings.php (host, port, username, password, virtual host)

  • Khai báo queue services trong services.yml

Cấu hình này giúp Drupal queue chuyển từ cơ chế mặc định lưu DB sang sử dụng RabbitMQ.


Cấu hình Worker

Supervisor (Process Manager)

BetterRegulation dùng Supervisor để quản lý worker:

  • Chạy liên tục 2 worker process

  • Mỗi worker chạy 1 giờ rồi restart để tránh memory leak

  • Nếu worker crash, Supervisor tự khởi động lại

  • Ghi log toàn bộ output để debug

Dev vs Production

  • Local dev: Docker Compose mount cấu hình Supervisor và chạy supervisord

  • Production: Kubernetes chạy worker pods với:

    • Giới hạn tài nguyên (512Mi RAM, 500m CPU)

    • Replica (3 worker) để tăng throughput và dự phòng

Cách container hóa này giúp hành vi worker nhất quán giữa môi trường dev/staging/prod.

 

Cách giám sát và debug AI Automators

Workflow AI chạy production cần giám sát đầy đủ để phát hiện lỗi, theo dõi hiệu năng và tối ưu chi phí. AI Automators tích hợp sẵn với hệ thống logging của Drupal và có thể mở rộng bằng các cơ chế monitoring tùy biến.


Tích hợp Watchdog (logging)

AI Automators tự động ghi log vào Watchdog của Drupal.

Bạn có thể nâng cấp khả năng quan sát bằng cách triển khai các hook/custom logic để:

  • Ghi thời gian thực thi cho từng bước trong chain (step timing).

  • Ghi nhận automator nào đã chạy (chain/step identifier).

  • Ghi lỗi chi tiết khi thất bại, bao gồm stack trace.

  • (Tùy chọn) Gửi thông báo cho admin khi có lỗi để tránh “lỗi âm thầm”.

Mục tiêu là biến log từ “có lỗi” thành “lỗi ở bước nào, mất bao lâu, input/output ra sao”.


Tạo Admin View theo dõi trạng thái xử lý

Tạo một trang báo cáo quản trị tại:

/admin/reports/ai-processing-status

Trang này hiển thị các tài liệu xử lý gần đây kèm:

  • Trạng thái: success / failed / queued

  • Thời gian xử lý (duration)

  • Token usage

  • Thông điệp lỗi (nếu có)

Nên có các cột/field:

  • Tiêu đề node + link

  • Timestamp xử lý

  • Status indicator

  • Duration

  • Token (input/output nếu có)

  • Error details

Bổ sung filter để admin truy vấn nhanh:

  • Lọc theo status

  • Lọc theo khoảng thời gian

  • Lọc theo content type

Sắp xếp theo timestamp giảm dần để ưu tiên các xử lý mới nhất.


Xử lý job lỗi (Failed job handling)

Retry tự động cho lỗi tạm thời

Triển khai retry cho các lỗi “thoáng qua” như:

  • Lỗi mạng

  • API timeout

  • Lỗi provider tạm thời

Cơ chế mẫu:

  • Thử tối đa 3 lần

  • Mỗi lần retry tăng attempt counter

  • Nếu quá số lần, đánh dấu failed và dừng

Không retry cho lỗi không thể cứu

Các lỗi như dữ liệu sai định dạng (malformed) nên fail ngay, tránh tốn chi phí retry vô ích.


Dead Letter Queue (RabbitMQ)

Cấu hình RabbitMQ với Dead Letter Queues (DLQ) để:

  • Job thất bại không “biến mất”

  • Tự động chuyển sang queue riêng cho admin kiểm tra

Nhờ DLQ:

  • Không mất tài liệu nào trong pipeline

  • Admin có thể xem job lỗi, xác định nguyên nhân, sửa dữ liệu/cấu hình

  • Có thể retry thủ công khi cần


Tóm lại: Watchdog cho log nền tảng, Admin View cho quan sát vận hành, retry + DLQ cho độ bền production. Đây là bộ ba giúp workflow AI chạy ổn định, dễ debug và kiểm soát chi phí.

 

Ví dụ thực tế: BetterRegulation

Hãy xem các chain đang chạy production của BetterRegulation để thấy những khái niệm ở phần trước được “lắp ghép” thành workflow thực tế như thế nào. Các ví dụ dưới đây cho thấy lựa chọn cấu hình cụ thể và lý do đứng sau.


Ví dụ Chain: Phân loại tài liệu (Document Categorization)

Chain phân loại tài liệu dùng file PDF làm Automator Base Field, và tạo ra hai output trung gian:

  • Extracted text (văn bản trích xuất)

  • AI response JSON (phản hồi AI dạng JSON)

Chain chạy 3 automator theo thứ tự:

  1. Trích xuất text từ PDF bằng Unstructured.io, bật phân tích độ phân giải cao (high-resolution analysis).

  2. Gửi extracted text sang GPT-4o-mini với một Automator Prompt “đầy đủ” (bao gồm toàn bộ lựa chọn taxonomy) và yêu cầu đầu ra JSON.

    • Temperature: 0.1 để đảm bảo tính nhất quán

    • Max tokens: 2000

  3. Parse JSONđiền dữ liệu vào node: các field taxonomy và metadata.


Ví dụ Chain: Tạo bản tóm tắt (Summary Generation)

Chain tạo tóm tắt cũng bắt đầu từ PDF làm base field, nhưng tạo ra 4 output fields:

  • Extracted text

  • Long summary

  • Short summary

  • Obligations summary (tóm tắt nghĩa vụ pháp lý)

Chain chạy 4 automator theo thứ tự:

  1. Trích xuất text (tương tự chain phân loại).

  2. Tạo long summary từ toàn bộ văn bản.

  3. Rút gọn long summary thành short summary.

  4. Trích xuất nghĩa vụ pháp lý từ văn bản gốc bằng một prompt chuyên biệt.

Chain này được kích hoạt bởi queue system và chạy nền với cơ chế delay 15 phút.

 

Best Practices cho AI Automators

Các kinh nghiệm dưới đây được rút ra từ triển khai thực tế của BetterRegulation. Áp dụng các nguyên tắc này sẽ giúp workflow AI của bạn ổn định hơn, dễ bảo trì hơn và sẵn sàng cho production.


1. Thiết kế để dễ debug

Luôn tạo các output trung gian, ví dụ:

  • Extracted text

  • Raw AI response (JSON)

  • Log xử lý

Khi xảy ra lỗi, bạn có thể kiểm tra từng bước để xác định chính xác vấn đề nằm ở đâu:

  • Chất lượng trích xuất PDF?

  • Định dạng phản hồi AI?

  • Logic parse và điền field?

Workflow có khả năng quan sát (observability) cao sẽ dễ vận hành hơn nhiều.


2. Prompt dạng module (Modular prompts)

Tránh viết một prompt “khổng lồ” cố làm mọi thứ. Thay vào đó, tách riêng theo mục tiêu:

  • Một prompt cho phân loại (tập trung taxonomy matching).

  • Một prompt cho tóm tắt (tập trung diễn giải rõ ràng).

  • Một prompt cho trích xuất nghĩa vụ (tập trung yêu cầu pháp lý).

Cách tiếp cận module mang lại lợi ích:

  • Dễ tối ưu vì mỗi prompt chỉ phục vụ một nhiệm vụ.

  • Có thể test độc lập từng prompt.

  • Tái sử dụng được giữa nhiều workflow.

  • Hướng dẫn rõ ràng hơn, tránh xung đột mục tiêu trong một prompt dài.


3. Version hóa Automator Chains

Xem Automator Chain như code.

Sử dụng Drupal configuration management:

 

drush config:export

 

Lệnh này xuất automator và chain vào thư mục config/sync/, đặt chúng dưới version control cùng với code.

Lợi ích:

  • Theo dõi thay đổi prompt theo thời gian.

  • Có thể rollback khi prompt mới làm giảm độ chính xác.

  • Đồng bộ cấu hình giữa dev / staging / production một cách đáng tin cậy.


4. Test với dữ liệu thực

Clone chain production để tạo phiên bản test.

Quy trình:

  • Chỉnh prompt trong chain test.

  • Chạy với 20–30 tài liệu thực tế.

  • So sánh độ chính xác với production.

  • Nếu tốt hơn, promote lên production.

Cách này cho phép cải tiến an toàn mà không làm ảnh hưởng môi trường thật.


5. Theo dõi token usage

Triển khai logging:

  • Số token input/output mỗi lần xử lý.

  • Ước tính chi phí theo bảng giá API hiện tại.

  • Lưu timestamp.

Tạo báo cáo hàng tháng:

  • Số tài liệu đã xử lý.

  • Tổng token tiêu thụ.

  • Chi phí ước tính.

Điều này giúp:

  • Phát hiện spike chi phí.

  • Tối ưu prompt để tiết kiệm token.

  • Dự báo ngân sách.


6. Graceful degradation (Giảm cấp mềm khi lỗi)

Bao bọc thực thi automator trong khối try-catch.

Khi lỗi:

  • Log chi tiết lỗi.

  • Đặt giá trị mặc định.

  • Gắn cờ nội dung cần review thủ công.

  • Vẫn cho phép publish.

Không để lỗi AI làm dừng toàn bộ workflow biên tập. Hệ thống phải giảm cấp mềm thay vì “đứng hình”.


7. Bảo mật

Trước khi xử lý:

  • Kiểm tra MIME type (chỉ cho phép PDF).

  • Giới hạn dung lượng (ví dụ tối đa 50MB).

  • Quét malware nếu nhận file từ người dùng.

Thêm rate limiting, ví dụ:

  • Tối đa 20 request AI mỗi người dùng mỗi giờ.

Các biện pháp này giúp:

  • Ngăn upload độc hại.

  • Tránh cạn kiệt tài nguyên.

  • Hạn chế lạm dụng gây tăng chi phí API.


Tóm lại: AI Automators mạnh ở cấu hình linh hoạt, nhưng để vận hành production hiệu quả, bạn cần thiết kế có khả năng quan sát, kiểm soát chi phí, quản lý phiên bản, và đảm bảo an toàn hệ thống.

 

AI Automators: lợi ích và kết quả thực tế

AI Automators biến việc tích hợp AI từ chỗ phải viết code tùy chỉnh phức tạp thành các workflow có thể cấu hình.

Lợi ích chính

  • Cấu hình thay vì code: xây workflow qua admin UI.

  • Lặp cải tiến nhanh: thử nhiều prompt và model khác nhau nhanh chóng.

  • Trao quyền cho non-developer: chuyên gia nghiệp vụ có thể tự tinh chỉnh prompt.

  • Điều phối nhiều bước: nối các thao tác theo chuỗi một cách liền mạch.

  • Trừu tượng hóa provider: chuyển giữa OpenAI, Claude… mà không cần sửa code.

  • Sẵn sàng production: có sẵn xử lý lỗi và logging.


Kết quả BetterRegulation khi dùng AI Automators

Hệ thống production hiện:

  • Xử lý hơn 200 tài liệu mỗi tháng.

  • Đạt độ chính xác phân loại >95%.

  • <5% field cần biên tập viên chỉnh lại — mức này khiến mô hình human-in-the-loop trở nên “nhẹ” và thực tế, không còn là gánh nặng.

  • Tiết kiệm 50% thời gian so với xử lý thủ công hoàn toàn.

  • Giải phóng tương đương 1 nhân sự toàn thời gian (1 FTE) để tập trung vào công việc giá trị cao hơn như phân tích chính sách và lập kế hoạch nội dung chiến lược.

Kết luận và gợi ý triển khai

Nếu bạn đang xây dựng tính năng AI trên Drupal, AI Automators (thuộc AI module) giúp giảm đáng kể thời gian phát triển và độ phức tạp, nhờ:

  • Ít code tùy chỉnh phải bảo trì

  • Chu kỳ cải tiến nhanh

  • Chuyên gia nghiệp vụ tham gia trực tiếp tối ưu workflow

Dù bạn cần một automator đơn lẻ hay một chain nhiều bước, module đều cung cấp framework phù hợp.

Khuyến nghị triển khai:

  1. Bắt đầu đơn giản: 1 automator cho 1 content type.

  2. Khi cần nhiều bước: tạo AI Automator Chain để liên kết các thao tác.

  3. Test kỹ với dữ liệu thật.

  4. Đo lường kết quả.

  5. Mở rộng sang các content type và workflow khác, áp dụng bài học từ lần triển khai đầu.

Bạn muốn triển khai AI Automators trên nền tảng Drupal của mình?

Nghiên cứu tình huống này dựa trên triển khai production thực tế của chúng tôi cho BetterRegulation, nơi chúng tôi xây dựng các workflow AI nhiều bước xử lý hơn 200 tài liệu mỗi tháng với độ chính xác trên 95%. Hệ thống đã vận hành ổn định trên production từ năm 2024, mang lại kết quả nhất quán với các chức năng: phân loại tài liệu tự động, tạo bản tóm tắt và xử lý nền qua queue – giúp tiết kiệm 50% thời gian so với xử lý thủ công.

Bạn quan tâm xây dựng workflow AI cho website Drupal của mình? Đội ngũ của chúng tôi chuyên triển khai AI Automators theo chuẩn production, cân bằng giữa độ chính xác, hiệu năng và khả năng bảo trì. Chúng tôi có thể đảm nhiệm toàn bộ từ thiết kế kiến trúc ban đầu, cấu hình workflow, đến triển khai production và tối ưu vận hành. Hãy truy cập dịch vụ phát triển AI tạo sinh của chúng tôi để tìm hiểu cách chúng tôi có thể giúp bạn tận dụng AI Automators cho các workflow nội dung.