Belangrijkste punten
- Eén base URL en één model-ID, uncensored, werken met elke OpenAI SDK of client.
- Streaming, function calling en JSON-modus worden ondersteund, met een contextvenster van 100.000 tokens.
- Een volledige sleutel staat 8 gelijktijdige verzoeken en 300 per minuut toe, dus plan een kleine wachtrij voor drukke apps.
- De facturatie is $0,15 per 1M input tokens en $0,50 per 1M output tokens van prepaid tegoed, en prompts worden niet gebruikt voor training.
Wat je krijgt van één endpoint
Mensen zoeken naar de uncensored llm hub als ze een model willen dat antwoordt zonder inhoudelijke weigeringen voor wettelijk volwassen gebruik, maar geen GPUs willen draaien. De service is een eenvoudige HTTPS-API. Je wijst een OpenAI-client naar https://api.uncensoredllmhub.com/v1, stuurt het model-ID uncensored en verifieert met Authorization: Bearer YOUR_KEY. Er zijn twee methoden: POST /v1/chat/completions voor gesprekken en GET /v1/models voor het opsommen.
Het is goed om duidelijk te hebben wat er achter dat endpoint zit. Het is één open-weight model, gerund door een onafhankelijke provider en afgestemd op het overslaan van inhoudelijke weigeringen. Het is niet de officiële API van een grote leverancier en het is geen router die tussen modellen kiest. Het verwerkt alleen tekst: geen afbeeldingen, audio, video, embeddings of fine-tuning. Er geldt één harde regel zonder uitzondering: geen seksuele inhoud met minderjarigen.
Dat smalle bereik is het punt. Een enkel stabiel endpoint is makkelijk om rond te bouwen. De volgende secties tonen een kleine chat-backend, dan een agent-loop, en daarna de limieten waar je rekening mee moet houden.
Stap 1: verbind een bestaande client
Omdat de API het OpenAI-formaat volgt, hoef je zelden nieuwe clientcode te schrijven. Open je SDK of tool, wijzig de base URL en de sleutel, en stel het model in op uncensored. Meld je eerst aan op de API-sleutelpagina (Google, of e-mail en wachtwoord), claim daarna met één klik het $0.50 proeftegoed. Het proeftegoed vereist geen kaart, duurt 7 dagen en is beperkt tot één per persoon.
Een minimaal verzoek in Python:
from openai import OpenAI
client = OpenAI(
base_url="https://api.uncensoredllmhub.com/v1",
api_key="YOUR_API_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "You are a concise assistant for a writing tool."},
{"role": "user", "content": "Give me three opening lines for a mystery set on a ferry."},
],
temperature=0.9,
top_p=0.95,
)
print(resp.choices[0].message.content)
Sampling-instellingen zoals temperature, top_p, stop, seed en de frequentie- en aanwezigheidsstraffen worden doorgegeven aan het model, dus de knoppen die je kent van andere providers werken op dezelfde manier. Dezelfde call werkt in tools die een aangepast OpenAI-compatible endpoint accepteren, bijvoorbeeld SillyTavern of Open WebUI: plak de base URL, voeg de sleutel toe en typ het model-ID handmatig.
Stap 2: stream antwoorden naar een chatinterface
Chat-apps voelen traag aan als de gebruiker naar een leeg vak staart totdat het volledige antwoord is aangekomen. Streaming lost dat op. Stel stream: true in en de API stuurt het antwoord als server-sent events, met usage aan het einde van de stream. Hier is een Node-versie die tokens doorstuurt zodra ze aankomen:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.uncensoredllmhub.com/v1",
apiKey: process.env.API_KEY,
});
export async function streamReply(history, onToken, signal) {
const stream = await client.chat.completions.create(
{ model: "uncensored", messages: history, stream: true },
{ signal }
);
let text = "";
for await (const chunk of stream) {
const piece = chunk.choices[0]?.delta?.content ?? "";
if (piece) {
text += piece;
onToken(piece);
}
}
return text;
}
Twee gewoontes besparen je later veel gedoe. Geef altijd een abortsignaal door en annuleer dit als de gebruiker het tabblad sluit of op stop drukt. Een gestreamd verzoek bezet zijn gelijktijdige verbindingsruimte tot de stream eindigt, dus verwaarloosde streams verbruiken je tegoed. Bewaar ook de volledige tekst die je hebt samengesteld, want die voeg je toe aan de geschiedenis als assistant message voor de volgende beurt.
Als je vage fouten ziet in je front end tijdens het streamen, behandelt onze gids over het diagnosticeren van streaming-fouten de gebruikelijke oorzaken, zoals een verkeerde basis-URL, een proxy die events bufferd en de twee 429-codes.
Stap 3: gebruik de lange context doelbewust
Het contextvenster is 100.000 tokens, gedeeld door de prompt en het antwoord. Voor een verhaalschrijftool, een karakterchat of een documentassistent is dat ruimte voor een lange geschiedenis, een groot system prompt en referentiemateriaal tegelijk. Je hoeft max_tokens niet in te stellen; het antwoord gebruikt wat er over is.
Lange context is goedkoop om te proberen tegen deze prijzen. Het hele venster vullen met input kost 0,1 × $0,15 = $0,015 voor 100.000 input tokens. Voeg een antwoord van 2.000 tokens toe (0,002 × $0,50 = $0,001) en een bijna volledige call kost $0,016. Je zult het venster toch willen beheren om drie redenen: latentie groeit met promptgrootte, elke beurt stuurt de geschiedenis opnieuw zodat kosten oplopen over een sessie, en zeer lange geschiedenis verduwt de instructies bovenaan.
Een eenvoudig beleid werkt goed:
- Houd het system prompt en elke vaste referentietekst aan het begin.
- Bewaar de meest recente beurten letterlijk.
- Wanneer de geschiedenis een door jou gekozen drempel passeert, bijvoorbeeld 60.000 tokens, vraag het model dan om het oudste deel samen te vatten tot een korte notitie en vervang die beurten ermee.
- Lees
usage.prompt_tokensuit elke response om te weten hoe groot het volgende verzoek zal zijn, in plaats van te schatten op basis van karakters.
Stap 4: tools en gestructureerde output voor agents
Agents hebben twee dingen nodig van een model: een manier om functies aan te roepen, en output die je kunt parseren. Beide worden ondersteund. Tool calling gebruikt de standaard tools en tool_choice parameters, tool calls kunnen worden gestreamd en resultaten gaan terug als berichten met role: "tool". Een enkele roundtrip ziet er zo uit:
import json
from openai import OpenAI
client = OpenAI(
base_url="https://api.uncensoredllmhub.com/v1",
api_key="YOUR_API_KEY",
)
tools = [{
"type": "function",
"function": {
"name": "lookup_order",
"description": "Find an order by its number.",
"parameters": {
"type": "object",
"properties": {"order_id": {"type": "string"}},
"required": ["order_id"],
},
},
}]
messages = [{"role": "user", "content": "Where is order A-1042?"}]
first = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
msg = first.choices[0].message
if msg.tool_calls:
call = msg.tool_calls[0]
args = json.loads(call.function.arguments)
result = {"order_id": args["order_id"], "status": "shipped"} # your real lookup goes here
messages.append(msg)
messages.append({"role": "tool", "tool_call_id": call.id, "content": json.dumps(result)})
final = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
print(final.choices[0].message.content)
Valideer altijd de argumenten voordat je iets met neveneffecten uitvoert. Een model kan een foutieve of onverwachte waarde produceren en jouw code is de laatste verdedigingslinie.
Voor eenvoudige gestructureerde output zonder tools, gebruik JSON-modus met response_format ingesteld op {"type": "json_object"}. Beschrijf de gewenste vorm ook in de prompt en parse het antwoord binnen een try-blok zodat een slechte response een herhaling triggert in plaats van een crash.
curl https://api.uncensoredllmhub.com/v1/chat/completions -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" -d '{
"model": "uncensored",
"response_format": {"type": "json_object"},
"messages": [
{"role": "system", "content": "Reply with JSON: {"title": string, "tags": [string]}"},
{"role": "user", "content": "Describe a noir story set in a rainy port city."}
]
}'
Limieten om rond te ontwerpen
Een volledige sleutel staat 8 gelijktijdige verzoeken en 300 verzoeken per minuut toe. Een trialsleutel staat 2 en 60 toe. De body kan maximaal 8 MB zijn. Elke response bevat X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests en X-RateLimit-Limit-Concurrency, wat nuttig is om te loggen.
Wanneer je een limiet passeert, retourneert de API HTTP 429. De code is rate_limited voor te veel verzoeken per minuut en concurrency voor te veel tegelijk. Een tijdelijke overload retourneert ook 429, met Retry-After: 5. Voor een app voor meerdere gebruikers, plaats een kleine wachtrij voor de API: een semafoor kleiner dan de concurrency limiet en een herhaling die Retry-After respecteert. Voor een agent die uitwaaiert naar parallelle tool calls, beperk de uitwaaiing tot hetzelfde aantal.
De volledige parameterlijst en foutopmaak staan in de API-documentatie.
Kosten, top-ups en gegevensverwerking
Prijzen zijn $0,15 per 1M input tokens en $0,50 per 1M output tokens, van prepaid tegoed. Er is geen abonnement, tegoed vervalt nooit en mislukte of geweigerde verzoeken worden niet in rekening gebracht. Een chatbeurt van 1.500 input en 500 output tokens kost 0,0015 × $0,15 + 0,0005 × $0,50 = $0,000225 + $0,00025 = $0,000475, dus $20 aan tegoed dekt ongeveer 42.000 zulke beurten.
Je kunt elk bedrag van $20 tot $500 opwaarderen. De bonus is +5% vanaf $50, +10% vanaf $100 en +15% vanaf $200. Betaal met een kaart (Visa, Mastercard, Apple Pay, Google Pay) of crypto (USDT op TRC20, USDC op Base). De prijzenpagina heeft de huidige tabel.
Over gegevens: prompts worden niet gebruikt voor training. Lees het privacybeleid voor de volledige tekst. Je blijft verantwoordelijk voor wat je bouwt met het model, en de service is bedoeld voor wettelijk volwassen gebruik alleen.
