- Synergia między możliwościami zarządzania wiedzą AnythingLLM i możliwościami automatyzacji n8n.
- Wdrożenie przepływów pracy umożliwiających sztucznej inteligencji wykonywanie rzeczywistych działań w aplikacjach zewnętrznych.
- Wykorzystanie lokalnych modeli Ollama gwarantuje prywatność i pełną kontrolę danych.
Czy wyobrażasz sobie dostęp do wewnętrznej dokumentacji firmy i proszenie tego samego asystenta o zarejestrowanie zadania, przygotowanie e-maila lub aktualizację arkusza kalkulacyjnego? Tę kombinację można zbudować, łącząc AnythingLLM z n8nchociaż obie aplikacje pełnią różne funkcje.
AnythingLLM zapewnia interfejs konwersacyjny, obszary robocze, dokumenty i wyszukiwanie informacji przy użyciu RAG. n8n odpowiada za wykonywanie przepływów, które łączą usługi, przekształcają dane i wykonują działaniaPołączenie między tymi dwoma narzędziami nie jest aktywowane automatycznie. Jednym z najbardziej praktycznych sposobów jego wdrożenia jest utworzenie umiejętności dla agenta AnythingLLM, która wysyła żądanie do webhooka n8n. Przepływ przetwarza dane, wykonuje akcję i zwraca wynik agentowi.
Jak działa połączenie między AnythingLLM i n8n

Przed wdrożeniem kontenerów lub utworzeniem przepływów warto zdecydować, która aplikacja będzie kontrolować konwersację. Jeśli chcesz Skorzystaj z przestrzeni roboczych i dokumentów AnythingLLMTa aplikacja może pełnić funkcję głównego interfejsu. Gdy użytkownik żąda wykonania akcji, agent wybiera niestandardową umiejętność. Ta umiejętność wysyła żądanie HTTP do webhooka n8n z niezbędnymi danymi. n8n odbiera żądanie, uruchamia swoje węzły i zwraca ustrukturyzowaną odpowiedź.
Podstawowa trasa wyglądałaby następująco:
- Użytkownik pisze żądanie w AnythingLLM.
- Agent decyduje się na użycie umiejętności.
- Ta możliwość wywołuje webhook n8n.
- n8n wykonuje przepływ i uzyskuje wynik.
- Webhook zwraca odpowiedź na AnythingLLM.b
- Agent prezentuje wynik użytkownikowi.
Funkcja AnythingLLM RAG nie jest automatycznie dostępna w systemie n8n. Jeśli przepływ pracy wymaga informacji pobranych z dokumentów, dana umiejętność musi je uwzględnić w żądaniu lub konieczne będzie zaprojektowanie dodatkowej integracji.
Jakie komponenty są potrzebne do zmontowania systemu?
Prosta instalacja może wykorzystywać AnythingLLM, n8n i Ollama na tym samym komputerze lub serwerze. Docker Compose upraszcza wdrażanie i umożliwia usługom komunikację przez sieć prywatną.
Instalacja Supabase nie jest obowiązkowa. AnythingLLM może zarządzać własną pamięcią masową i n8n Można używać baz wektorowych, takich jak Qdrant lub PGVector, gdy przepływ wymaga niezależnego systemu RAG.
Nie potrzebujesz też Traefika do uruchomienia testu lokalnego. Odwrotny serwer proxy jest przydatny, gdy chcesz publikować usługi przez HTTPS, zarządzać domenami lub centralizować certyfikaty, ale nie jest częścią podstawowego połączenia.
Niezbędne zasoby zależą przede wszystkim od modelu używanego w Ollamie. Mały, skwantyzowany model może działać z 8 GB pamięci, chociaż posiadanie większej ilości pamięci RAM lub kompatybilnego procesora graficznego znacznie poprawia szybkość. Przed wyborem serwera należy sprawdzić rozmiar i wymagania konkretnego modelu.
Jak połączyć n8n z Ollamą

n8n zawiera węzły do korzystania z Ollama jako lokalnego dostawcy modelu. Aby go skonfigurować, Dodaj odpowiedni węzeł, utwórz dane uwierzytelniające i określ adres URL Z którego n8n może dotrzeć do instancji. Jeśli n8n i Ollama działają bezpośrednio w tym samym systemie, typowy adres to:
http://localhost:11434
Jednakże, localhost Znaczenie zmienia się, gdy n8n znajduje się w Dockerze. W takim przypadku odnosi się do samego kontenera n8n, a nie do komputera hosta ani kontenera Ollama.
Jeśli obie usługi są częścią tego samego pliku Docker Compose, możesz połączyć je ze współdzieloną siecią i używać nazwy usługi:
http://ollama:11434
Gdy Ollama działa na hoście, a n8n działa w Dockerze, konieczne może być użycie:
http://host.docker.internal:11434
Dokładny adres Zależy to od systemu operacyjnego i konfiguracji Dockera.Nie wolno publikować port 11434 w Internecie bez uwierzytelniania i dodatkowych środków ochrony.
Po utworzeniu poświadczeń wybierz model pobrany z Ollama. W przypadku przepływów z agentami najlepiej wybrać taki, który poprawnie obsługuje wywołania narzędzi. Model zdolny do odpowiadania na pytania nie zawsze będzie w stanie generować ustrukturyzowane argumenty dla węzłów.
Jak utworzyć webhook w n8n dla AnythingLLM

W n8n utwórz nowy przepływ i użyj węzła Webhook jako wyzwalacz. Wybierz metodę POST i zdefiniuj trasę trudną do odgadnięcia.
Testowy adres URL działa tylko wtedy, gdy uruchamiasz przepływ z edytora. Po zakończeniu konfiguracji aktywuj przepływ i użyj jego produkcyjnego adresu URL.
Po webhooku możesz dodać niezbędne węzły. Na przykład, przepływ tworzenia zadania może obejmować:
- Webhook umożliwiający otrzymanie tytułu, opisu i daty.
- Węzeł walidacyjny służący do sprawdzania pól.
- Węzeł menedżera zadań służący do tworzenia dziennika.
- Odpowiedz na webhook, aby zwrócić identyfikator i potwierdzenie.
Odpowiedź może mieć prostą strukturę:
{
"success": true,
"message": "La tarea se ha creado correctamente",
"taskId": "12345"
}
AnythingLLM potrzebuje jasnej i przewidywalnej odpowiedzi. Nie ma potrzeby zwracania wyniku do /chat/completionsSamo żądanie złożone przez zdolność Pobiera odpowiedź webhooka i dostarcza ją agentowi..
Chroń punkt końcowy za pomocą tajnego nagłówka, uwierzytelniania lub podobnego mechanizmu. Trudny do odgadnięcia adres URL nie zastępuje kontroli dostępu.
Jak utworzyć umiejętność AnythingLLM umożliwiającą wywołanie n8n
AnythingLLM pozwala rozszerzyć możliwości agentów o niestandardowe umiejętności. Umiejętność może przyjmować parametry, wysyłać żądanie HTTP i zwracać wynik. W tym przypadku umiejętność musi jasno opisywać:
- Jakie działania możesz podjąć?
- Jakich danych potrzeba do jego uruchomienia?
- Który webhook należy wywołać?
- Jakie informacje zwraca n8n?
- O jakich błędach należy poinformować użytkownika?
Opis jest szczególnie ważny, ponieważ model na jego podstawie decyduje, kiedy uruchomić narzędzie. Umiejętność zwana „zarządzaniem produktywnością” byłaby zbyt ogólnikowa. Lepiej jest oddzielić czynności takie jak „utworzenie zadania”, „sprawdzenie terminu” czy „przygotowanie wersji roboczej”.
Nie umieszczaj danych uwierzytelniających bezpośrednio w kodzie Jeśli to możliwe, używaj zmiennych środowiskowych. Nie nadawaj też umiejętności uprawnień ogólnych, jeśli potrzebuje ona dostępu tylko do konkretnej operacji.
Umiejętności pobrane z zewnętrznych źródeł mogą wykonywać kod i przetwarzać dane przesyłane przez agenta. AnythingLLM domyślnie ogranicza instalację niektórych umiejętności społecznościowych właśnie ze względu na to ryzyko.
Łańcuchy sztucznej inteligencji i agenci w n8n: którego z nich powinieneś użyć
n8n oferuje węzły, modele i agenci zorientowani łańcuchowoNajlepszy wybór zależy od tego, jak dużą kontrolę chcesz zachować nad procesem. Prosty łańcuch jest odpowiedni, gdy kroki są zdefiniowane wcześniej: odebranie tekstu, jego podsumowanie, przekształcenie i zwrócenie. Takie podejście jest bardziej przewidywalne i zazwyczaj zużywa mniej zasobów.
Agent może zdecydować, którego narzędzia użyć na podstawie otrzymanego żądania. W rezultacie Przydatne, gdy pojedynczy przepływ pracy może wykonać zapytanie do bazy danych, sprawdzić kalendarz lub pobrać dokumentWprowadza jednak również większą zmienność i wymaga modelu z dobrym wsparciem narzędzi.
Nie wszystkie procesy wymagają dwóch agentów. Jeśli AnythingLLM interpretuje już żądanie i wybiera umiejętność, n8n może po prostu wykonać deterministyczny przepływ. Dodanie kolejnego agenta w ramach n8n może duplikować decyzje, zwiększać opóźnienia i utrudniać rozwiązywanie problemów.
Agenta w n8n należy używać tylko wtedy, gdy sam przepływ musi dynamicznie decydować, którego narzędzia lub trasy użyć.
Jak zwrócić wynik n8n do czatu

Jednym z najczęstszych błędów jest poprawne uruchomienie automatyzacji i niezwrócenie żadnej użytecznej odpowiedzi do AnythingLLM.
W węźle Webhook wybierz opcję umożliwiającą odpowiadanie za pomocą Odpowiedz na webhookNastępnie umieść ostatni węzeł po operacjach, których dane chcesz zwrócić.
Jeśli przepływ zakończy się bez przechodzenia przez ten węzeł, n8n może wysłać ogólną odpowiedź, która nie zawiera oczekiwanego wyniku. Należy również monitorować rozgałęzienia: wszystkie możliwe ścieżki powinny albo doprowadzić do odpowiedzi, albo obsłużyć błąd.
Sprawdź następujące punkty, gdy agent będzie czekał:
- Umiejętność wykorzystuje poprawny adres URL produkcji.
- Przepływ jest aktywny.
- Metoda HTTP jest zgodna z skonfigurowaną.
- Nagłówek uwierzytelniania jest prawidłowy.
- Odpowiada, że webhook otrzymuje oczekiwane dane.
- Wykonanie nie przekracza czasu oczekiwania na żądanie.
- Kontenery mogą komunikować się poprzez skonfigurowaną sieć.
Dzienniki wykonania n8n pozwalają na inspekcję danych wejściowych i wyjściowych każdego węzła. Ponowne uruchomienie kontenera może rozwiązać pojedynczy błąd, ale nie naprawi nieprawidłowego adresu URL, problemu z uwierzytelnianiem ani źle skonstruowanej odpowiedzi.
Przydatne automatyzacje dla firm i projektów osobistych
Po nawiązaniu połączenia możesz używać AnythingLLM jako interfejsu do uruchamiania bardzo różnych przepływów.
Na przykład, asystent wewnętrzny może zapoznać się z instrukcjami za pomocą RAG i przesłać niezbędne dane do n8n w celu utworzenia raportu o zdarzeniu. Inny przepływ pracy może polegać na przygotowaniu wersji roboczej wiadomości e-mail, wyszukaniu spotkania lub zapisaniu informacji w formularzu.
Można również tworzyć procesy takie jak te:
- Klasyfikuj wnioski otrzymane za pośrednictwem formularzy.
- Twórz zadania na podstawie spotkań lub dokumentów.
- Podsumuj incydenty i przygotuj możliwe reakcje.
- Wyodrębnij informacje z faktur i zapisz dane.
- Generuj wersje robocze treści do recenzji redakcyjnej.
- Konsultuj systemy wewnętrzne za pomocą API.
Zautomatyzowane procesy publikujące treści, wysyłające wiadomości, usuwające pliki, modyfikujące rekordy lub dokonujące płatności powinny uwzględniać potwierdzenie przez człowieka. Agent może przygotować działanie, ale przepływ pracy nie powinien wykonywać go nieodwracalnie bez dodatkowej walidacji.
Prywatność, bezpieczeństwo i funkcjonalność offline
Instalacja AnythingLLM, n8n i Ollama na własnym serwerze nie gwarantuje, że wszystkie dane pozostaną lokalne. Aby zachować przetwarzanie lokalne, należy używać lokalnego modelu, lokalnych osadzeń, lokalnego magazynu wektorów i usług wewnętrznych. Należy również unikać interfejsów API AI hostowanych w chmurze, wyszukiwarek internetowych oraz węzłów wysyłających dane do platform zewnętrznych.
Przepływ pracy, który uzyskuje dostęp do Gmaila, Kalendarza Google, Zendesk lub Notion, nie działa całkowicie offline, nawet jeśli n8n i Ollama są hostowane samodzielnie. W takich przypadkach niezbędne dane są przesyłane do usługi zewnętrznej.
Należy również stosować minimalne uprawnienia, chronić webhooki, zapisywać dane uwierzytelniające za pomocą systemu n8n i ograniczać dostęp do interfejsów administracyjnych. Nie udostępniaj bezpośrednio Ollama ani edytora n8n w internecie bez uwierzytelnienia, protokołu HTTPS i dodatkowych zabezpieczeń.
Połączenie AnythingLLM i n8n pozwala na połączenie konwersacyjnej bazy wiedzy z rzeczywistą automatyzacją. Jego użyteczność nie polega na stworzeniu agenta, który wykona wszystko, ale na zaprojektowaniu drobnych umiejętności, kontrolowanych przepływów pracy i odpowiednich uprawnień dla każdej operacji.
Jestem entuzjastą technologii, który swoje „geekowskie” zainteresowania przekształcił w zawód. Spędziłem ponad 10 lat mojego życia, korzystając z najnowocześniejszych technologii i majsterkując przy wszelkiego rodzaju programach z czystej ciekawości. Teraz specjalizuję się w technologii komputerowej i grach wideo. Dzieje się tak dlatego, że od ponad 5 lat piszę dla różnych serwisów poświęconych technologii i grom wideo, tworząc artykuły, których celem jest dostarczenie potrzebnych informacji w języku zrozumiałym dla każdego.
Jeśli masz jakieś pytania, moja wiedza obejmuje wszystko, co jest związane z systemem operacyjnym Windows, a także Androidem dla telefonów komórkowych. Moje zaangażowanie jest wobec Ciebie. Zawsze jestem gotowy poświęcić kilka minut i pomóc Ci rozwiązać wszelkie pytania, jakie możesz mieć w tym internetowym świecie.
