Konfiguracja
Jeśli trafiłeś tutaj, wpisując openwebui how to chat n8n, prawdopodobnie chcesz zrobić dwie powiązane rzeczy: rozmawiać z modelem w Open WebUI i wywoływać ten sam model z przepływów n8n. Oba narzędzia mogą wskazywać na dowolny serwer obsługujący format uzupełnień czatu OpenAI, więc jedno konto obsłuży oba.
Open WebUI to samodzielnie hostowany interfejs czatu. n8n to narzędzie do automatyzacji przepływów pracy, w którym łączysz węzły. API za nimi jest w każdym przypadku takie samo:
- Podstawowy adres Adres URL:
https://api.nofilteraichat.com/v1 - Identyfikator modelu:
uncensored - Autoryzacja: nagłówek
Authorization: Bearerzawierający Twój klucz
Najpierw potrzebujesz klucza. Na stronie klucza API znajdziesz instrukcję rejestracji i jednorazowy kredyt próbny za $0.50, który wystarczy do przetestowania wszystkiego poniżej.
Część pierwsza: Open WebUI
Opcja A: panel administratora
Jeśli Open WebUI już działa, zaloguj się jako administrator i otwórz Ustawienia administratora, następnie Połączenia. Dodaj nowe połączenie OpenAI API z tymi wartościami:
- URL:
https://api.nofilteraichat.com/v1 - Klucz: Twój klucz API
- Zapisz, a następnie użyj przycisku weryfikacji, jeśli Twoja wersja go ma.
Nazwy menu nieznacznie się różnią w zależności od wersji, więc szukaj sekcji wyświetlającej połączenia w stylu OpenAI. Po zapisaniu rozpocznij nowy czat i otwórz selektor modeli. Model uncensored powinien się pojawić, ponieważ Open WebUI pobiera listę z GET /v1/models.
Opcja B: zmienne środowiskowe w Docker
Jeśli zaczynasz od zera, przekaż ustawienia podczas uruchamiania kontenera:
docker run -d --name open-webui -p 3000:8080 \
-e OPENAI_API_BASE_URL="https://api.nofilteraichat.com/v1" \
-e OPENAI_API_KEY="$NOFILTER_API_KEY" \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:mainOtwórz http://localhost:3000, utwórz pierwsze konto lokalne, a model będzie czekał w selektorze. Pamiętaj, że Open WebUI przechowuje ustawienia połączenia w swojej bazie danych po pierwszym uruchomieniu. Jeśli zmienisz zmienne później i nic się nie stanie, edytuj połączenie w panelu administratora.
Dostosowanie czatu
W kontrolkach czatu możesz ustawić temperature, top_p, sekwencję stop i prompt systemowy. Są one przekazywane do modelu. Dla fikcji i roleplay temperatura między 0.7 a 1.0 daje żywszą prozę. Przy pytaniach faktograficznych ustaw niższą wartość. Jeśli model zaczyna powtarzać frazy, nieznacznie zwiększ penalty za częstotliwość.
Część druga: n8n z węzłem OpenAI
n8n ma natywne poświadczenia OpenAI. Ich konfiguracja zawiera pole Base URL, które domyślnie wskazuje na oficjalny serwer. Zmień je, a węzeł połączy się z Twoim endpointem:
- W n8n utwórz nowe poświadczenie typu OpenAI.
- Wklej swój klucz API.
- Ustaw Base URL na
https://api.nofilteraichat.com/v1. - Zapisz i dołącz poświadczenie do węzła OpenAI Chat Model lub przepływu AI Agent.
Pułapką jest pole modelu. Niektóre węzły pokazują listę rozwijaną wypełnioną z listy modeli, a inne ograniczają wybory do znanych nazw. Jeśli nie możesz wybrać uncensored, przełącz pole w tryb wyrażeń i wpisz ID ręcznie. Jeśli Twoja wersja n8n nadal tego odrzuca, użyj podejścia HTTP Request w następnej sekcji, które nie ma takich ograniczeń.
Po działającym uwierzytelnieniu możesz podłączyć model czatu do węzła AI Agent i przypisać mu narzędzia. Wywoływanie funkcji jest wspierane przez API (tools, tool_choice oraz wyniki w formacie role: "tool"). Podobnie jak w przypadku każdego modelu o otwartych wagach, przetestuj agenta na rzeczywistych danych wejściowych i trzymaj się krótkich, dosłownych opisów narzędzi.
Część trzecia: czat z węzła HTTP Request
Najbardziej przewidywalną opcją jest zwykły węzeł HTTP Request. Pokazuje dokładnie, co jest wysyłane, i działa we wszystkich wersjach n8n. Skonfiguruj węzeł w następujący sposób:
- Metoda: POST
- Adres URL:
https://api.nofilteraichat.com/v1/chat/completions - Autoryzacja: Header Auth, z nazwą
Authorizationi wartościąBearer YOUR_KEY(przechowuj ją jako poświadczenie, nie w węźle) - Wyślij ciało: włącz, typ zawartości JSON
Ustaw ciało na poniższe, używając wyrażenia dla tekstu użytkownika:
{
"model": "uncensored",
"messages": [
{ "role": "system", "content": "You are a concise story assistant for adult fiction writers." },
{ "role": "user", "content": "{{ $json.prompt }}" }
],
"temperature": 0.8,
"max_tokens": 600
}Tekst odpowiedzi znajduje się w choices[0].message.content. W następnym węźle odczytaj go wyrażeniem {{ $json.choices[0].message.content }}. Ta sama odpowiedź zawiera również blok usage, więc możesz logować liczbę tokenów do arkusza lub bazy danych.
Typowy przepływ to wyzwalacz webhook, ten węzeł HTTP i węzeł odpowiedzi zwracający tekst. Innym częstym przypadkiem jest odczyt wierszy z arkusza, wygenerowanie szkicu dla każdego i zapisanie wyników z powrotem. Możesz również przetestować żądanie poza n8n najpierw za pomocą curl:
curl https://api.nofilteraichat.com/v1/chat/completions \
-H "Authorization: Bearer $NOFILTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"Say hello in five words."}]}'Ograniczenia, ponowne próby i partie w n8n
Pełny klucz pozwala na 8 równoległych zapytań i 300 zapytań na minutę; klucz próbny pozwala na 2 i 60. n8n może łatwo przekroczyć te liczby, ponieważ węzeł przetwarza każdy przychodzący element i może wysyłać je szybko.
W węźle HTTP Request otwórz Opcje i użyj batchingu: ustaw rozmiar partii na 4 lub 6 i interwał na sekundę lub dwie. W Ustawieniach węzła włącz Retry On Fail z 3 próbami i oczekiwaniem 5000 ms. Pasuje to do zachowania API: gdy jest chwilowo przeciążone, zwraca HTTP 429 z nagłówkiem Retry-After: 5. Inne kody 429 informują Cię, którego limitu przekroczyłeś: rate_limited oznacza zbyt wiele zapytań na minutę, concurrency oznacza zbyt wiele naraz.
Strumieniowanie wymaga uwagi. Żądanie strumieniowe utrzymuje slot równoległości do końca strumienia. W n8n zostaw strumieniowanie wyłączone w węźle HTTP, ponieważ przepływ pracy i tak czeka na całą odpowiedź. Open WebUI strumieniuje domyślnie, co jest właściwe dla okna czatu.
Koszt przepływu pracy
Załóżmy, że przepływ danych przetwarza 500 wierszy, wysyłając 800 tokenów wejściowych i otrzymując 250 tokenów wyjściowych dla każdego. Wejście: 500 × 800 = 400 000 tokenów, co kosztuje 400 000 × $0,15 / 1 000 000 = $0,06. Wyjście: 500 × 250 = 125 000 tokenów, co kosztuje 125 000 × $0,50 / 1 000 000 = $0,0625. Całkowity koszt to $0,1225, czyli około 12 centów. Zobacz stronę z cenami, aby doładować środki.
Rozwiązywanie problemów
| Objaw | Prawdopodobna przyczyna | Naprawa |
|---|---|---|
| Open WebUI nie pokazuje modeli | Zły URL lub klucz | Użyj bazowego URL kończącego się na /v1; przetestuj GET /v1/models za pomocą curl |
| Zmiany zmiennych Docker są ignorowane | Ustawienia są już zapisane | Edytuj połączenie w Ustawieniach administratora |
| Błąd 401 z n8n | Wartość nagłówka nie zawiera słowa Bearer | Wartość musi brzmieć Bearer, spacja, a następnie klucz |
| Open WebUI w Dockerze nie może się połączyć z lokalnym proxy | localhost wskazuje na kontener | Użyj adresu hosta, a nie localhost |
| Błąd 429 w trakcie pętli | Zbyt wiele równoległych elementów | Zgrupuj węzeł HTTP i włącz ponawianie |
| Model nie znaleziony | Nazwa wpisana błędnie | Jedynym identyfikatorem jest uncensored |
Pamiętaj o ograniczeniach produktu podczas projektowania przepływu: tylko czat tekstowy, okno kontekstu 100 000 tokenów dzielone przez prompt i odpowiedź oraz ciało zapytania o rozmiarze do 8 MB. Nie ma endpointu do embeddingów, więc przeprowadzaj wyszukiwanie wektorowe na innej usłudze. Pełną dokumentację zapytań znajdziesz w poradniku szybkiego startu, a więcej interfejsów opisuje przewodnik integracji. Prompty wysłane przez API nie są używane do trenowania.
Twarda zasada obowiązuje we wszystkich narzędziach: brak treści seksualnych z udziałem nieletnich. W ramach legalnego użytku dorosłego model jest dostrojony do odpowiadania bez odrzucania treści, co pasuje do fikcji, roleplay i aplikacji towarzyskich dla dorosłych.
