Was man mit einer unzensierten Text-API meint
Wenn du nach einer NSFW-IA-API gesucht hast, willst du wahrscheinlich eines: ein Modell, das du aus deinem eigenen Code aufrufen kannst, das nicht mitten in einer Geschichte mit einer Ablehnung aussteigt. Im Spanischen und Portugiesischen ist die Abkürzung „IA“ (inteligencia artificial, inteligência artificial), weshalb Suchanfragen wie „ia nsfw“ häufig sind. Das Bedürfnis ist in jeder Sprache dasselbe: Fiktion, Rollenspiel und Begleiter-Apps für Erwachsene, aufgebaut auf einem Modell, das dem System-Prompt folgt, den du geschrieben hast.
Hauptstrom-Modelle sind darauf trainiert, eine breite Palette von Anfragen abzulehnen. Das ist für einen allgemeinen Assistenten vernünftig, aber es zerstört eine Story-App. Das hier ist ein einzelnes Open-Weight-Modell, betrieben von einem unabhängigen Anbieter und darauf abgestimmt, ohne Inhaltsfilter für legale Adult-Nutzung zu antworten. Es ist nicht die offizielle API eines großen Anbieters und kein Router, der deine Anfrage an das Modell eines anderen weiterleitet.
Du sprichst es so an, wie du OpenAI ansprichst: JSON über HTTPS, ein Bearer-Token und ein messages-Array. An deinem Client muss sich nichts ändern, außer zwei Strings.
Was du tatsächlich aufrufst
Halte die Fakten an einem Ort bereit, bevor du mit dem Coden beginnst.
- Basis-URL:
https://api.nsfwia.com/v1 - Modell-ID:
uncensored - Auth:
Authorization: Bearer YOUR_KEY - Endpunkte:
POST /v1/chat/completions,POST /v1/responsesundGET /v1/models - Kontextfenster: 100.000 Token, Prompt und Completion zusammen
- Funktionen: Streaming über SSE, Function Calling, JSON-Modus und Durchreichen von temperature, top_p, stop, seed und den Penalties
Es ist nur Text. Es gibt keine Bild-, Audio- oder Videoerzeugung, keine Embeddings und kein Fine-Tuning. Wenn dein Produkt diese Funktionen braucht, kombiniere diese API mit anderen Diensten dafür.
Sende deine erste Anfrage
Erstelle ein Konto, öffne die API-Schlüssel-Seite und kopiere deinen Schlüssel. Neue Nutzer können dort mit einem Klick $0,50 Testguthaben beanspruchen, gültig für 7 Tage. Dann führe dies aus:
curl https://api.nsfwia.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [
{"role": "system", "content": "You are a novelist writing for adult readers. Stay in character."},
{"role": "user", "content": "Open a noir story set in a rainy port city."}
],
"temperature": 0.9
}'
Der gleiche Aufruf mit dem offiziellen Python SDK:
from openai import OpenAI
client = OpenAI(
base_url="https://api.nsfwia.com/v1",
api_key="YOUR_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "You are a novelist writing for adult readers."},
{"role": "user", "content": "Open a noir story set in a rainy port city."},
],
temperature=0.9,
)
print(resp.choices[0].message.content)
Wenn die Antwort Text zurückgibt, ist die Einrichtung abgeschlossen. Ein 401 bedeutet, dass der Schlüssel falsch ist oder ein Leerzeichen enthält. Ein 404 bedeutet meist, dass die Basis-URL den Pfad /v1 nicht enthält.
Streaming und System-Prompts
Story- und Chat-Apps wirken ohne Streaming langsam. Setze stream: true und lese die Server-Sent Events, sobald sie eintreffen. Die Nutzungsdaten kommen am Ende des Streams.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.nsfwia.com/v1",
apiKey: process.env.NSFW_API_KEY,
});
const stream = await client.chat.completions.create({
model: "uncensored",
stream: true,
messages: [
{ role: "system", content: "You are the narrator of an adult interactive fiction game." },
{ role: "user", content: "Describe the tavern the player just entered." },
],
});
for await (const part of stream) {
process.stdout.write(part.choices[0]?.delta?.content ?? "");
}
Da das Modell beim Genre nicht widerspricht, wird der System-Prompt zur Hauptsteuerung. Definiere das Setting, den Ton, die Perspektive und die gewünschte Länge. Füge dort auch harte Regeln ein, wie „keine Inhalte mit Minderjährigen“ oder „bleib in der Geschichte“. Ein klarer System-Prompt verbessert die Ausgabequalität mehr als jede Sampling-Einstellung.
Strukturierte Ausgabe und Tools
Apps brauchen oft Daten, keine Prosa: ein Charakterbogen, ein Inventar, eine Liste von Optionen für den Spieler. Füge response_format: {"type": "json_object"} hinzu und gib im Prompt an, welche Schlüssel du erwartest; die Antwort ist dann ein JSON-Objekt, das du parsen kannst. Für Game-Logik übergibst du tools mit Funktionsdefinitionen. Wenn das Modell mit tool_calls antwortet, führe die Funktion in deinem Code aus und sende das Ergebnis mit role: "tool" zurück. Beide Funktionen funktionieren auch im Streaming, sodass ein Erzähler eine Szene beschreiben und gleichzeitig eine Würfelfunktion aufrufen kann.
Halte jede Änderung klein, wenn du die Ausgabe abstimmst. Ändere eine Einstellung nach der anderen, z. B. senke temperature für gleichmäßigeren Text oder füge eine Präsenzstrafe hinzu, wenn das Modell sich wiederholt, und vergleiche dann die Ergebnisse auf demselben Prompt mit einem festen seed.
Prompts auf Spanisch oder Portugiesisch schreiben
Es hindert dich niemand daran, den System-Prompt und die Benutzereingaben auf Spanisch oder Portugiesisch zu senden. Einige Entwickler halten den System-Prompt auf Englisch, damit der Benutzer in seiner eigenen Sprache schreibt; das hält die Anweisungen stabil, während die Geschichte lokal bleibt. Andere schreiben alles in der Sprache des Benutzers. Teste beide Varianten an deinen eigenen Beispielszenen und vergleiche, da wir keine Sprachbenchmarks veröffentlichen und die richtige Wahl von deinem Inhalt abhängt.
Die Artikel auf dieser Website sind auf Englisch, aber der API ist es egal, welche Sprache das JSON enthält. Unser Mythen versus Fakten-Artikel behandelt häufige Missverständnisse über unzensierte Modelle, einschließlich dessen, was „unzensiert“ bedeutet und was nicht.
Limits und Kosten
| Position | Wert |
|---|---|
| Input-Preis | $0,15 pro 1 Mio. Token |
| Output-Preis | 0,50 $ pro 1M Token |
| Voll-Key | 8 gleichzeitige Anfragen, 300 Anfragen pro Minute |
| Test-API-Schlüssel | 2 gleichzeitige Anfragen, 60 Anfragen pro Minute |
| Maximale Anforderungskörpergröße | 8 MB |
Ein typischer Roleplay-Turn mit 2.000 Input-Token und 500 Output-Token kostet $0,0003 für Input plus $0,00025 für Output, also insgesamt $0,00055. Das $0,50-Testguthaben deckt daher etwa 900 solcher Turns ab. Fehlgeschlagene oder abgelehnte Anfragen werden nicht berechnet, und Prepaid-Guthaben verfällt nie. Aufladungen laufen von $20 bis $500 in Krypto (USDT auf TRC20 oder USDC auf Base), mit einem Bonus von 5 % ab $50, 10 % ab $100 und 15 % ab $200. Vollständige Details findest du auf der Preisseite.
Wenn du ein Limit überschreitest, erhältst du HTTP 429. Der Fehlercode rate_limited bedeutet zu viele Anfragen pro Minute, und concurrency bedeutet zu viele gleichzeitig. Eine gestreamte Anfrage belegt ihren Slot bis zum Stream-Ende, also schließe Streams, die du nicht mehr liest.
Geltende Regeln
Der Service ist nur für die legale Nutzung durch Erwachsene bestimmt. Inhalte, die Minderjährige betreffen, sind eine harte Grenze und sind unter keinen Umständen akzeptabel, egal wie sie dargestellt werden. Prompts werden nicht zum Training verwendet. Behalte deine Altersprüfungen, Einwilligungs-Bildschirme und lokalen gesetzlichen Pflichten in deinem eigenen Produkt, denn die API gibt dir ein leistungsfähiges Textmodell und nichts weiter. Die vollständige Referenz für Anfragen findest du in der Dokumentation.
