API Character AI: Zmień klienta w trzech krokach
Podłącz swojego chatbota do modelu LLM bez cenzury w kilka minut za pomocą naszego API kompatybilnego z OpenAI. Ten przewodnik przeprowadzi Cię przez konfigurację, podstawowe zapytania i strumieniowanie bez problemów z konfiguracją.
https://api.characteraiapi.com/v1
Wymagania wstępne
Przed napisaniem kodu potrzebujesz aktywnego konta na characteraiapi.com. Odwiedź stronę Pobierz klucz API i zarejestruj się, podając tylko adres e-mail i hasło. Nie jest wymagana karta kredytowa, a nowe konta otrzymują $0,50 w kredycie próbnym ważnym przez 7 dni. Po rejestracji Twój klucz API jest wyświetlany natychmiast. Przechowuj klucz bezpiecznie, ponieważ uwierzytelnia on wszystkie zapytania do endpointu. Będziesz również potrzebować zainstalowanego w środowisku programistycznym obsługiwanego interfejsu SDK. Endpoint character ai api przyjmuje standardowe parametry OpenAI, więc dowolny klient kompatybilny z OpenAI zadziała po niewielkich zmianach.
Zainstaluj SDK
W projektach Python zainstaluj oficjalny pakiet OpenAI za pomocą pip. Biblioteka ta automatycznie obsługuje serializację JSON i żądania HTTP. W aplikacjach Node.js użyj npm, aby dodać pakiet openai. Obie biblioteki obsługują strumieniowanie i wywoływanie funkcji opisane dalej w tym przewodniku. Upewnij się, że wersja Twojego SDK jest wystarczająco nowa, aby obsługiwać Server-Sent Events (SSE) dla strumieniowania tokenów w czasie rzeczywistym. Jeśli używasz własnego klienta HTTP zamiast SDK, musisz ręcznie obsłużyć ładunek JSON i parsowanie strumienia SSE zgodnie ze specyfikacją API OpenAI.
Uwierzytelnianie
Każde zapytanie do API musi zawierać Twój klucz API w nagłówku Authorization. Użyj formatu Bearer YOUR_API_KEY. Podstawowy URL dla wszystkich zapytań to https://api.characteraiapi.com/v1. Podczas korzystania z SDK ustaw konfigurację base_url na tę wartość i podaj klucz za pomocą parametru api_key. Jeśli zgubisz klucz lub podejrzysz jego wyciek, możesz go wygenerować ponownie z panelu; stary klucz zostanie natychmiast unieważniony. Na jedno konto przysługuje tylko jeden aktywny klucz. Upewnij się, że używasz właściwego podstawowego URL, ponieważ zapytania do standardowego endpointu OpenAI zakończą się błędem 404 lub 401.
Podstawowe uzupełnianie czatu
Podstawowa funkcjonalność jest obsługiwana przez endpoint /v1/chat/completions. Wyślij żądanie POST z nazwą modelu uncensored i historią wiadomości. Model zwraca tekst bez stosowania standardowych filtrów treści dla legalnych treści dla dorosłych. Poniżej znajduje się przykład curl demonstrujący proste żądanie uzupełniania tekstu.
curl https://api.characteraiapi.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."}]
}'
To zapytanie zwraca obiekt uzupełnienia zawierający wygenerowany tekst. Możesz dostosować parametry, takie jak temperature, aby kontrolować losowość, lub max_tokens, aby ograniczyć długość wyjścia. Model obsługuje okno kontekstu 100 000 tokenów, co pozwala przetwarzać znaczną historię rozmowy lub długie dokumenty w jednym zapytaniu.
Odpowiedzi strumieniowe
Aby zapewnić lepsze wrażenia użytkownika, włącz strumieniowanie, ustawiając stream: true w swoim zapytaniu. API zwraca zdarzenia wysyłane przez serwer (SSE) zawierające fragmenty tokenów, które są generowane. Zmniejsza to postrzegane opóźnienie w aplikacjach chatbotów. Użyj parametru stream_options, jeśli chcesz otrzymać końcowe statystyki zużycia w ostatnim zdarzeniu. Strumieniowanie jest szczególnie przydatne w przypadku odgrywania ról postaci w czasie rzeczywistym, gdzie wyświetlanie tekstu słowo po słowie zwiększa immersję. Upewnij się, że Twój kod klienta poprawnie obsługuje format SSE, aby analizować każdy fragment sekwencyjnie.
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)
Limity zapytań i błędy
API narzuca limit 300 zapytań na minutę na klucz. Jeśli go przekroczysz, otrzymasz błąd 429 Too Many Requests. Ciała zapytań są ograniczone do 8 MB. Powszechne błędy obejmują 401 za nieprawidłowy lub brakujący klucz oraz 402, jeśli Twój przedpłacony kredyt został wyczerpany. Możesz doładować konto od kwoty $10 za pomocą kryptowalut (USDT lub USDC), z bonusowymi kredytami dostępnymi przy większych wpłatach. W przeciwieństwie do niektórych dostawców, nie ma ukrytych opłat ani blokad subskrypcyjnych; płacisz tylko za zużyte tokeny. Ceny są przejrzyste: $0.25 za 1M tokenów wejściowych i $1.00 za 1M tokenów wyjściowych. Upewnij się, że Twoja logika obsługi błędów ponawia zapytania po otrzymaniu 429 z wykładniczym opóźnieniem.
from openai import OpenAI
client = OpenAI(base_url="https://api.characteraiapi.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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.characteraiapi.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 |
| Endpointy | POST /v1/chat/completions · GET /v1/models |
| Uwierzytelnianie | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.characteraiapi.com/v1 |
| 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 |
| 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 |
| Rozmiar zapytania | do 8 MB |
| Nagłówki odpowiedzi | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Równoległe zapytania | do 8 jednocześnie na klucz |
| Limit zapytań | 300 zapytań na minutę na klucz |
| Ważność | opłacony kredyt nie wygasa, bez subskrypcji |
| Bonus | +5% od $50, +10% od $100 |
| Doładowanie | USDT (TRC20) lub USDC (Base), dowolna pełna kwota od $10 do $500 |
| Cena | $0,25 za 1 mln tokenów wejścia · $1,00 za 1 mln tokenów wyjścia |
| 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 |
| 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
Czy to oficjalne API Character.ai?
Nie, jest to niezależna usługa hostowana pod adresem characteraiapi.com. Udostępnia własny model bez cenzury i nie jest powiązana z Character.AI ani innymi głównymi dostawcami LLM.
Czy model obsługuje generowanie obrazów lub audio?
Nie. API obsługuje tylko tekst. Przyjmuje dane wejściowe tekstowe i zwraca dane wyjściowe tekstowe. Nie obsługuje embeddingów, dostrajania ani multimodalnych danych wejściowych/wyjściowych.
Jak zdefiniowano „bez cenzury”?
Model nie odrzuca legalnych tematów dla dorosłych, fikcyjnych lub kontrowersyjnych. Blokuje tylko treści seksualne z udziałem małoletnich, co jest stałym limitem stosowanym do wszystkich zapytań.
Twój klucz jest o jeden formularz stąd
Utwórz konto, skopiuj klucz, zmień podstawowy URL. To cała konfiguracja.