NSFW Chat: Dokumentacja API LLM bez cenzury
Zintegruj API LLM bez cenzury ze swoją aplikacją czatu NSFW dzięki temu przewodnikowi. Wysyłaj tekst do endpointu chat-completions i odbieraj surowe odpowiedzi modelu bez ograniczeń.
Podstawowy URL i uwierzytelnianie
Skieruj swój klient zgodny z OpenAI do adresu bazowego https://api.nsfwchat.top/v1. Uwierzytelnij każde zapytanie, dołączając swój klucz API w nagłówku Authorization jako token Bearer. Możesz wygenerować ten klucz natychmiast po rejestracji za pomocą Google lub e-mail na stronie Pobieranie klucza API. Klucz jest wyświetlany tylko raz przy utworzeniu, więc zapisz go bezpiecznie. Ten pojedynczy klucz jest powiązany z przedpłaconym kredytem i limitami zapytań Twojego konta.
Pierwsze zapytanie
Wyślij standardowe zapytanie chat-completions, aby przetestować łączność i jakość odpowiedzi. Użyj identyfikatora modelu uncensored, aby uzyskać dostęp do modelu o otwartych wagach dopracowanego pod kątem treści dla dorosłych. API przyjmuje dane wejściowe tekstowe i zwraca dane wyjściowe tekstowe. Upewnij się, że Twoja ładunek zawiera tablicę messages oraz pole model. To podstawowe wywołanie weryfikuje poprawność konfiguracji uwierzytelniania i adresu bazowego przed zbudowaniem logiki Twojej aplikacji.
Integracja z Python SDK
Użyj oficjalnego Python SDK OpenAI do interakcji z API. Ustaw zmienne środowiskowe base_url i api_key lub przekaż je bezpośrednio do konstruktora klienta. Wywołaj chat.completions.create z modelem uncensored. To podejście wykorzystuje istniejący kod społeczności dla aplikacji czatu NSFW. SDK obsługuje serializację i parsowanie błędów, pozwalając Ci skupić się na inżynierii promptów i zarządzaniu historią wiadomości w środowisku Python.
Integracja z Node SDK
Dla aplikacji JavaScript lub TypeScript zainicjuj klienta OpenAI, podając adres bazowy i klucz API. SDK Node.js jest asynchroniczne domyślnie, zwracając obietnice (promises) dla wszystkich wywołań API. Wywołaj chat.completions.create, aby wysłać historię rozmowy. Ta integracja jest idealna dla serwerów sieciowych lub zapleczy gier opartych na Node, które wymagają nieblokującego I/O. Obsłuż obiekt odpowiedzi, aby wyodrębnić odpowiedź asystenta i zaktualizować swój lokalny stan lub bazę danych.
Strumieniowanie odpowiedzi przez SSE
Włącz strumieniowanie, ustawiając stream: true w swoim zapytaniu. API zwraca zdarzenia wysłane przez serwer (SSE), gdy model generuje tekst. Każdy fragment zawiera częściowe delta. Ostatni fragment zawiera statystyki użycia tokenów dla zapytania. Ta metoda zmniejsza postrzeganą opóźnienie dla użytkowników w interfejsach czatu NSFW, wyświetlając tekst w miarę jego generowania. Przetwarzaj każde zdarzenie w swoim kliencie, aby aktualizować interfejs użytkownika w czasie rzeczywistym.
Limity, błędy i okno kontekstu
Okno kontekstu obsługuje do 100 000 tokenów dla promptu i uzupełnienia łącznie. Ciało Twojego zapytania nie może przekraczać 8 MB. Jesteś ograniczony do 300 zapytań na minutę i 8 równoległych zapytań na klucz. Jeśli Twój przedpłacony kredyt zostanie wyczerpany, API odrzuci dalsze zapytania. Niepowodzenia uwierzytelniania zwracają błąd 401, a limity zapytań wyzwalają odpowiedź 429. Upewnij się, że Twoja aplikacja obsługuje te błędy w sposób elegancki, aby utrzymać płynne doświadczenie użytkownika podczas okresów dużego ruchu.
cURL
curl https://api.nsfwchat.top/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."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.nsfwchat.top/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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nsfwchat.top/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);Strumieniowanie
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)Specyfikacja techniczna
Wszystkie rzeczywiste limity i funkcje API w jednym miejscu — sprawdź je przed doładowaniem.
| Element | Wartość |
|---|---|
| Format API | zgodne z OpenAI: działa każdy SDK OpenAI — zmień base URL i klucz |
| ID modelu | uncensored |
| Endpointy | POST /v1/chat/completions · GET /v1/models |
| Uwierzytelnianie | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.nsfwchat.top/v1 |
| Parametry | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Okno kontekstu | 100 000 tokenów (wejście + odpowiedź) |
| Strumieniowanie | tak — server-sent events; ostatni fragment zawiera zużycie tokenów |
| Wywoływanie funkcji | tak — tools, tool_choice; odpowiedź zawiera tool_calls, także w strumieniu; wyniki jako role: tool |
| Tryb JSON | response_format: {"type": "json_object"} |
| Maks. odpowiedź | do reszty okna 100 000 tokenów; max_tokens opcjonalne (bez osobnego limitu) |
| Nagłówki odpowiedzi | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Limit zapytań | 300 zapytań na minutę na klucz |
| Rozmiar zapytania | do 8 MB |
| Równoległe zapytania | do 8 jednocześnie na klucz |
| Doładowanie | USDT (TRC20) lub USDC (Base), dowolna pełna kwota od $10 do $500 |
| Darmowy kredyt | $0,50 na 7 dni, bez karty · Klucz próbny: 2 równoległe żądania, 60 na minutę; pełne limity (8 i 300) po pierwszym doładowaniu |
| Rozliczenie | przedpłacony kredyt według rzeczywistego zużycia; błędy i odmowy są darmowe |
| Bonus | +5% od $50, +10% od $100 |
| Cena | $0,25 za 1 mln tokenów wejścia · $1,00 za 1 mln tokenów wyjścia |
| Ważność | opłacony kredyt nie wygasa, bez subskrypcji |
| Klucze | jeden aktywny klucz na konto; nowy zastępuje stary |
| Logowanie | Google albo e-mail i hasło |
| Treści | treści dla dorosłych dozwolone; treści seksualne z udziałem nieletnich są odrzucane |
Kody błędów
Błędy wracają jako JSON ze stałym type; nieudane i odrzucone zapytania są bezpłatne.
| Kod | Typ | Znaczenie |
|---|---|---|
400 | bad_request | błędny JSON, puste wiadomości, zły parametr lub za długi kontekst |
401 | missing_key · invalid_key · key_revoked | brak klucza, zły klucz lub klucz zastąpiony nowym |
402 | no_credit | brak kredytu — doładuj, działa od razu |
403 | content_blocked | treści seksualne z nieletnimi — odmowa, bez opłaty |
404 | not_found | nieznany endpoint |
413 | request_too_large | treść większa niż 8 MB |
429 | rate_limited · concurrency | ponad 300/min lub 8 równolegle — odczekaj i ponów |
503 | upstream_busy | model zajęty — ponów za kilka sekund |
Pytania i odpowiedzi
Jakiego ID modelu użyć?
Użyj ID modelu <code>uncensored</code>. To model o otwartych wagach hostowany na naszych serwerach, odrębny od GPT, Claude lub innych modeli dostawców.
Czy API obsługuje wywoływanie funkcji?
Tak, API obsługuje wywoływanie funkcji (narzędzia i tool_choice) wraz z trybem JSON dla danych strukturalnych. Możesz zdefiniować narzędzia w ładunku zapytania.
Czy istnieje filtr treści dla małoletnich?
Obowiązuje sztywny limit treści: zapytania zawierające treści seksualne z udziałem małoletnich są zawsze odrzucane, niezależnie od kontekstu promptu.
Twój klucz jest o jeden formularz stąd
Utwórz konto, skopiuj klucz, zmień podstawowy URL. To cała konfiguracja.