NL ▾

Begin met proeftegoed

E-mail en wachtwoord, de sleutel staat meteen op het scherm.

https://api.uncensoredllmhub.com/v1

Uncensored LLM Hub: één endpoint voor chat en agents

De uncensored llm hub is een gehoste, OpenAI-compatible tekst-API met één model en één base URL. Deze pagina laat een praktische setup zien voor een chat-app en een agent erbovenop.

Bijgewerkt

Gloeiend centrum verbonden met een chatvenster, agent en documenten

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:

  1. Houd het system prompt en elke vaste referentietekst aan het begin.
  2. Bewaar de meest recente beurten letterlijk.
  3. 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.
  4. Lees usage.prompt_tokens uit 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.

Vragen en antwoorden

Welke model-ID gebruik ik?

Gebruik uncensored als model-ID in elk verzoek. Stel de base URL in op https://api.uncensoredllmhub.com/v1 en stuur je sleutel als Bearer-token.

Werkt het met mijn bestaande OpenAI-code?

Ja. Elke OpenAI SDK of client werkt zodra je de base URL en sleutel aanpast. Chatcompleties, streaming, function calling en JSON-modus worden ondersteund.

Kan het afbeeldingen of embeddings genereren?

Nee. Het is een tekst-API zonder afbeeldingen, audio of video, geen embeddings en geen fine-tuning.

Hoe groot kan een gesprek worden?

Het contextvenster is 100.000 tokens, gedeeld door de prompt en het antwoord. De request body kan tot 8 MB zijn.

Je sleutel is nog maar één formulier verwijderd

Maak een account aan, kopieer de sleutel, pas de basis-URL aan. Dat is de hele installatie.

API-sleutel aanvragen

https://api.uncensoredllmhub.com/v1