Szybki start dla potoków Whisper
Zintegruj nasz tekstowy model bez cenzury z potokami mowy lub obrazów za pomocą standardowego API uzupełnień czatowych kompatybilnego z OpenAI. Przewodnik obejmuje kluczowe kroki wysyłania zapytań, obsługi strumieniowania i zarządzania oknami kontekstu w zadaniach postprocesingu.
Wymagania wstępne
Przed rozpoczęciem upewnij się, że masz aktywne konto i klucz API. Zarejestruj się na stronie Pobierz klucz API używając tylko adresu e-mail i hasła. Klucz pojawi się natychmiast. Otrzymujesz $0.50 w darmowym kredycie próbnym ważnym przez 7 dni, bez karty kredytowej. W produkcji doładuj od $10 za pomocą kryptowalut (USDT lub USDC). Nasze ceny są proste: $0.25 za 1M tokenów wejściowych i $1.00 za 1M tokenów wyjściowych. Kredyty nigdy nie wygasają.
Base URL: https://api.whisperapis.com/v1. Ten endpoint działa z dowolnym klientem kompatybilnym z OpenAI. Musisz tylko skonfigurować Base URL i podać swój klucz API w nagłówku autoryzacji. Nie są wymagane specjalne SDK do podstawowych żądań HTTP.
Inicjalizacja klienta
Większość programistów używa oficjalnego SDK OpenAI lub kompatybilnej biblioteki. Zainicjuj klienta, wskazując go na nasz Base URL. Zapewnia to, że wszystkie zapytania są kierowane do naszego modelu bez cenzury, a nie serwerów OpenAI. ID modelu to zawsze uncensored.
Upewnij się, że zmienna środowiskowa OPENAI_API_KEY jest ustawiona na Twój klucz z panelu. Jeśli używasz innego języka lub biblioteki, upewnij się, że obsługuje niestandardowe Base URL. SDK zajmuje się serializacją JSON i wstrzykiwaniem nagłówków za Ciebie, redukując kod boilerplate w skryptach potoku.
Wysyłanie uzupełnienia czatu
Wyślij standardowe zapytanie o uzupełnienie czatu, aby udoskonalić wynik swojego potoku. Na przykład wyodrębnij strukturalny JSON z transkrypcji mowa-na-tekst lub generuj podpisy do obrazów bez filtrów treści.
Endpoint to POST /v1/chat/completions. Dołącz ID modelu, tablicę wiadomości i opcjonalnie prompt systemowy, aby zdefiniować zachowanie bez cenzury.
curl https://api.whisperapis.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."}]
}'Nasz model dobrze radzi sobie z danymi o wysokim kontekście, obsługując do 100,000 tokenów łącznie. Jest to idealne do przetwarzania długich transkrypcji lub szczegółowych opisów obrazów w jednym przebiegu.
Odpowiedzi strumieniowe
Do postprocesingu w czasie rzeczywistym lub interaktywnych potoków włącz strumieniowanie. Ustaw parametr stream na true w swoim zapytaniu. API zwraca zdarzenia SSE zamiast pojedynczego obiektu JSON.
Przetwarzaj pola delta w miarę ich przybywania. Zmniejsza to postrzegane opóźnienie przy dużych wynikach, np. generowaniu szczegółowych skryptów lub wyodrębnianiu długich bloków tekstu z zaobrazowanych wyników o wysokim poziomie szumu. Format strumieniowy jest kompatybilny ze standardowymi mechanizmami obsługi strumieni w SDK OpenAI.
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)Upewnij się, że Twój klient poprawnie obsługuje fragmenty częściowe. Agreguj delty, aby odtworzyć pełną odpowiedź tekstową, gdy strumień zakończy się finish_reason równym stop lub length.
Wsparcie dla wywoływania funkcji
Nasz model bez cenzury obsługuje wywoływanie funkcji, pozwalając zdefiniować strukturalne wyjścia dla Twoich potoków. Zdefiniuj swoje narzędzia w tablicy tools z definicjami schematu JSON.
Model zwraca wywołania narzędzi w odpowiedzi, które możesz wykonać, aby zaktualizować kontekst rozmowy. Jest to przydatne do wyodrębniania konkretnych punktów danych z tekstu niesformatowanego, takich jak daty, nazwy lub współrzędne z transkrypcji mowy.
from openai import OpenAI
client = OpenAI(base_url="https://api.whisperapis.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)Przekaż wywołania narzędzi z powrotem do API w kolejnych wiadomościach. Model udoskonali swoje wyjście na podstawie wyników. Umożliwia to złożone wnioskowanie wieloetapowe bez opuszczania interfejsu czatu. Upewnij się, że Twój schemat jest ścisły, aby uniknąć zwracania niepoprawnych odpowiedzi JSON.
Limity, błędy i kontekst
Monitoruj swoje zużycie, aby uniknąć przerw. API narzuca limit 300 zapytań na minutę na klucz. Jeśli go przekroczysz, otrzymasz błąd limitu zapytań 429. Zaimplementuj w swoim kliencie wykładnicze wygasanie.
Typowe błędy:
401: Nieprawidłowy lub wygasły klucz API. Wygeneruj ponownie swój klucz z panelu.402: Niewystarczający kredyt. Doładuj swoje konto, aby kontynuować przetwarzanie.429: Przekroczono limit zapytań. Zmniejsz częstotliwość zapytań lub grupuj mniejsze zadania.
Okno kontekstu: Model obsługuje 100,000 tokenów dla prompt + uzupełnienie. Jeśli Twoje wejście przekracza ten limit, obetnij starsze wiadomości lub podziel dane. Ciała zapytań są ograniczone do 8 MB. Upewnij się, że Twoje ładunki mieszczą się w tych ograniczeniach dla niezawodnej wydajności.
Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.whisperapis.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);Parametry API
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.whisperapis.com/v1 |
| Maks. odpowiedź | do reszty okna 100 000 tokenów; max_tokens opcjonalne (bez osobnego limitu) |
| Strumieniowanie | tak — server-sent events; ostatni fragment zawiera zużycie tokenów |
| Tryb JSON | response_format: {"type": "json_object"} |
| 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ź) |
| Rozmiar zapytania | do 8 MB |
| Limit zapytań | 300 zapytań na minutę na klucz |
| Równoległe zapytania | do 8 jednocześnie na klucz |
| Nagłówki odpowiedzi | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Doładowanie | USDT (TRC20) lub USDC (Base), dowolna pełna kwota od $10 do $500 |
| Bonus | +5% od $50, +10% od $100 |
| 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 |
| Cena | $0,25 za 1 mln tokenów wejścia · $1,00 za 1 mln tokenów wyjścia |
| 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
Jaki jest rozmiar okna kontekstu?
Model obsługuje okno kontekstu o rozmiarze 100,000 tokenów, obejmujące zarówno prompt, jak i uzupełnienie. Pozwala to przetwarzać duże transkrypcje lub szczegółowe opisy w jednym zapytaniu.
Czy to API generuje obrazy lub audio?
Nie. To API uzupełnień czatowych tylko dla tekstu. Służy do postprocesingu wyjść tekstowych z innych modalności, takich jak mowa-na-tekst czy generowanie obrazów. Nie generuje audio, obrazów ani wideo.
Jak radzić sobie z błędami strumieniowania?
Strumieniowane odpowiedzi zwracają zdarzenia SSE. Jeśli wystąpi błąd, strumień zwykle kończy się komunikatem o błędzie w polu error ostatniego fragmentu. Upewnij się, że klient obsługuje zerwania połączenia w sposób elegancki i ponawia próbę, jeśli to konieczne.
Twój klucz jest o jeden formularz stąd
Utwórz konto, skopiuj klucz, zmień Base URL. To cała konfiguracja.