Pierwsze zapytanie w pięć minut
Zintegruj nasze API bez cenzury w swoim przepływie pracy NSFW AI, zmieniając trzy wartości konfiguracyjne w istniejącym kliencie kompatybilnym z OpenAI. Ten szybki start obejmuje uwierzytelnianie, generowanie tekstu i strumieniowanie bez dodatkowych zależności.
URL bazowy i uwierzytelnianie
Nasze API odzwierciedla interfejs OpenAI v1, pozwalając na zamianę endpointów bez zmiany logiki aplikacji. Użyj https://api.groknsfw.top/v1 jako swojego URL bazowego. Uwierzytelnianie wymaga ważnego klucza API przekazanego w nagłówku Authorization jako tokena Bearer. Możesz wygenerować ten klucz natychmiast przez logowanie Google lub e-mail w panelu. Każde konto obsługuje jeden aktywny klucz naraz; wydanie nowego klucza natychmiast unieważnia poprzedni. Ten model z jednym kluczem upraszcza kontrolę dostępu w większości środowisk programistycznych i QA.
Pierwsze zapytanie
Wyślij standardowe zapytanie o uzupełnienie czatu, aby przetestować łączność. Identyfikator modelu to uncensored, który obsługuje odrzucanie treści inaczej niż standardowe modele. Poniżej znajduje się podstawowy przykład użycia narzędzia wiersza poleceń curl w celu weryfikacji poprawności klucza i URL bazowego.
curl https://api.groknsfw.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."}]
}'
Jeśli otrzymasz odpowiedź JSON z choices i usage, Twoja integracja jest aktywna. Sprawdź obiekt usage, aby zobaczyć zużycie tokenów dla dokładnego śledzenia rozliczeń.
Integracja Python SDK
Użyj oficjalnego pakietu Python openai do interakcji z naszym endpointem. Ustaw atrybuty base_url i api_key przed wykonaniem wywołań. To podejście działa z każdą biblioteką obsługującą schemat OpenAI, co ułatwia migrację z innych dostawców.
from openai import OpenAI
client = OpenAI(base_url="https://api.groknsfw.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)
Ten fragment kodu demonstruje żądanie synchroniczne. Przy generowaniu treści NSFW o wysokim przepływie rozważ użycie klientów asynchronicznych do obsługi wielu żądań równolegle bez blokowania głównego wątku.
Konfiguracja Node.js SDK
Dla aplikacji JavaScript lub TypeScript skonfiguruj SDK OpenAI tak, aby wskazywało na nasz URL bazowy. Zapewnia to działanie istniejącego kodu klienta bez modyfikacji. Środowisko Node.js czerpie korzyści z tej kompatybilności, umożliwiając szybkie prototypowanie interfejsów czatu NSFW.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.groknsfw.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);
Upewnij się, że używasz najnowszej wersji SDK obsługującej niestandardowe URL bazowe. Obiekt konfiguracji powinien ściśle zawierać właściwości apiKey i baseURL, aby uniknąć niepasujących endpointów.
Strumieniowanie odpowiedzi (SSE)
Włącz generowanie tokenów w czasie rzeczywistym, ustawiając stream: true w swoim żądaniu. API zwraca strumień Server-Sent Events (SSE), dostarczając tokeny w miarę ich generowania. Zmniejsza to postrzeganą opóźnienie dla użytkowników końcowych w aplikacjach czatu.
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)
Przetwarzaj zdarzenia SSE, aby wyodrębnić zawartość delta. Ostatni fragment strumienia zawiera całkowite statystyki usage, które należy użyć do dokładnego rozliczenia. Strumieniowanie nie wpływa na liczenie tokenów ani ceny.
Limity, błędy i kontekst
Twoje zapytania podlegają limitowi 300 na minutę i 8 równoległych zapytań na klucz. Maksymalny rozmiar ciała zapytania to 8 MB, a okno kontekstu obsługuje do 100 000 tokenów łącznie. Błędy zwracane są w standardowych formatach HTTP: 401 dla nieprawidłowych kluczy, 402 za niewystarczający kredyt i 429 za przekroczenie limitu zapytań. Błędy związane z kredytem nie są płatne, ale limity zapytań wymagają ograniczenia ich częstotliwości. Maksymalna liczba tokenów wyjściowych na zapytanie to 32 000; pominięcie max_tokens domyślnie ustawia 2 048 tokenów.
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 |
| Uwierzytelnianie | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.groknsfw.top/v1 |
| Endpointy | POST /v1/chat/completions · GET /v1/models |
| ID modelu | uncensored |
| Tryb JSON | response_format: {"type": "json_object"} |
| Maks. odpowiedź | do reszty okna 100 000 tokenów; max_tokens opcjonalne (bez osobnego limitu) |
| Parametry | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Wywoływanie funkcji | tak — tools, tool_choice; odpowiedź zawiera tool_calls, także w strumieniu; wyniki jako role: tool |
| Okno kontekstu | 100 000 tokenów (wejście + odpowiedź) |
| Strumieniowanie | tak — server-sent events; ostatni fragment zawiera zużycie tokenów |
| 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 |
| Równoległe zapytania | do 8 jednocześnie na klucz |
| Rozmiar zapytania | do 8 MB |
| Rozliczenie | przedpłacony kredyt według rzeczywistego zużycia; błędy i odmowy są darmowe |
| 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 |
| Ważność | opłacony kredyt nie wygasa, bez subskrypcji |
| 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 |
| Doładowanie | USDT (TRC20) lub USDC (Base), dowolna pełna kwota od $10 do $500 |
| Logowanie | Google albo e-mail i hasło |
| Klucze | jeden aktywny klucz na konto; nowy zastępuje stary |
| 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
Czy to oficjalne API Grok?
Nie, jesteśmy niezależnym serwisem hostującym model o otwartych wagach dostrojony do odpowiedzi bez cenzury. Korzystamy z tego samego protokołu API co OpenAI, ale nasz model to nie GPT-4, Grok ani żaden inny model dostawcy. Sprawdź dokumentację dostawcy, aby poznać szczegóły konkretnego modelu.
Jak uzyskać więcej kluczy API?
Konto może mieć jednocześnie tylko jeden aktywny klucz API. Wygenerowanie nowego klucza w panelu natychmiast unieważnia poprzedni. To rozwiązanie upraszcza zarządzanie dostępem dla pojedynczych programistów i małych zespołów.
Czy obsługiwane jest wywoływanie funkcji?
Tak, API obsługuje standardowe wywoływanie funkcji za pomocą parametrów <code>tools</code> i <code>tool_choice</code>. Możesz również wymusić format JSON za pomocą <code>response_format: { "type": "json_object" }</code> przy generowaniu danych strukturalnych.
Twój klucz jest o jeden formularz stąd
Utwórz konto, skopiuj klucz, zmień URL bazowy. To cała konfiguracja.