AI Automators przekształca zaawansowane workflow AI z kodu w konfigurację. To case study pokazuje, jak BetterRegulation zbudowało zautomatyzowane przepływy pracy na produkcji, przetwarzające ponad 200 dokumentów miesięcznie z dokładnością 95%+, wykorzystując łańcuchy wieloetapowe, kolejki w tle oraz prompty zarządzane przez administratorów. Bez potrzeby pisania niestandardowego kodu integracyjnego.
W tym artykule:
- Czym jest AI Automators?
- Kontekst projektu
- Kiedy używać AI Automators, a kiedy własnego kodu?
- Jak działają encje AI Automator?
- Jak zbudować wieloetapowy workflow AI z łańcuchami?
- Jak zarządzać promptami w AI Automators?
- Jak zintegrować AI Automators z formularzami Drupala?
- Integracja kolejek z RabbitMQ
- Jak monitorować i debugować AI Automators?
- Przykład z rzeczywistego projektu: BetterRegulation
- Jakie są najlepsze praktyki dla AI Automators?
- AI Automators: korzyści i wyniki z produkcji
- Chcesz wdrożyć AI Automators na swojej platformie Drupal?
Czym jest AI Automators?
AI Automators to podmoduł Drupal AI, który dostarcza framework do budowania zautomatyzowanych przepływów pracy w Drupalu – szczególnie efektywny dla integracji AI. AI Automators działa jako pojedyncza operacja (np. streszczanie tekstu), podczas gdy AI Automator Chain tworzy wieloetapowe workflow, gdzie wynik każdej operacji staje się wejściem dla następnej.
Myśl o tym jak o silniku workflow dla zaawansowanych, wieloetapowych procesów, który pozwala budować workflow AI poprzez konfigurację w panelu administracyjnym zamiast przez kod. Zapewnia abstrakcję providerów, co oznacza, że działa płynnie z OpenAI, Anthropic, modelami lokalnymi i innymi. Workflow, które tworzysz, stają się komponentami wielokrotnego użytku. Zbuduj raz, zastosuj do wielu typów treści.
Bez AI Automators integracja AI z Drupalem oznacza pisanie niestandardowego kodu dla każdego workflow, ręczną integrację z każdym API dostawcy, zakodowanie promptów na stałe w kodzie, radzenie sobie z powtarzalnym kodem szablonowym i samodzielne zarządzanie zaawansowaną logiką orkiestracji. Jest to wykonalne, ale czasochłonne i kruche.
Z AI Automators konfigurujesz workflow przez interfejs, zarządzasz promptami w panelu administracyjnym, gdzie osoby nietechniczne mogą je dopracowywać, zmieniasz dostawców AI bez zmian w kodzie, ponownie wykorzystujesz workflow dla różnych typów treści i budujesz wieloetapowe procesy wizualnie. Przejście z kodu na konfigurację wyraźnie skraca czas prac deweloperskich i umożliwia iterację przez ekspertów z danej dziedziny.
BetterRegulation wykorzystuje AI Automators w kilku obszarach. Kategoryzacja dokumentów automatycznie wypełnia 15 pól na podstawie analizy PDF. Generowanie streszczeń tworzy trzy różne typy podsumowań (długie, krótkie i obowiązki regulacyjne). Operacje czasochłonne trafiają do kolejek i są przetwarzane w tle, a cały workflow objęty jest obsługą błędów i logowaniem.
Ten przewodnik pokazuje, jak wykorzystać AI Automators w Twoich przepływach pracy opartych na AI.
Kontekst projektu
Ten szczegółowy opis bazuje na rzeczywistej implementacji BetterRegulation. Mieli istniejącą platformę Drupal 11 i chcieli dodać możliwości AI bez zakłócania procesu redakcyjnego i bez konieczności rozległych prac deweloperskich.
Wyzwań było kilka. Wiele typów treści – dokumenty Know How, Konsultacje Ogólne i treści Station – wymagało przetwarzania AI, ale każdy typ potrzebował innego podejścia. Kategoryzacja w czasie rzeczywistym sprawdzała się w niektórych przypadkach, natomiast generowanie streszczeń w tle lepiej pasowało do innych. Redaktorzy prawni, którzy rozumieli niuanse taksonomii dokumentów lepiej niż ktokolwiek, potrzebowali możliwości dopracowywania promptów na podstawie testów dokładności – bez czekania na cykle deweloperskie. Co kluczowe, infrastruktura była już gotowa: RabbitMQ obsługiwał inne potrzeby kolejkowania, Drupal 11 działał na produkcji, a środowisko było stabilne. Nie chcieli wprowadzać dużych zmian architektonicznych.
Rozwiązaniem było użycie AI Automators do konfigurowania workflow AI przez panel administracyjny zamiast pisania niestandardowego kodu dla każdej integracji. Ta decyzja architektoniczna umożliwiła szybką iterację podczas prac deweloperskich i – co ważniejsze – dała ekspertom dziedzinowym (redaktorom prawnym) możliwość dopracowywania promptów na podstawie rzeczywistej dokładności, bez angażowania developerów.

Przykład wdrożenia przepływu pracy opartego na sztucznej inteligencji do kategoryzacji dokumentów dla Better Regulation
Zobacz pełne case study kategoryzacji dokumentów AI tutaj →
Kiedy używać AI Automators, a kiedy własnego kodu?
Nie każda integracja AI potrzebuje AI Automators. Decyzja zależy od złożoności Twojego workflow, struktury zespołu i wymagań dotyczących szybkości iteracji.
AI Automators sprawdzają się przy zaawansowanych workflow
AI Automators sprawdzają się, gdy masz do czynienia z wieloetapowymi workflow – np. ekstrakcja PDF, analiza tekstu, parsowanie wyniku i wypełnianie pól. Każdy krok zależy od poprzedniego, a ręczne koordynowanie tego oznacza pisanie kodu orkiestracji, który szybko staje się skomplikowany.
Moduł naprawdę pokazuje swoją wartość, gdy potrzebujesz wielu operacji AI działających razem. Kategoryzacja, streszczanie i analiza mogą działać na tej samej treści, każda z innymi promptami i modelami. AI Automators obsługują tę koordynację przez konfigurację zamiast przez kod.
Konfiguracja nietechniczna to kolejna duża zaleta. Gdy redaktorzy prawni lub eksperci dziedzinowi muszą dopracowywać prompty na podstawie testów dokładności, udostępnienie im panelu administracyjnego jest lepsze niż czekanie na dostępność developera za każdym razem. Czas iteracji skraca się z dni do minut.
Jeśli chcesz elastyczności między dostawcami AI – testowanie, czy Claude działa lepiej niż GPT dla Twojego konkretnego przypadku użycia, lub utrzymywanie otwartych opcji w miarę rozwoju rynku AI – AI Automators abstrahują kod specyficzny dla dostawcy. Zmieniasz modele przez konfigurację, nie przez wdrożenie kodu.
Szybka iteracja podczas prac deweloperskich i testowania staje się prosta. Sklonuj automator, zmodyfikuj prompty, przetestuj na prawdziwych dokumentach, porównaj wyniki. Bez gałęzi w Gicie, bez pipeline’ów CI/CD – po prostu konfiguruj, testuj, dopracowuj.
Wreszcie, AI Automators pomaga w standaryzacji. Gdy masz wiele typów treści wymagających podobnego przetwarzania AI, tworzenie wzorców workflow wielokrotnego użytku zapobiega duplikacji kodu i zapewnia spójność.
Kiedy własny kod ma większy sens?
Własny kod pozostaje lepszym wyborem dla wysoce wyspecjalizowanej logiki, która nie pasuje do modelu workflow. Jeśli Twoje reguły biznesowe obejmują złożone rozgałęzienia warunkowe, orkiestrację systemów zewnętrznych lub przetwarzanie algorytmiczne wykraczające poza wywołania AI, niestandardowe serwisy dają Ci pełną kontrolę.
Ścieżki krytyczne dla wydajności mogą również uzasadniać własny kod. Podczas gdy AI Automators dodaje minimalny narzut, jeśli przetwarzasz tysiące dokumentów na godzinę i każda milisekunda się liczy, bezpośrednia integracja z API eliminuje warstwy abstrakcji.
Dla zaawansowanych integracji obejmujących wiele systemów zewnętrznych ze skomplikowanymi wymaganiami koordynacji, własny kod zapewnia elastyczność do obsługi przypadków brzegowych, których konfiguracja workflow nie może łatwo wyrazić.
A czasami po prostu masz jedną, prostą operację – jedno wywołanie API, proste przetwarzanie. Dodawanie orkiestracji workflow byłoby przesadą. Bezpośrednia integracja jest czystsza.
Wybór BetterRegulation
BetterRegulation wybrało AI Automators, ponieważ ich potrzeby idealnie pasowały do mocnych stron modułu. Mieli wiele kroków workflow – ekstrakcję PDF, czyszczenie tekstu, analizę AI, parsowanie wyniku i wypełnianie pól – które wymagały orkiestracji. Redaktorzy prawni, eksperci dziedzinowi najlepiej rozumiejący niuanse taksonomii, musieli dopracowywać prompty bez angażowania developerów. Zespół chciał też elastyczności w testowaniu różnych modeli AI w miarę rozwoju rynku. Spójne podejście do typów dokumentów było niezbędne dla łatwości utrzymania. A podczas prac deweloperskich szybka iteracja była ważniejsza niż wyciskanie każdej milisekundy wydajności.
Rezultat: szybszy start prac deweloperskich, łatwiejsze bieżące utrzymanie i większa elastyczność w adaptacji do zmieniających się wymagań.
Przeczytaj również: AGENTS.md Tool: jak AI faktycznie przyspiesza pracę w Drupalu
Jak działają encje AI Automator?
Zrozumienie podstawowych bloków budulcowych AI Automators pomaga projektować efektywne workflow. Moduł organizuje przetwarzanie wokół trzech kluczowych koncepcji, które współpracują, aby przekształcać wejścia w wyjścia.
Podstawowa koncepcja
AI Automator w module może reprezentować albo pojedynczą operację AI, albo kompletny wieloetapowy workflow. Gdy potrzebujesz wielu kroków działających razem, tworzysz AI Automator Chain – sekwencję, gdzie wynik każdej operacji staje się wejściem następnej operacji.
Anatomia AI Automator Chain:
Łańcuch automatorów zawiera trzy główne części. Pola bazowe Automator dostarczają dane wejściowe (np. przesłany plik PDF). Pola wyjściowe przechowują wyniki z każdego kroku przetwarzania (np. wyekstrahowany tekst i odpowiedzi AI). Konfiguracja łańcucha definiuje sekwencję operacji – wyekstrahuj tekst z PDF, analizuj z AI, parsuj wyniki i wypełnij pola.
Pole bazowe Automator (wejście)
Pole bazowe Automator to termin modułu dla źródła danych wejściowych. To pole dostarcza surowiec, który Twój workflow będzie przetwarzał – czy to plik PDF, treść tekstowa, obraz czy inne dane wymagające transformacji lub analizy.
W implementacji BetterRegulation polem bazowym Automator jest field_pdf_file, które przechowuje przesłany dokument PDF przepływający przez pipeline ekstrakcji i analizy. Moduł może również używać trybu wejściowego Automator do wyboru między trybem podstawowym (jedno pole) lub trybem zaawansowanym (wiele pól przez tokeny), dając Ci elastyczność w sposobie, w jaki dane wchodzą do Twojego workflow.
Pola wyjściowe (wyniki)
Pola wyjściowe (w dokumentacji spotkasz też nazwę „pola wyjściowe AI Automator”) przechowują pośrednie i końcowe wyniki z wykonania workflow. W przeciwieństwie do pola bazowego Automator, które przechowuje surowe wejście, pola wyjściowe przechwytują stan “po” – to, co wyłania się z każdego kroku przetwarzania w Twoim łańcuchu.
Typowe pola wyjściowe obejmują wyekstrahowany tekst z PDF-ów, surowe odpowiedzi AI (zazwyczaj JSON), metadane przetwarzania jak znaczniki czasu i liczby tokenów oraz komunikaty błędów, gdy coś pójdzie nie tak. W AI Automator Chain te pola tworzą pipeline, gdzie wyjście jednego kroku staje się wejściem następnego.
Implementacja BetterRegulation używa field_extracted_text do przechowywania czystego tekstu wyekstrahowanego z PDF-ów oraz field_ai_response do przechowywania surowej odpowiedzi JSON z GPT-4o-mini. Ta separacja odpowiedzialności okazuje się wartościowa na kilka sposobów.
Osobne pola wyjściowe ułatwiają debugowanie – możesz sprawdzić, co się stało na każdym kroku. Wspierają też strategie cachowania: wyekstrahowany tekst może być ponownie użyty dla różnych promptów bez ponownego przetwarzania PDF. Dają również możliwość audytu, ponieważ śledzą dokładnie to, co AI zwróciło przed jakimkolwiek parsowaniem lub transformacją. Umożliwiają też ponowne uruchomienie późniejszych kroków bez ponownej ekstrakcji wcześniejszych danych – co jest szczególnie przydatne przy dopracowywaniu promptów.
Konfiguracja łańcucha
Konfiguracja łańcucha definiuje Twój workflow – sekwencję AI Automatorów wykonywanych w kolejności. Tu znajduje się cała wieloetapowa logika. Zgodnie z dokumentacją modułu, łańcuchy są tworzone jako tymczasowe, bundlowane encje z jednym polem na krok AI, przetwarzające dane przez kilka etapów w ramach jednego workflow.
Każdy krok w łańcuchu ma cztery kluczowe komponenty. Typ definiuje, jaką operację wykonać, czy to ekstrakcja tekstu, analiza AI, parsowanie czy inna operacja – w terminach modułu może to być automator uzupełniania tekstu, automator analizy obrazu lub niestandardowa wtyczka automatora. Źródło określa, które pole(a) użyć jako wejście, pobierając dane albo z pola bazowego Automator, albo z pól wyjściowych poprzednich kroków. Konfiguracja zawiera parametry specyficzne dla tego kroku, jak prompt Automator, wybór modelu lub opcje przetwarzania. A wyjście określa, do którego pola zapisać wyniki, udostępniając je dla kolejnych kroków lub końcowego użycia.
Moduł używa również wagi Automator do kontrolowania kolejności wykonania, gdy wiele automatorów jest stosowanych do tego samego pola – niższa waga wykonuje się pierwsza.
Jak zbudować wieloetapowy workflow AI z łańcuchami?
Zbudujmy workflow generowania streszczeń dokumentów BetterRegulation jako AI Automator Chain – wieloetapowy proces, gdzie wynik każdego automatora zasila następny.
Przykład łańcucha: streszczanie dokumentów
Cel: wygenerować trzy typy streszczeń (długie, krótkie, zobowiązania) z dokumentu PDF.
Kroki łańcucha:
Łańcuch składa się z czterech sekwencyjnych AI Automatorów. Po pierwsze, plik PDF jest wysyłany do Unstructured.io w celu ekstrakcji tekstu, tworząc czysty tekst w polu wyjściowym. Po drugie, ten tekst trafia do GPT-4o-mini z promptem żądającym wyczerpującego długiego streszczenia. Po trzecie, długie streszczenie zostaje skondensowane do krótkiej wersji poprzez kolejne wywołanie GPT. Na koniec, oryginalny wyekstrahowany tekst jest analizowany ponownie z innym promptem skoncentrowanym konkretnie na ekstrakcji zobowiązań prawnych.
Dlaczego ta sekwencja?
Ten projekt workflow odzwierciedla praktyczne ograniczenia i możliwości optymalizacji. Przetwarzanie równoległe nie jest możliwe, ponieważ krótkie streszczenie zależy od długiego streszczenia – nie możesz skondensować tego, co nie istnieje. Wyekstrahowany tekst jest ponownie wykorzystywany do wielu operacji streszczania zamiast ponownej ekstrakcji PDF trzy razy, oszczędzając czas przetwarzania i koszty API.
Krok 1: PDF → tekst (Unstructured.io)
Pierwszy krok używa niestandardowej wtyczki ekstrakcji tekstu, która integruje się z Unstructured.io. Automator pobiera PDF z pola bazowego Automator, wysyła go do API Unstructured.io z włączoną analizą układu w wysokiej rozdzielczości, otrzymuje z powrotem elementy strukturalne (tytuły, paragrafy, elementy listy), odfiltrowuje zbędne elementy jak nagłówki i stopki, łączy czystą treść z odpowiednim odstępem i zapisuje wynik do pola wyjściowego. W efekcie otrzymujemy czysty, gotowy dla AI tekst ze skomplikowanych układów PDF.
Krok 2: tekst → długie streszczenie (GPT)
Drugi krok używa wbudowanej funkcji uzupełniania tekstu AI Automators. Bierze wyekstrahowany tekst i wysyła go do modelu GPT-4o-mini OpenAI z promptem, który żąda wyczerpującego streszczenia skoncentrowanego na celu dokumentu, zakresie, stronach dotkniętych, kluczowych tematach i kontekście. Ustawienie temperatury jest niskie (0.3), aby zapewnić spójne, faktyczne streszczenia zamiast kreatywnych wariacji. Prompt używa podstawiania tokenów do dynamicznego wstrzykiwania wyekstrahowanego tekstu, a odpowiedź AI zostaje zapisana do innego pola do użycia w kolejnych krokach.
Krok 3: długie streszczenie → krótkie streszczenie (GPT)
Trzeci krok bierze długie streszczenie z kroku 2 i kondensuje je używając innego promptu skoncentrowanego na destylacji zamiast tworzenia. To podejście używa mniej tokenów, ponieważ przetwarza streszczenie zamiast pełnego tekstu dokumentu. Utrzymywanie tego jako osobnego kroku pozwala na regenerowanie krótkiego streszczenia bez regenerowania długiego i ułatwia niezależną optymalizację każdego typu streszczenia na podstawie feedbacku użytkowników.
Jak zarządzać promptami w AI Automators?
Jedną z najpotężniejszych funkcji AI Automators jest możliwość zarządzania promptami przez UI administracyjny zamiast zakodowywania ich na stałe. To umożliwia szybką iterację i daje ekspertom dziedzinowym bezpośrednią kontrolę nad dopracowywaniem workflow.
Przechowywanie i edytowanie promptów
Lokalizacja w UI administratora: /admin/config/ai/automators do zarządzania automatorami i łańcuchami. Każdy automator może mieć prompt Automator skonfigurowany przez interfejs administracyjny.
Korzyści z promptów zarządzanych przez UI:
Zarządzanie promptami Automator przez interfejs zamiast zakodowywania ich na stałe przynosi kilka zalet. Możesz edytować prompty bez zmian w kodzie – bez wdrożeń, bez commitów Git, bez czekania na pipeline’y CI/CD. Osoby nietechniczne – redaktorzy i eksperci dziedzinowi, którzy faktycznie rozumieją niuanse treści – mogą sami dopracowywać prompty bez angażowania developerów. Testowanie A/B staje się proste: sklonuj konfigurację łańcucha, zmodyfikuj prompt Automator, przetestuj z prawdziwymi dokumentami i porównaj wyniki. Wersjonowanie nadal działa, bo prompty Automator są częścią konfiguracji Drupala, którą można eksportować, śledzić i przywracać tak jak kod. A czas iteracji skraca się z dni do minut – zmodyfikuj prompt, kliknij zapisz, przetestuj natychmiast.
Workflow BetterRegulation:
- Developer tworzy początkowy prompt.
- Redaktor prawny sprawdza i sugeruje ulepszenia.
- Edytuj prompt w UI administratora.
- Przetestuj z 10-20 dokumentami.
- Zmierz dokładność.
- Dopracuj i powtórz.
Rezultat: prompty poprawiły się z 85% do 95% dokładności poprzez iterację.
Wstrzykiwanie tokenów
Automators wspiera dynamiczne podstawianie tokenów, pozwalając budować prompty, które dostosowują się do przetwarzanej treści.
Dostępne tokeny obejmują {{ field_name }} do odwoływania się do dowolnego pola z pola bazowego Automator lub pól wyjściowych poprzednich kroków przetwarzania, {{ node:title }} dla tytułu node’a, {{ node:created }} dla daty utworzenia, {{ user:name }} dla bieżącego użytkownika oraz niestandardowe tokeny, które definiujesz przez hook_token_info(). Ta elastyczność oznacza, że Twoje prompty mogą odwoływać się do danych encji, kontekstu użytkownika lub dowolnego innego tokena Drupala.
Prompty mogą używać wielu tokenów do tworzenia instrukcji świadomych kontekstu. Na przykład, prompt może odwoływać się do typu treści, tytułu, daty utworzenia i roli użytkownika, aby generować streszczenia dostosowane do konkretnych odbiorców lub typów dokumentów – wszystko poprzez proste placeholdery tokenów, które są automatycznie zastępowane podczas wykonania.
Przeczytaj również: LangChain vs LangGraph vs Raw OpenAI: jak wybrać swój stos RAG
Jak zintegrować AI Automators z formularzami Drupala?
AI Automators mogą być uruchamiane z formularzy edycji treści Drupala, dając redaktorom bezpośrednią kontrolę nad tym, kiedy następuje przetwarzanie. Podejście implementacyjne zależy od tego, czy potrzebujesz natychmiastowych wyników, czy możesz przetwarzać w tle.
Uruchamianie AI Automators z UI
Opcja 1: Kliknięcie przycisku (przetwarzanie w czasie rzeczywistym)
Dla kategoryzacji dokumentów BetterRegulation dodaje przycisk „Generuj z AI” do formularza edycji treści, korzystając z systemu zmiany formularzy Drupala. Po kliknięciu, przycisk uruchamia akcję obsługi z włączonym AJAX, która pokazuje wskaźnik postępu podczas przetwarzania. Akcja ładuje konfigurację automatora, przekazuje przesłany plik PDF, wykonuje workflow, pobiera odpowiedź JSON AI, parsuje ją i wypełnia pola formularza wyekstrahowanymi wartościami. Formularz przebudowuje się automatycznie, aby pokazać wypełnione pola, pozwalając redaktorom sprawdzić i dostosować przed zapisaniem.
Opcja 2: Automatyczne uruchamianie przetwarzania w tle
Dla generowania streszczeń system używa hooków encji Drupala do automatycznego kolejkowania przetwarzania, gdy dokument jest tworzony lub aktualizowany. System kolejek dodaje zadanie z 15-minutowym znacznikiem czasowym opóźnienia, zapewniając, że dokument ma czas się ustabilizować przed rozpoczęciem kosztownego przetwarzania AI. To podejście nie wymaga żadnej interakcji użytkownika – streszczenia generują się automatycznie w tle.

Proces automatycznego tworzenia streszczeń dokumentów z AI wdrożony dla Better Regulation
Zobacz pełne case study streszczeń dokumentów AI tutaj →
Przetwarzanie w czasie rzeczywistym vs w tle
W czasie rzeczywistym (synchroniczne):
Używaj przetwarzania w czasie rzeczywistym, gdy użytkownicy potrzebują natychmiastowych wyników. Kategoryzacja dokumentów jest dobrym przykładem – redaktorzy przesyłają PDF, klikają “Generuj z AI” i czekają, gdy pola się wypełniają. Przetwarzanie zazwyczaj trwa od 10 sekund do 2 minut. UX obejmuje wskaźnik postępu i aktualizacje formularza AJAX pokazujące wypełnione pola w miarę ich dostępności.
W tle (asynchroniczne):
Przetwarzanie w tle działa, gdy wyniki nie są potrzebne natychmiast. Generowanie streszczeń pasuje do tego wzorca – redaktorzy nie potrzebują streszczeń do ukończenia swojej pracy, więc przetwarzanie może nastąpić później. Czas trwania może być dłuższy, ponieważ nie blokuje pracy użytkownika, a streszczenia po prostu pojawiają się, gdy są gotowe, bez czekania.
Podejście BetterRegulation:
Kategoryzacja działa w czasie rzeczywistym, ponieważ redaktorzy potrzebują tych pól wypełnionych przed zapisaniem dokumentu – przypisania taksonomii są częścią podstawowego workflow tworzenia treści. Streszczenia działają w tle, ponieważ nie ma pośpiechu i nie powinny blokować workflow redakcyjnego. Redaktorzy mogą tworzyć, kategoryzować i zapisywać dokumenty natychmiast, podczas gdy streszczenia generują się za kulisami.
Feedback użytkownika podczas przetwarzania
Dla przetwarzania w czasie rzeczywistym system wyświetla wskaźnik ładowania (throbber) z komunikatem szacowanego czasu, informując użytkowników podczas przetwarzania. Po zakończeniu komunikaty sukcesu pokazują, ile pól zostało wypełnionych i przypominają redaktorom o sprawdzeniu wyników. Komunikaty błędów dostarczają konkretne powody niepowodzenia, pomagając redaktorom zrozumieć, co poszło nie tak i czy ponowić próbę, czy obsłużyć dokument ręcznie.
Integracja kolejek z RabbitMQ
Dla czasochłonnych operacji AI kolejkowanie zapewnia kluczowe korzyści względem przetwarzania synchronicznego. BetterRegulation używa RabbitMQ do obsługi przetwarzania w tle, ze sprytnym mechanizmem opóźnienia, który zapobiega redundantnym wywołaniom API.
Dlaczego kolejkować wykonanie Automator?
Przetwarzanie synchroniczne tworzy kilka problemów w środowiskach produkcyjnych. Blokowanie UI oznacza, że użytkownicy czekają 30-60 sekund, gdy przetwarzanie się kończy, nie mogąc wykonywać innej pracy. Ryzyko timeoutu pojawia się, gdy długie operacje przetwarzania przekraczają limity timeoutu PHP lub serwera webowego, powodując niepowodzenia. Redundantne przetwarzanie następuje, gdy redaktor wykonuje pięć szybkich edycji z rzędu, uruchamiając pięć kosztownych wywołań AI dla zasadniczo tego samego dokumentu. A problemy szczytowego obciążenia pojawiają się, ponieważ całe przetwarzanie następuje podczas godzin pracy, gdy serwery są już zajęte.
Kolejki rozwiązują te problemy elegancko. Przetwarzanie w tle jest nieblokujące – użytkownicy kontynuują pracę, gdy przetwarzanie następuje w tle. Workery działające poza cyklem żądania webowego mają nieograniczony czas, eliminując obawy o timeout. Mechanizm opóźnienia (więcej o tym za chwilę) zapobiega redundantnemu przetwarzaniu poprzez konsolidację wielu szybkich edycji. A dystrybucja obciążenia staje się możliwa, przetwarzając dokumenty podczas godzin poza szczytem, gdy zasoby serwera są bardziej dostępne.
Wyjaśnienie 15-minutowego opóźnienia
Problem, z którym borykał się BetterRegulation:
Redaktorzy: 1. Tworzą dokument (uruchamia generowanie streszczenia). 2. Zdają sobie sprawę, że tytuł jest błędny (edytują i zapisują). 3. Dodają więcej metadanych (edytują i zapisują). 4. Poprawiają literówkę (edytują i zapisują). 5. Końcowy przegląd (edytują i zapisują).
Rezultat: 5 operacji zapisu w 10 minut = 5 kosztownych generowań streszczeń AI dla tego samego dokumentu.
Rozwiązanie: opóźnij wykonanie kolejki
Implementacja sprawdza, czy dokument jest już w kolejce. Jeśli tak, system po prostu resetuje timer opóźnienia na 15 minut od teraz. Jeśli nie jest w kolejce, tworzy nowy element kolejki z 15-minutowym znacznikiem czasowym opóźnienia. Workery kolejek sprawdzają znacznik czasowy opóźnienia przed przetwarzaniem – jeśli opóźnienie nie upłynęło, ponownie kolejkują element na później. Jeśli upłynęło, przystępują do generowania streszczenia.
Rezultat: redaktor wykonujący 5 edycji w 10 minut uruchamia tylko jedno wywołanie AI (15 minut po ostatniej edycji), oszczędzając 4 niepotrzebne wywołania API i związane z nimi koszty.
Czas trwania opóźnienia jest konfigurowalny przez system konfiguracji Drupala, pozwalając administratorom dostosować timing na podstawie workflow redaktorów i względów kosztowych.
Integracja RabbitMQ + Drupal
Dlaczego RabbitMQ?
RabbitMQ zapewnia niezawodne dostarczanie wiadomości, trwałość, która przetrwa restarty serwera, system potwierdzeń, który zapobiega utracie zadań, kolejki DLQ (dead-letter) do obsługi nieudanych zadań oraz łatwą skalowalność poprzez dodanie większej liczby workerów.
Uwaga: BetterRegulation miał już skonfigurowany RabbitMQ w swoim projekcie dla innych potrzeb kolejkowania. Implementacja AI wykorzystała tę istniejącą infrastrukturę.
Konfiguracja obejmuje instalację modułu Drupal RabbitMQ przez Composer, konfigurację poświadczeń połączenia w settings.php (host, port, nazwa użytkownika, hasło, virtual host) oraz definiowanie usług kolejek w pliku services.yml. Konfiguracja łączy system kolejek Drupala z RabbitMQ, zastępując domyślne kolejkowanie oparte na bazie danych.
Konfiguracja workerów
Supervisor (Process Manager):
BetterRegulation używa Supervisor do zarządzania workerami kolejek. Konfiguracja uruchamia 2 procesy workerów ciągle, każdy przetwarzając kolejkę przez 1 godzinę przed restartem, aby zapobiec wyciekom pamięci. Jeśli worker się zawiesi, Supervisor automatycznie go restartuje, utrzymując stałą zdolność przetwarzania. Całe wyjście jest logowane do debugowania.
Dla lokalnego developmentu Docker Compose montuje konfigurację Supervisor i startuje supervisord. Dla produkcji Kubernetes uruchamia pody workerów z limitami zasobów (512Mi pamięci, 500m CPU) i konfiguracją replik (3 workery dla redundancji i przepustowości). To konteneryzowane podejście zapewnia spójne zachowanie workerów w różnych środowiskach.
Jak monitorować i debugować AI Automators?
Produkcyjne workflow AI potrzebują rozbudowanego monitorowania, aby wychwytywać niepowodzenia, śledzić wydajność i optymalizować koszty. Moduł integruje się z systemem logowania Drupala i może być rozszerzony o niestandardowe rozwiązania monitorujące.
Integracja Watchdog
AI Automators automatycznie loguje do systemu Watchdog Drupala. Możesz to wzbogacić, implementując niestandardowe hooki, które logują czasy wykonania dla każdego kroku, śledzą, który automator uruchomił się, i przechwytują szczegółowe informacje o błędach, w tym ślady stosu (stack trace), gdy przetwarzanie nie powiedzie się. Niektóre implementacje również wysyłają powiadomienia administratora, gdy wystąpią niepowodzenia, zapewniając, że problemy nie pozostaną niezauważone.
Widoki administracyjne dla statusu przetwarzania
Utwórz widok administracyjny w /admin/reports/ai-processing-status, który wyświetla ostatnio przetworzone dokumenty z ich statusem (sukces/niepowodzenie/w kolejce), czasem trwania przetwarzania, użyciem tokenów i wszelkimi komunikatami błędów. Uwzględnij pola dla tytułu node’a i linku, znacznika czasowego przetwarzania, wskaźnika statusu, czasu trwania i szczegółów błędu. Dodaj filtry dla statusu, zakresu dat i typu treści, aby administratorzy mogli szybko znaleźć problematyczne dokumenty lub analizować wzorce. Sortuj według znacznika czasowego malejąco, aby pokazać najnowsze przetwarzanie jako pierwsze.
Obsługa nieudanych zadań
Zaimplementuj automatyczną logikę ponawiania dla przejściowych niepowodzeń, jak błędy sieciowe lub timeouty API. System próbuje przetwarzania do 3 razy przed rezygnacją, zwiększając licznik prób z każdym ponawianiem. Błędy niepodlegające ponawianiu (jak źle sformowane dane) kończą się niepowodzeniem natychmiast bez ponownych prób.
Skonfiguruj RabbitMQ z kolejkami DLQ (dead-letter), aby nieudane zadania automatycznie przenosiły się do osobnej kolejki do przeglądu przez administratora zamiast znikać. To zapewnia, że żaden dokument nie zostanie utracony – administratorzy mogą sprawdzić nieudane zadania, naprawić podstawowe problemy i ręcznie ponowić, jeśli to konieczne.
Przeczytaj również: Jak przyspieszyć odpowiedzi chatbota AI dzięki inteligentnemu buforowaniu
Przykład z rzeczywistego projektu: BetterRegulation
Spójrzmy na faktyczne łańcuchy produkcyjne BetterRegulation, aby zobaczyć, jak koncepcje omówione wcześniej łączą się razem. Te przykłady pokazują rzeczywiste wybory konfiguracyjne i uzasadnienie za nimi.
Przykład łańcucha: kategoryzacja dokumentów
Łańcuch kategoryzacji dokumentów bierze plik PDF jako pole bazowe Automator i tworzy wyekstrahowany tekst oraz JSON odpowiedzi AI jako pośrednie pola wyjściowe. Uruchamia trzy automatory sekwencyjnie: po pierwsze, wyekstrahuj tekst z PDF używając Unstructured.io z analizą wysokiej rozdzielczości; po drugie, wyślij wyekstrahowany tekst do GPT-4o-mini ze szczegółowym promptem Automator zawierającym wszystkie opcje taksonomii i żądaj wyjścia JSON (temperatura 0.1 dla spójności, max 2000 tokenów); po trzecie, parsuj odpowiedź JSON i wypełnij pola taksonomii i metadanych node’a.
Przykład łańcucha: generowanie streszczeń
Łańcuch generowania streszczeń również zaczyna się od pliku PDF jako pola bazowego i tworzy cztery pola wyjściowe: wyekstrahowany tekst, długie streszczenie, krótkie streszczenie i streszczenie zobowiązań. Uruchamia cztery automatory sekwencyjnie: wyekstrahuj tekst (tak samo jak kategoryzacja), wygeneruj wyczerpujące długie streszczenie z pełnego tekstu, skondensuj to długie streszczenie do krótkiej wersji oraz wyekstrahuj zobowiązania prawne z pełnego tekstu używając wyspecjalizowanego promptu. Ten łańcuch jest uruchamiany przez system kolejek i działa w tle z 15-minutowym opóźnieniem.
Przeczytaj również: Synchronizacja danych w czasie rzeczywistym w RAG. Jak zadbać o aktualną wiedzę chatbota?
Jakie są najlepsze praktyki dla AI Automators?
Te lekcje pochodzą z implementacji BetterRegulation i mogą pomóc Ci uniknąć typowych pułapek. Stosuj je podczas projektowania Twoich workflow AI, aby budować bardziej łatwe w utrzymaniu i niezawodne systemy.
1. Projektowanie z myślą o debugowaniu
Uwzględnij pola wyników pośrednich, jak wyekstrahowany tekst, surowe odpowiedzi AI i logi przetwarzania. Gdy coś pójdzie nie tak, możesz sprawdzić wyjście każdego kroku, aby wskazać, gdzie nastąpiło niepowodzenie – czy to jakość ekstrakcji PDF, formatowanie odpowiedzi AI, czy logika wypełniania pól.
2. Modułowe prompty
Unikaj tworzenia jednego masywnego promptu, który próbuje zrobić wszystko. Zamiast tego, osobne prompty dla osobnych celów – jeden prompt dla kategoryzacji skoncentrowany na dopasowywaniu taksonomii, inny dla streszczania skoncentrowany na jasnych wyjaśnieniach i trzeci dla ekstrakcji zobowiązań skoncentrowany na wymaganiach.
To modułowe podejście przynosi kilka korzyści. Każdy prompt staje się łatwiejszy do optymalizacji, ponieważ dostraja się do jednego konkretnego zadania zamiast żonglować konkurującymi celami. Możesz testować prompty niezależnie, izolując to, co działa, a co nie. Prompty stają się wielokrotnego użytku w workflow – Twój prompt streszczający może działać dla wielu typów treści. A instrukcje pozostają jaśniejsze, gdy są skoncentrowane na jednym celu zamiast próbować komunikować wszystko naraz.
3. Wersjonowanie łańcuchów Automator
Traktuj swoje AI Automator Chains jak kod – używaj zarządzania konfiguracją Drupala, aby je eksportować. Uruchomienie drush config:export zapisuje Twoje łańcuchy i automatory do katalogu konfiguracji (np. config/sync/), umieszczając je pod kontrolą wersji obok Twojego kodu.
To przynosi standardowe korzyści kontroli wersji do Twoich workflow AI. Możesz śledzić zmiany promptów w czasie (ponieważ prompty Automator są częścią konfiguracji), rozumiejąc, co działało, a co nie. Przywracanie staje się możliwe, gdy zmiana promptu zmniejsza dokładność. A wdrożenie między środowiskami staje się niezawodne – development, staging i produkcja mogą synchronizować konfiguracje automatorów i łańcuchów tak jak synchronizują inną konfigurację serwisu.
4. Testowanie z prawdziwymi danymi
Utwórz testowy automator, klonując Twoją konfigurację produkcyjną. Modyfikuj prompty w wersji testowej, przetwarzaj 20-30 prawdziwych dokumentów i porównuj dokładność z produkcją. Jeśli wersja testowa działa lepiej, promuj ją do produkcji. To podejście pozwala Ci bezpiecznie iterować bez ryzykowania dokładności produkcyjnej.
5. Monitorowanie użycia tokenów
Zaimplementuj logowanie użycia tokenów, które śledzi tokeny wejściowe i wyjściowe dla każdego przebiegu przetwarzania, szacuje koszty na podstawie aktualnych cen API i przechowuje dane ze znacznikami czasu. Generuj miesięczne raporty pokazujące przetworzone dokumenty, całkowite zużyte tokeny i szacowane koszty. Ta widoczność pomaga zauważyć skoki kosztów, optymalizować prompty pod kątem efektywności i prognozować budżety.
6. Stopniowa degradacja
Planuj niepowodzenia, opakowując wykonanie automatora w bloki try-catch. Gdy przetwarzanie się nie powiedzie, zaloguj błąd z pełnymi szczegółami, ustaw domyślne wartości, aby utrzymać workflow w ruchu, oznacz treść do ręcznego przeglądu i pozwól publikowaniu kontynuować. Nie pozwól, aby niepowodzenia AI blokowały krytyczne workflow – procesy redakcyjne powinny degradować stopniowo zamiast całkowicie się zatrzymywać.
7. Bezpieczeństwo
Waliduj wszystkie wejścia przed przetwarzaniem. Sprawdź typy MIME plików (tylko PDF), wymuszaj limity rozmiaru (np. maksimum 50MB) i skanuj przesyłane pliki pod kątem malware, jeśli obsługujesz pliki przesłane przez użytkowników. Zaimplementuj ograniczanie liczby żądań, aby zapobiec nadużyciom – na przykład, ogranicz użytkowników do 20 żądań przetwarzania AI na godzinę. Te zabezpieczenia chronią przed złośliwymi przesyłanymi plikami, wyczerpaniem zasobów i nadużyciem kosztów.
AI Automators: korzyści i wyniki z produkcji
AI Automators przekształcają integrację AI ze skomplikowanego niestandardowego kodu w konfigurowalne workflow.
Kluczowe korzyści:
- Konfiguracja zamiast kodu - buduj workflow przez UI administracyjny.
- Szybka iteracja - testuj różne prompty i modele szybko.
- Dostęp dla osób nietechnicznych - eksperci dziedzinowi mogą dopracowywać prompty.
- Orkiestracja wieloetapowa - płynnie łącz operacje w łańcuchy.
- Abstrakcja dostawcy - przełączaj się między OpenAI, Claude itp.
- Gotowość produkcyjna - wbudowana obsługa błędów i logowanie.
Wyniki BetterRegulation z AI Automators:
System produkcyjny teraz przetwarza ponad 200 dokumentów miesięcznie z dokładnością większą niż 95% w kategoryzacji. Mniej niż 5% pól wymaga korekty redaktora – poziom dokładności, który sprawia, że podejście człowiek-w-pętli jest praktyczne zamiast uciążliwe. Oszczędność czasu osiągnęła 50% w porównaniu do pełnej ręcznej obróbki, a jeden pełny etat został uwolniony, aby skupić się na pracy o wyższej wartości, jak analiza polityki i strategiczne planowanie treści.
Jeśli budujesz funkcje AI w Drupalu, AI Automators (część modułu AI) znacząco skraca czas prac deweloperskich i zmniejsza złożoność. Podejście „konfiguracja zamiast kodu” oznacza mniej niestandardowego kodu do utrzymania, szybsze cykle iteracji i zaangażowanie ekspertów dziedzinowych w dopracowywanie procesów. Niezależnie od tego, czy potrzebujesz pojedynczego AI Automator dla jednej operacji, czy AI Automator Chain dla złożonych wieloetapowych workflow – moduł dostarcza framework, którego potrzebujesz.
Zacznij prosto: zbuduj jeden automator dla jednego typu treści. Dla wieloetapowych workflow utwórz AI Automator Chain łączący operacje razem. Testuj dokładnie z prawdziwymi danymi. Mierz wyniki. Następnie rozszerzaj na dodatkowe typy treści i workflow, stosując lekcje z pierwszej implementacji.
Chcesz wdrożyć AI Automators na swojej platformie Drupal?
To case study bazuje na naszej rzeczywistej implementacji produkcyjnej dla BetterRegulation, gdzie zbudowaliśmy wieloetapowe workflow AI, które przetwarzają ponad 200 dokumentów miesięcznie z dokładnością 95%+. System działa na produkcji od 2024 roku, dostarczając spójne wyniki z automatyczną kategoryzacją dokumentów, generowaniem streszczeń i przetwarzaniem kolejek w tle – oszczędzając 50% czasu ręcznej obróbki.
Zainteresowany budową workflow AI dla Twojej strony na Drupalu? Nasz zespół specjalizuje się w tworzeniu implementacji AI Automators gotowych na produkcję, które równoważą dokładność, wydajność i łatwość utrzymania. Obsługujemy wszystko – od początkowego projektu architektury i konfiguracji workflow przez wdrożenie produkcyjne i optymalizację. Odwiedź nasze usługi developmentu AI, aby dowiedzieć się, jak możemy pomóc Ci wykorzystać AI Automators dla Twoich workflow treści.