Uwierzytelnianie: Używanie klucza API
Twój klucz API uwierzytelnia każde żądanie, które wysyłasz do naszych serwerów. Wydajemy jeden klucz na konto, który generujesz za pomocą panelu. Przekaż ten klucz w Authorization Nagłówek przy użyciu schematu Bearer. Jeśli wyślesz nieprawidłowy klucz, zwrócimy błąd 401. Jeśli zabraknie kredytów z góry opłaconych, zwrócimy błąd 402, wymagający doładowania kryptowalutą przed kontynuacją.
Struktura bazowego URL i endpointu
Przekieruj wszystkie żądania do naszego pojedynczego bazowego URL dla ukończeń czatu. Nie oferujemy punktów końcowych do osadzania (embeddings), generowania obrazów ani dostrajania modeli. Użyj standardowego POST /v1/chat/completions ścieżkę do wysyłania swoich promptów. Możesz również zapytać GET /v1/models zwerydować dostępny identyfikator modelu. Ta struktura zapewnia kompatybilność z istniejącymi klientami SDK OpenAI bez niestandardowej logiki trasowania.
Szybki start: Twoje pierwsze żądanie z ablated AI
Wyślij proste żądanie tekstowe, aby natychmiast przetestować model uncensored. Użyj oficjalnej biblioteki OpenAI lub dowolnego klienta HTTP do wysłania wiadomości metodą POST. Model zwraca odpowiedź tekstową bez filtrowania legalnej treści dla dorosłych. Zastąp placeholder klucza swoim rzeczywistym poświadczeniem z panelu.
curl https://api.aiablated.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "what is the current version of the api"}]
}'
To żądanie demonstruje podstawowy przepływ interakcji. Otrzymujesz bezpośrednią odpowiedź od zmodyfikowanego modelu. Dostosuj prompt systemowy, aby zdefiniować osobowość lub kontekst dla Twojego konkretnego przypadku użycia.
Integracja SDK Python
Użyj oficjalnej biblioteki Pythona OpenAI do integracji API w swoich aplikacjach. Ustaw base URL i klucz API w konfiguracji klienta. To podejście automatycznie obsługuje serializację i parsowanie błędów. Możesz strumieniować odpowiedzi lub pobierać je synchronicznie. Biblioteka kliencka zarządza cyklem życia połączenia za Ciebie.
from openai import OpenAI
client = OpenAI(base_url="https://api.aiablated.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)
Ten fragment kodu poprawnie inicjuje klienta. Wskazuje on nasz specyficzny podstawowy adres URL. Upewnij się, że zainstalowałeś najnowszą paczkę openai, aby uzyskać pełną kompatybilność z funkcjami strumieniowania i wywoływania funkcji.
Integracja SDK Node.js
Zintegruj API do swoich projektów JavaScript lub TypeScript za pomocą standardowego SDK. Skonfiguruj base URL, aby wskazywał na naszą usługę. Pozwala to na użycie znanych metod takich jak chat.completions.create. SDK obsługuje nagłówki żądań i parsowanie odpowiedzi. Możesz łatwo dodać obsługę błędów, takich jak przekroczenie limitu szybkości lub niepowodzenie uwierzytelnienia.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.aiablated.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);
Ta konfiguracja zapewnia poprawną komunikację Twojej aplikacji Node. Nadpisanie adresu URL bazowego jest kluczowym krokiem. Bez niego SDK będzie próbowało połączyć się z chmurą OpenAI zamiast naszymi serwerami.
Odpowiedzi strumieniowe i zużycie tokenów
Otrzymuj odpowiedzi token po tokenie za pomocą Server-Sent Events (SSE). Zmniejsza to postrzeganą opóźnienie dla długich wyjść. Ostatni fragment strumienia zawiera całkowite zużycie tokenów dla żądania. Możesz śledzić zużycie swojej przedpłaconej kredytu w czasie rzeczywistym. Ustaw stream: true w ciele żądania, aby włączyć ten tryb. Jest to idealne dla interfejsów czatu i generowania tekstu na żywo.
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)
To podejście strumieniowe zapewnia płynne doświadczenie użytkownika. Ostatni fragment zawiera statystyki użycia. Monitoruj te liczby, aby skutecznie zarządzać saldem zaliczkowym. Błędy podczas strumieniowania są obsługiwane bezproblemowo przez SDK.