Uwierzytelnianie
Uwierzytelnianie odbywa się za pomocą pojedynczego klucza API. Możesz się zalogować za pomocą Google lub hasła e-mail na stronie Uzyskaj klucz API. Klucz jest wyświetlany natychmiast i jest powiązany z Twoim przedpłaconym kredytem. W przeciwieństwie do głównych dostawców, nie ma miesięcznych subskrypcji ani wymaganej karty kredytowej podczas okresu próbnego. Użyj nagłówka Authorization: Bearer YOUR_API_KEY we wszystkich zapytaniach. Twój klucz to jedyne aktywne poświadczenie na konto; wygenerowanie nowego klucza unieważnia poprzedni.
Podstawowe uzupełnianie
Wyślij standardowe zapytanie o uzupełnienie czatu do endpointu kompatybilnego z OpenAI. Identyfikator modelu to uncensored. Ten model o otwartych wagach jest dostrojony do odpowiadania bez odrzucania treści dla legalnego użytku dorosłego. Nie jest to GPT, Claude ani żaden inny model dostawcy. Podstawowy adres URL tej usługi znajduje się poniżej.
curl https://api.ornith.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."}]
}'Zamień YOUR_API_KEY na swój klucz z panelu. Odpowiedź zawiera wygenerowany tekst w choices[0].message.content. Błędy takie jak 401 oznaczają nieprawidłowy klucz, podczas gdy 402 oznacza, że twój przedpłacony kredyt został wyczerpany.
SDK Python
Użyj oficjalnego pakietu Pythona openai. Wskaż mu podstawowy adres URL Ornith i podaj swój klucz API. Zapewnia to kompatybilność ze standardową strukturą klienta OpenAI. Możesz przekazać wiadomości jako listę słowników zawierających role i content. Klient obsługuje żądania HTTP automatycznie. To podejście działa zarówno do prostego generowania tekstu, jak i bardziej złożonych interakcji za pomocą narzędzi lub trybu JSON.
from openai import OpenAI
client = OpenAI(base_url="https://api.ornith.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)Obiekt odpowiedzi odzwierciedla standardową strukturę OpenAI. Możesz uzyskać dostęp do wygenerowanego tekstu bezpośrednio z obiektu odpowiedzi. Ta metoda jest idealna dla usług backendowych lub skryptów, w których potrzebujesz programistycznego dostępu do wyniku modelu.
SDK Node.js
Zainstaluj pakiet npm openai. Zainicjuj klienta podstawowym adresem URL Ornith i swoim kluczem API. Struktura żądania jest identyczna jak w SDK Python. Użyj metody chat.completions.create. Jest to odpowiednie dla środowisk JavaScript, niezależnie od tego, czy budujesz backend webowy, czy narzędzie CLI. Klient obsługuje serializację i deserializację odpowiedzi.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.ornith.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);Obsłuż błędy odpowiednio. Błędy sieciowe lub API spowodują wyjątki. Sprawdź kod stanu, aby rozróżnić niepowodzenia uwierzytelniania, limity zapytań lub błędy serwera. Odpowiedź zawiera szczegóły uzupełnienia w tym samym formacie co SDK Python.
Odpowiedzi strumieniowe
Włącz strumieniowanie, ustawiając stream: true w żądaniu. Zwraca strumień tokenów w miarę ich generowania. Użyj tego do aktualizacji interfejsu w czasie rzeczywistym lub progresywnego wyświetlania tekstu. Strumień kończy się końcowym fragmentem zawierającym całkowite użycie tokenów. Pozwala to śledzić koszty w czasie rzeczywistym bez oczekiwania na pełną odpowiedź. Jest to wydajne dla długich kontekstów, w których chcesz pokazać postęp.
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)Iteruj po strumieniu, aby przetworzyć każdy fragment. Ostatni fragment zawiera pole usage. Jest to przydatne dla przejrzystości rozliczeń. Upewnij się, że Twój klient poprawnie obsługuje strumień, aby uniknąć problemów z pamięcią przy dużych odpowiedziach.
Limity, błędy i kontekst
Okno kontekstu wynosi 100 000 tokenów dla promptu i uzupełnienia łącznie. Maksymalna liczba tokenów wyjściowych na zapytanie to 32 000 (2048, jeśli max_tokens nie jest ustawione). Jesteś ograniczony do 300 zapytań na minutę i 8 równoległych zapytań na klucz. Ciała zapytań muszą być mniejsze niż 8 MB. Jeśli przekroczysz limit zapytań, otrzymasz błąd 429. Odrzucenia treści dla małoletnich są zakodowane na stałe i zawsze mają zastosowanie. Błędy nie zużywają kredytu. Kredyt jest przedpłacony i nigdy nie wygasa.