Belangrijkste punten
- Het $0,50 proeftegoed is genoeg voor enkele honderden korte rollenspelbeurten, geldig 7 dagen, geen betaling nodig.
- Elk front-end dat een OpenAI-compatible endpoint accepteert werkt: stel de base URL, sleutel en model
uncensoredin. - De kosten worden bepaald door de lengte van de chatgeschiedenis, niet door de antwoordlengte. Knip of vat oude beurten samen.
- Alleen fictie en rollenspel voor volwassenen. Geen enkele betrokkenheid van minderjarigen, ooit.
Wat 'gratis' hier betekent
Er is geen onbeperkt gratis chatten op deze dienst, en het is beter om dat vooraf duidelijk te zeggen. Wat je krijgt is een proefsaldo: na het aanmelden met Google, of met een e-mail en wachtwoord, kun je $0,50 aan proeftegoed claimen met één klik op de API-sleutelpagina. Het is één per persoon, geldig voor 7 dagen, en vereist geen betaling. De proef-sleutel werkt met 2 gelijktijdige verzoeken en 60 verzoeken per minuut, wat meer dan genoeg is voor één persoon die chat.
Dat klinkt weinig, maar tokens zijn goedkoop. Input kost $0,15 per 1M tokens en output kost $0,50 per 1M. Een typische rollenspelbeurt met een prompt van 8.000 tokens en een antwoord van 300 tokens kost $0,00135, dus $0,50 dekt ongeveer 370 beurten. Voor veel mensen is dat een hele avond of enkele korte verhalen, genoeg om te beslissen of de setup bij je past voordat er geld aan te pas komt.
Als het proeftegoed op is, laad je op vanaf $20 in hele bedragen tot $500. Tegoed vervalt nooit, mislukte of geweigerde verzoeken worden niet in rekening gebracht, en er is geen abonnement om op te zeggen. Deze site accepteert alleen crypto: USDT op TRC20 of USDC op Base.
Kies een front-end
De API spreekt alleen tekst via HTTP. Je hebt nog steeds iets nodig om je karakters, je chatgeschiedenis en je prompt-sjabloon vast te houden. Drie veelgebruikte keuzes:
- SillyTavern. Een lokale webapp gebouwd voor karakterchats, met lorebooks, persona's en presets. Het laat je een OpenAI-compatible endpoint toevoegen, wat precies is wat deze API is.
- Een andere chatclient die velden blootlegt voor een aangepaste OpenAI-compatible URL. Zoek naar instellingen genaamd custom endpoint, proxy of OpenAI-compatible.
- Je eigen script. Vijftig regels Python geven je volledige controle over geheugen, prompts en kosten. Het is ook de makkelijkste manier om te zien wat je eigenlijk verstuurt.
Als je een app bouwt en niet alleen chat, werken dezelfde calls vanuit elke OpenAI SDK. De quickstart in de docs geeft de endpoints, headers en limieten op één plek weer.
Verbind SillyTavern in vijf stappen
- Maak een account aan, open de API-sleutelpagina, claim het proeftegoed en kopieer je sleutel.
- Open in SillyTavern het stekkerpictogram (API-verbindingen) en stel het API-type in op Chat Completion.
- Kies de bron met de naam Custom (OpenAI-compatible).
- Plak
https://api.uncensoredvideo.cc/v1in het veld voor het aangepaste endpoint, je sleutel in het sleutelveld en typuncensoredals de model-ID. - Druk op Connect. Een groene status betekent dat het verzoek naar
GET /v1/modelsof een testbericht geslaagd is.
Menu-labels verschuiven tussen SillyTavern-versies, dus volg het idee en niet de exacte bewoording. Voordat je de app de schuld geeft, test je de sleutel vanaf een terminal:
curl https://api.uncensoredvideo.cc/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"Reply with the word ready."}]}'Als curl werkt en de app niet, dan zit het probleem in de velden van de app: een ontbrekende /v1, een losse spatie in de sleutel, of de verkeerde modelnaam.
Of schrijf een kleine chatlus
Een script is een goede manier om te leren wat een rollenspel kost, omdat je het token-gebruik op elke beurt kunt afdrukken. Deze houdt een persona-prompt vast, knipt de geschiedenis bij tot de laatste 20 berichten en streamt het antwoord.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.uncensoredvideo.cc/v1",
api_key=os.environ["API_KEY"],
)
system = (
"You are Mara, a dry-witted smuggler pilot in a space-opera story. "
"Stay in character, write in third person, keep replies under 150 words."
)
history = []
while True:
user = input("> ")
history.append({"role": "user", "content": user})
messages = [{"role": "system", "content": system}] + history[-20:]
stream = client.chat.completions.create(
model="uncensored",
messages=messages,
temperature=0.9,
top_p=0.95,
max_tokens=300,
stream=True,
stream_options={"include_usage": True},
)
reply = ""
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
piece = chunk.choices[0].delta.content
reply += piece
print(piece, end="", flush=True)
if chunk.usage:
print("\n[tokens in/out: %d/%d]" % (chunk.usage.prompt_tokens, chunk.usage.completion_tokens))
history.append({"role": "assistant", "content": reply})Houd de gebruikslinie in de gaten. Na enkele tientallen beurten zie je het input-aantal stijgen terwijl de output gelijk blijft. Dat is het getal dat je moet beheren.
Schrijf een karakterprompt die standhoudt
De meeste rollenspelproblemen beginnen in de eerste prompt, niet in het model. Een goede karakterprompt is kort en specifiek. Noem het karakter, geef een stem in één of twee zinnen, beschrijf de setting en geef aan hoe lang antwoorden moeten zijn. Stop dan. Elke extra regel is een token waar je voor betaalt op elke beurt, en een lange lijst met doe's en doe niet's wordt vaak minder goed opgevolgd dan een duidelijk voorbeeld.
Vergelijk twee manieren om dezelfde piloot te beschrijven. De eerste zegt dat ze dapper, grappig, loyaal en slim is. Dat vertelt het model niets wat het kan uitvoeren. De tweede zegt dat ze vragen beantwoordt met eerst een grap en daarna de waarheid, nooit haar verleden uitlegt tenzij twee keer gevraagd, en mild vloekt als een schiponderdeel kapot gaat. De tweede geeft het model gewoontes om te herhalen, en gewoontes zijn wat lezers ervaren als persoonlijkheid.
Voeg één kort voorbeeldgesprek van drie of vier regels toe. Modellen kopiëren ritme zeer goed, dus een voorbeeld fixeert lengte, werkwoordstijd en perspectief zonder een aparte regel. Als je in de tweede persoon schrijft, toon het dan. Als je narratie in cursief wilt, toon dat dan ook. Zet het voorbeeld in de system prompt of als de eerste berichten van de geschiedenis.
Bepaal ten slotte wie de andere karakters bestuurt. Als je wilt dat het model een hele cast speelt, zeg dat dan. Als je wilt dat het maar één rol speelt, zeg dan dat het nooit de woorden of acties van jouw karakter mag schrijven. Een stopsequentie op de naam van jouw karakter ondersteunt dit op API-niveau.
Wat een rollenspelbeurt kost
Elk verzoek herverstuurt de system prompt, de karakterbeschrijving en de geschiedenis, dus input-tokens groeien naarmate de chat langer wordt. Hier is de rekenkunde voor een antwoord van 300 tokens, wat alleen al 300 x $0,50 / 1.000.000 = $0,00015 kost:
| Grootte van de prompt | Input kosten | Kosten per beurt | Per 100 beurten | Beurten op $0,50 |
|---|---|---|---|---|
| 4.000 tokens | $0,0006 | $0,00075 | $0,075 | ongeveer 666 |
| 8.000 tokens | $0,0012 | $0,00135 | $0,135 | ongeveer 370 |
| 20.000 tokens | $0,0030 | $0,00315 | $0,315 | ongeveer 158 |
| 50.000 tokens | $0,0075 | $0,00765 | $0,765 | ongeveer 65 |
De conclusie is eenvoudig. Een strakke prompt van 8.000 tokens is ongeveer 5,7 keer goedkoper dan een van 50.000 tokens voor hetzelfde aantal beurten. Op het niveau van 8.000 tokens betaalt een opwaardering van $20 voor ongeveer 14.800 beurten. Grotere opwaarderingen geven een bonus: +5% vanaf $50, +10% vanaf $100 en +15% vanaf $200, dus $100 geeft $110 aan tegoed. Zie de prijzenpagina voor de volledige tabel.
Houd lange verhalen goedkoop en coherent
Het contextvenster is 100.000 tokens, prompt plus antwoord, dus je kunt veel laden. Dat hoef je zelden. Lange prompts kosten meer en geven het model meer tekst om de draad kwijt te raken. Enkele gewoontes helpen:
- Samenvatten, dan verwijderen. Vraag elke 20 beurten het model om een samenvatting van 150 woorden van het verhaal tot nu toe, houd het in de system prompt en verwijder de oude berichten.
- Houd het karakterblad kort. Een pagina regels die het model negeert, is een pagina waar je op elke beurt voor betaalt.
- Beperk het antwoord.
max_tokensis optioneel, maar een limiet stopt weglopende antwoorden en houdt het tempo strak. - Stel sampling af. Temperature rond 0,8 tot 1,0 past bij fictie. Als het model zinnen herhaalt, verhoog dan de frequentie- of aanwezigheidsstraf iets. Ze worden doorgegeven.
- Gebruik
stop-sequenties zodat het model niet jouw tekstregels voor je wegschrijft, bijvoorbeeld een stop op de naam van je personage gevolgd door een dubbele punt.
Vaste seeds worden ook doorgegeven, wat helpt als je een scène wilt herhalen en twee promptversies wilt vergelijken.
Veelvoorkomende problemen en snelle oplossingen
Dit zijn de problemen die mensen het vaakst tegenkomen in lange chats, met de instelling die meestal helpt.
- Het model spreekt voor jou. Voeg een regel toe aan de system prompt, plus een stopsequentie op de naam van je personage.
- Antwoorden worden elke beurt langer. Het model kopieert de lengte van eerdere antwoorden. Verlaag
max_tokens, bewerk één lang antwoord met de hand en het patroon wordt gereset. - Herhalende zinnen. Verhoog de temperatuur iets, voeg een kleine aanwezigheids- of frequentiestraf toe en varieer je eigen berichten. Het model spiegelt wat het ziet.
- Vergeten details. Zet feiten die moeten blijven bestaan, zoals namen, verwondingen en beloftes, in een korte vastgepinde notitie bovenaan de prompt en vernieuw deze als het verhaal verandert.
- Een vlakke toon. Geef een sterker voorbeeld van de stem. Toon komt veel meer van voorbeelden dan van bijvoeglijke naamwoorden.
Als er iets vreemds gebeurt, print dan de volledige lijst van berichten die je script verstuurt. In negen van de tien gevallen is de oorzaak zichtbaar in de prompt zelf: een achtergebleven instructie, een gedupliceerde samenvatting of geschiedenis die niet is bijgesneden.
Limieten en fouten die je kunt tegenkomen
Een volledige sleutel staat 8 gelijktijdige verzoeken en 300 verzoeken per minuut toe, de proefsleutel 2 en 60. Als je dit overschrijdt, retourneert de API HTTP 429. De foutcode rate_limited betekent te veel verzoeken per minuut, en concurrency betekent te veel in één keer. Een 429 met een Retry-After: 5 header signaleert tijdelijke overbelasting, dus wacht vijf seconden en probeer het opnieuw.
Eén detail verrast veel mensen: een gestreamd verzoek houdt zijn concurrency-slot vast totdat de stream klaar is. Als je drie keer snel op opnieuw genereren klikt met een proefsleutel, kan de derde poging falen met concurrency. Wacht tot de stream eindigt of laat de client opnieuw proberen na een korte pauze. Elk antwoord bevat ook X-Balance-USD, zodat je script het resterende saldo na elke beurt kan afdrukken.
Een regel die niet verandert: het model is afgestemd om zonder inhoudelijke weigeringen te antwoorden voor legaal gebruik door volwassenen, en het zal geen seksuele inhoud met minderjarigen schrijven. Houd je verhalen binnen die grens. Prompts worden niet gebruikt voor training.
