Dlaczego warto użyć API Uncensored.chat?
Standardowe API LLM często stosują sztywne filtry treści, które odrzucają legalną treść dla dorosłych, fikcję literacką lub tematy kontrowersyjne. chat api bez cenzury usuwa te ograniczenia, pozwalając modelowi odpowiadać na prompty w oparciu o ich trafność, a nie zgodność z polityką. Jest to kluczowe dla aplikacji wymagających pełnej mocy modelu bez sztucznych ograniczeń.
Nasze API obsługuje jeden model o otwartych wagach, dostrojony specjalnie do tego zachowania. Nie przekierowuje między dostawcami ani nie oferuje wielu wyborów modeli. Otrzymujesz spójne, przewidywalne wyniki z jednego dostrojonego silnika. Upraszcza to debugowanie i optymalizację wydajności, ponieważ nie masz do czynienia ze zmiennymi osobowościami modeli ani ukrytymi warstwami filtrowania.
W przeciwieństwie do dostawców ogólnego przeznaczenia nie pakujemy embeddingów, generowania obrazów ani przetwarzania audio. Dzięki temu API jest lekkie i szybkie. Jeśli Twoja aplikacja wymaga możliwości multimodalnych, powinieneś zintegrować je osobno i używać tego API wyłącznie do generowania tekstu. Tutaj skupiamy się wyłącznie na wysokiej jakości, nieograniczonej generacji tekstu z oknem kontekstu 100 000 tokenów.
Konfiguracja środowiska
Integracja zaczyna się od skonfigurowania środowiska programistycznego tak, aby wskazywało na nasz adres bazowy. Jest to standardowy endpoint kompatybilny z OpenAI, więc możesz użyć dowolnego oficjalnego SDK OpenAI lub kompatybilnej biblioteki klienckiej. Musisz jedynie zmienić adres bazowy i podać klucz API.
Adres bazowy to https://api.nofilteraichat.com/v1. ID modelu do wysłania w zapytaniach to uncensored. Model ten działa na naszych własnych serwerach i nie jest to GPT, Claude ani żaden inny model dostawcy. Jest to model o otwartych wagach dostrojony do odpowiedzi bez cenzury.
Upewnij się, że Twoje środowisko obsługuje strumieniowanie za pomocą Server-Sent Events (SSE), jeśli planujesz używać wyjść w czasie rzeczywistym. API obsługuje standardowe parametry takie jak temperature, top_p, stop i seed. Możesz również włączyć tryb JSON, ustawiając response_format na {"type": "json_object"}.
Okno kontekstu: 100,000 tokenów łącznie (prompt + completion). Nie ma osobnego limitu wyjścia, a jeśli max_tokens nie jest ustawione, odpowiedź może sięgać do końca okna.
Uwierzytelnianie kluczami API
Uwierzytelnianie odbywa się za pomocą klucza API przekazanego w nagłówku Authorization. Możesz się zarejestrować, korzystając z opcji Kontynuuj z Google lub podając adres e-mail i hasło na stronie Pobierz klucz API. Nie jest wymagany numer telefonu.
Po utworzeniu konta otrzymujesz jeden aktywny klucz API. Ten klucz jest wyświetlany natychmiast po utworzeniu. Jeśli wygenerujesz nowy klucz, stary zostaje zastąpiony; nie obsługujemy wielu jednoczesnych kluczy na jedno konto. Upraszcza to zarządzanie kluczami, ale oznacza, że nie możesz mieć oddzielnych kluczy dla różnych środowisk na tym samym koncie.
Klucz służy do autoryzacji zapytań do endpointu /v1/chat/completions. Błędy i odrzucenia (z wyjątkiem bezwzględnego limitu treści seksualnych małoletnich) nie zużywają Twojego przedpłaconego kredytu. Kredyt jest naliczany tylko za rzeczywiste użycie tokenów.
Prywatność: Prompty nie są używane do trenowania. Konto wymaga tylko adresu e-mail.
Wysłanie pierwszego zapytania
Twoje pierwsze zapytanie powinno być prostym uzupełnieniem czatu w celu sprawdzenia łączności. Użyj endpointu POST /v1/chat/completions z ID modelu uncensored.
Oto przykład podstawowego zapytania:
curl https://api.nofilteraichat.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'To zapytanie wysyła prompt i otrzymuje odpowiedź tekstową. Model odpowie bez filtrowania prawnych treści dla dorosłych. Jeśli potrzebujesz wymusić konkretny ton lub format, użyj wiadomości system, aby ustawić instrukcje.
Pamiętaj, że API ma limit 300 zapytań na minutę na klucz i pozwala na 8 równoległych zapytań. Jeśli przekroczysz te limity, otrzymasz błąd limitu zapytań. Rozmiar ciała zapytania jest ograniczony do 8 MB. Upewnij się, że Twój klient obsługuje te limity w sposób elegancki, implementując wykładnicze ponawianie prób.
Implementacja odpowiedzi strumieniowych
Strumieniowanie jest obsługiwane za pomocą Server-Sent Events (SSE). Pozwala to na odbieranie tokenów w miarę ich generowania, co poprawia doświadczenie użytkownika przy długich odpowiedziach. Każdy kawałek zawiera częściowy delta odpowiedzi.
Ważne: Statystyki użycia tokenów (tokeny wejściowe i wyjściowe) są uwzględniane tylko w ostatnim kawałku danych strumienia. Musisz zsumować delty, a następnie przetworzyć ostatni pakiet, aby uzyskać dokładne dane do rozliczeń.
Oto przykład obsługi strumieniowania w Twoim kodzie:
from openai import OpenAI
client = OpenAI(base_url="https://api.nofilteraichat.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)To podejście zapewnia wyświetlanie tekstu w czasie rzeczywistym przy jednoczesnym dokładnym śledzeniu zużycia tokenów. Jeśli wystąpi błąd podczas strumieniowania, strumień może zakończyć się przedwcześnie. Sprawdź ostatni fragment lub status błędu, aby uzyskać szczegóły.
Wywoływanie funkcji
Wywoływanie funkcji jest obsługiwane za pomocą parametrów tools i tool_choice. Pozwala to modelowi na generowanie danych strukturalnych, które Twoja aplikacja może wykonać. Zdefiniuj swoje funkcje w tablicy tools, a model zwróci pole tool_calls w odpowiedzi, gdy będzie to odpowiednie.
Ustaw tool_choice na "auto", aby pozwolić modelowi zdecydować, kiedy wywołać funkcję, lub określ konkretne ID funkcji, aby wymusić wywołanie. Model zwróci nazwę funkcji i argumenty w formacie JSON.
Przykładowa struktura:
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nofilteraichat.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);Upewnij się, że Twój klient parsuje tablicę tool_calls i wykonuje funkcje. Model nie wykonuje funkcji samodzielnie; generuje tylko instrukcje wywołań. Jest to standardowy wzorzec kompatybilny z OpenAI, więc każda biblioteka obsługująca wywoływanie funkcji z OpenAI powinna działać również tutaj.
Obsługa trybu JSON
Tryb JSON zapewnia, że model generuje ściśle poprawny JSON. Jest to przydatne dla aplikacji wymagających danych strukturalnych, takich jak odpowiedzi API lub pliki konfiguracyjne. Ustaw response_format na {"type": "json_object"} w swoim zapytaniu.
Gdy tryb JSON jest włączony, model spróbuje wygenerować pojedynczy poprawny obiekt JSON. Jeśli wynik jest niepoprawny, API może zwrócić błąd lub niepoprawną odpowiedź. Zawsze waliduj JSON po stronie klienta.
Przykład:
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)Tryb ten jest szczególnie przydatny przy tworzeniu agentów lub aplikacji wymagających deterministycznych formatów wyjścia. Zmniejsza potrzebę przetwarzania wstępnego do ekstrakcji danych strukturalnych z tekstu swobodnego. Zwróć uwagę, że tryb JSON może nieznacznie zwiększyć opóźnienie ze względu na dodatkowe ograniczenie w wyjściu modelu.
Zarządzanie limitami zapytań i błędami
Limity zapytań są egzekwowane na poziomie 300 zapytań na minutę na klucz i 8 równoległych zapytań na klucz. Rozmiar ciała zapytania jest ograniczony do 8 MB. Jeśli przekroczysz te limity, otrzymasz kod statusu 429. Zaimplementuj wykładnicze ponawianie prób w swoim kliencie, aby obsłużyć ponowne próby.
Błędy, takie jak nieprawidłowe parametry lub problemy serwera, nie zużywają kredytu. Odrzucenia treści dla dorosłych również nie zużywają kredytu. Jedynym bezwzględnym limitem jest odrzucanie treści seksualnych z udziałem małoletnich, które zużywa tokeny, jeśli zapytanie zostanie przetworzone.
Cennik jest przejrzysty: 0,15 USD za 1 mln tokenów wejściowych i 0,50 USD za 1 mln tokenów wyjściowych. Kredyt jest przedpłacony i nigdy nie wygasa. Błędy są darmowe, więc możesz eksperymentować bez obaw o koszty. Jeśli napotkasz problem z rozliczeniami, skorzystaj ze strony Wsparcie, aby uzyskać pomoc.
