Unzensierte Chatbot-API: Erste Anfrage in fünf Minuten
Eine unzensierte Chatbot-API kannst du in fünf Minuten ausprobieren, wenn du Python bereits installiert hast. Du brauchst einen Schlüssel, zwei geänderte Einstellungen im OpenAI SDK und eine Anfrage. Danach verwandeln ein System-Prompt und Streaming sie in einen Chatbot.

Wichtige Erkenntnisse
- Unser unzensiertes LLM lehnt weniger Themen ab, was es ideal für Rollenspiele und kreatives Schreiben ohne unerwartete Inhaltsblockaden macht.
- Die Preise sind strikt Pay as you go: $0,15 pro 1 Mio. Input-Token und $0,50 pro 1 Mio. Output-Token, ohne monatliche Grundgebühren.
- Die Integration ist reibungslos, da die API Standard-OpenAI-Endpunkte verwendet und nur eine Änderung der Base URL erfordert.
- Krypto-Aufladungen über USDT oder USDC beinhalten Bonusguthaben, und Prompts werden niemals zum Training deiner Daten verwendet.
Minute 1 bis 2: Schlüssel holen
Gehe zur API-Schlüssel-Seite und registriere dich mit Google oder mit E-Mail und Passwort. Nach der Registrierung zeigt die Schlüssel-Seite einen Button zum Einlösen des Testguthabens: $0,50, einmal pro Person, 7 Tage gültig, keine Karte nötig.
Kopiere den Schlüssel und speichere ihn in einer Umgebungsvariable. Ein Schlüssel in einer Datei, die du versehentlich committest, ist die häufigste Ursache für den Verlust von Guthaben.
# model ID for later requests: uncensored
export UF_API_KEY="paste-your-key-here"
pip install openaiEin Test-Schlüssel erlaubt 2 parallele Anfragen und 60 Anfragen pro Minute. Diese Limits reichen für dieses Tutorial völlig aus.
Minute 3: die erste Anfrage
Der Dienst ist OpenAI-kompatibel, daher funktioniert das offizielle SDK, sobald du base_url und den Schlüssel änderst. Die Modell-ID ist uncensored.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.chatbotunfiltered.com/v1",
api_key=os.environ["UF_API_KEY"],
)
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Give me three names for a cyberpunk bar."}],
)
print(resp.choices[0].message.content)
print("tokens in/out:", resp.usage.prompt_tokens, resp.usage.completion_tokens)Führe es mit python first.py aus. Eine Liste von Namen und eine Token-Anzahl bedeuten, dass alles funktioniert. Wenn du einen Authentifizierungsfehler siehst, überprüfe die Variable. Wenn die Verbindung fehlschlägt, stelle sicher, dass die Basis-URL auf /v1 endet.
Die Antwort folgt dem OpenAI-Chat-Format: eine choices-Liste mit der Nachricht, ein usage-Block mit Token-Anzahlen und in diesem Format einen Finish-Grund, der dir sagt, warum die Generierung endete. Eine abgeschnittene Antwort bedeutet meist ein niedriges max_tokens. Was die Kosten angeht, kostet eine Anfrage mit 500 Input-Token und 300 Output-Token $0,000075 + $0,00015 = $0,000225. Die fünf Anfragen in diesem Tutorial kosten insgesamt etwa ein Zehntel Cent, sodass das Testguthaben kaum angerührt wird.
Minute 4: System-Prompt und Einstellungen hinzufügen
Eine reine Anfrage gibt dir die Standard-Stimme des Assistenten. Für einen Chatbot füge eine System-Nachricht hinzu, die einen Charakter definiert, und übergebe Sampling-Einstellungen, die dazu passen.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.chatbotunfiltered.com/v1",
api_key=os.environ["UF_API_KEY"],
)
raw = client.chat.completions.with_raw_response.create(
model="uncensored",
messages=[
{"role": "system", "content": "You are Rook, a smuggler with a dry sense of humor. Stay in character. Keep replies under 80 words."},
{"role": "user", "content": "Can you get me across the border tonight?"},
],
temperature=0.9,
top_p=0.95,
max_tokens=200,
seed=7,
)
resp = raw.parse()
print(resp.choices[0].message.content)
print("balance:", raw.headers.get("x-balance-usd"))
print("request id:", raw.headers.get("x-request-id"))temperatureundtop_psteuern die Vielfalt. Höhere Werte führen zu lebendigerem, weniger vorhersehbarem Text.seedmacht Tests einfacher zu wiederholen. Es wird durchgereicht, also nutze es, um Prompt-Änderungen zu vergleichen.max_tokensist optional. Ohne es kann die Generierung den Rest des 100.000-Token-Fensters nutzen.- Der Balance-Header zeigt dir dein verbleibendes Guthaben nach jedem Aufruf an.
Der Prompt ist hier das Produkt. Halte ihn kurz und spezifisch. Sage, wer der Charakter ist, wie er spricht, was die Geschichte ist und wie lang sie sein soll. All das geht einmal in die System-Nachricht, und du sendest sie bei jeder Anfrage erneut, da die API zwischen Aufrufen nichts speichert.
Minute 5: Streaming
Streaming gibt Text aus, während er generiert wird. Es ist eine Ein-Wort-Änderung in der Anfrage, plus eine Schleife zum Lesen von Chunks.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.chatbotunfiltered.com/v1",
api_key=os.environ["UF_API_KEY"],
)
stream = client.chat.completions.create(
model="uncensored",
stream=True,
messages=[
{"role": "system", "content": "You are Rook, a smuggler with a dry sense of humor."},
{"role": "user", "content": "Tell me about the worst job you ever took."},
],
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
print()Eine gestreamte Anfrage belegt einen deiner Concurrency-Slots, bis der Stream endet. Mit einem Test-Schlüssel nutzen zwei offene Streams bereits alle, und eine dritte Anfrage gibt HTTP 429 mit dem Code concurrency zurück. Warte und versuche es erneut.
Wenn du die Nutzung nach einem Stream bestätigen möchtest, enthält der letzte Chunk einen usage-Block.
Wähle Sampling-Werte mit Plan
Sampling-Einstellungen verändern das Gefühl des Bots mehr, als die meisten Leute erwarten. Starte mit den unten stehenden Werten und ändere immer nur einen nach dem anderen.
| Ziel | Einstellung | Warum |
|---|---|---|
| Lebhaftes Geschichtenerzählen | temperature 0,9 bis 1,0, top_p 0,95 | Mehr Vielfalt zwischen den Durchläufen |
| Konsistenter Charakter | temperature 0,6 bis 0,7 | Weniger Überraschungen |
| Wiederholbare Tests | seed fest, temperature 0 | Gleicher Prompt gibt die gleiche Art von Antwort |
| Weniger Wiederholungen | Frequency- oder Presence-Penalty um 0,3 | Verhindert Schleifen |
| Antwort an einem Marker abschneiden | stop mit einem String | Beendet die Ausgabe, sobald sie erscheint |
Die Parameter für Temperatur und top_p steuern die Vielfalt, und die Penalties werden an das Modell weitergegeben. Ändere einen Wert, führe denselben Prompt fünfmal aus und lies die fünf Antworten durch, bevor du den nächsten Wert änderst.
Verwandle es in ein Gespräch
Die API speichert keinen Verlauf. Damit Rook sich erinnert, führe eine Liste und hänge beide Seiten nach jedem Durchlauf an.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.chatbotunfiltered.com/v1",
api_key=os.environ["UF_API_KEY"],
)
messages = [{"role": "system", "content": "You are Rook, a smuggler with a dry sense of humor."}]
def talk(text):
messages.append({"role": "user", "content": text})
r = client.chat.completions.create(model="uncensored", messages=messages)
answer = r.choices[0].message.content
messages.append({"role": "assistant", "content": answer})
return answer
print(talk("Where are we headed?"))
print(talk("And what did I just ask you?"))Die zweite Frage funktioniert nur, weil die erste Unterhaltung in der Liste steht. Das ist auch der Grund, warum die Chat-Kosten mit der Länge steigen: Jeder Turn sendet alles erneut. Die Kosten- und Trade-off-Analyse geht diesen Effekt im Detail durch, und die Preisseite zeigt die Sätze von $0,15 und $0,50 pro 1 Mio. Token.
Zwei Warnungen, wenn die Liste wächst. Die erste sind die Kosten, da lange Historien den Preis jedes Turns erhöhen. Die zweite ist das Fenster: 100.000 Token für Prompt plus Antwort sind großzügig, aber ein Roleplay, das über Wochen läuft, wird es erreichen. Lösche die ältesten Turns, behalte die System-Nachricht, sobald die Liste lang ist, oder ersetze sie durch eine kurze Zusammenfassung.
Häufige Probleme und nächste Schritte
| Problem | Wahrscheinliche Ursache | Lösung |
|---|---|---|
| Authentifizierungsfehler | Falscher oder leerer Schlüssel | Gib die Variable aus, prüfe die Länge, entferne Leerzeichen |
| Nicht gefunden | Base URL fehlt /v1 | Verwende die exakte Basis-URL von dieser Seite |
429 rate_limited | Über 60 Anfragen pro Minute (Trial) | Verlangsame oder verwende einen vollständigen Schlüssel (300 pro Minute) |
429 mit Retry-After: 5 | Vorübergehende Überlastung | Warte 5 Sekunden und versuche es erneut |
| Seltsame oder flache Antworten | Schwacher System-Prompt | Stimme, Setting, Längenbegrenzung hinzufügen |
Fehlgeschlagene oder abgelehnte Anfragen werden nicht berechnet. Für weitere Schritte lies die API-Dokumentation für Tools und JSON-Modus. Das Modell ist nur Text, also gibt es keine Bilder, Audio oder Embeddings. Aufladungen sind von $20 bis $500 in Krypto (USDT auf TRC20 oder USDC auf Base), und Guthaben verfällt nie. Du bist verantwortlich für den Adult-Only-Zugang und die Moderation in allem, was du darauf aufbaust.
Wenn ein Problem nicht in der Tabelle steht, reduziere die Anfrage auf den kleinsten funktionierenden Fall: eine Benutzer-Nachricht, kein System-Prompt, keine zusätzlichen Parameter. Füge dann Teile wieder hinzu, bis es fehlschlägt. Fast jedes Problem bei einer ersten Integration kommt von einem Tippfehler in der URL, einem Schlüssel mit einem nachgestellten Leerzeichen oder einer Nachrichtenliste in der falschen Form.
Behandle Fehler im Code
Ein Skript, das einmal funktioniert, ist kein Bot. Füge einen Retry für die Fälle hinzu, in denen die API dich auffordert zu warten.
import os, time
from openai import OpenAI, RateLimitError
client = OpenAI(
base_url="https://api.chatbotunfiltered.com/v1",
api_key=os.environ["UF_API_KEY"],
max_retries=0,
)
def ask(messages, tries=4):
for i in range(tries):
try:
r = client.chat.completions.create(model="uncensored", messages=messages)
return r.choices[0].message.content
except RateLimitError:
time.sleep(5 * (i + 1))
raise RuntimeError("still rate limited after retries")Das SDK löst RateLimitError bei HTTP 429 aus. Bei temporärer Überlastung sendet die API Retry-After: 5, sodass fünf Sekunden zu warten der richtige erste Schritt ist. Bei wiederholten concurrency-Fehlern puffere Anfragen auf deiner Seite statt schneller zu wiederholen.
Weitere Anleitungen
Häufig gestellte Fragen
Ist eine unzensierte Chatbot-API dasselbe wie die OpenAI-API?
Das Protokoll ist dasselbe, also funktioniert das OpenAI SDK. Das Modell ist anders: ein Open-Weight-Modell eines unabhängigen Anbieters, abgestimmt darauf, ohne Inhaltsablehnungen für legale Erwachsenennutzung zu antworten.
Welche Basis-URL und welches Modell soll ich verwenden?
Basis-URL https://api.chatbotunfiltered.com/v1 und die Modell-ID uncensored.
Muss ich bezahlen, um es auszuprobieren?
Nein. Das $0,50 Testguthaben benötigt keine Zahlungsdetails. Bezahlte Aufladungen sind nur per Krypto.
Kann ich Antworten streamen?
Ja. Setze stream auf true. Eine gestreamte Anfrage belegt einen Concurrency-Slot, bis der Stream endet.
Wie sehe ich mein Guthaben?
Lese den X-Balance-USD Header auf jeder Antwort, oder rufe GET /v1/balance auf.
Hole dir deinen API-Schlüssel sofort
Registriere dich, kopiere deinen Schlüssel, aktualisiere deine Basis-URL. Das Setup ist abgeschlossen.