IT ▾
Ottieni la chiave API

NsfwAiApiGuida

Miglior LLM locale per il roleplay o un'API ospitata?

Il miglior LLM locale per il roleplay è il modello senza censura più grande che la tua GPU può contenere con una qualità che accetti, e questa risposta cambia ogni pochi mesi. Se preferisci saltare l'hardware, un endpoint ospitato ti offre la stessa esperienza di chat con un solo cambio di URL.

Aggiornato

Illustrazione isometrica che confronta una GPU locale e un cluster di server ospitati uniti da bolle di chat

Locale o ospitata: la decisione rapida

Scegli il locale se possiedi già una GPU capace, vuoi tutto offline o ti piace ottimizzare i modelli. Scegli l'ospitata se vuoi una lunga memoria in una storia, usi un laptop o uno smartphone, o preferisci spendere minuti invece di weekend per la configurazione. Molte persone fanno entrambe le cose: un modello locale per esperimenti privati e uno ospitato per campagne lunghe.

FattoreModello localeAPI Ospitata
Modello di costoHardware ed energia, nessuna tariffa per tokenPaga per token dal credito prepagato
Dimensioni del modelloLimitato dalla memoria della tua GPUQualunque sia il modello eseguito dal provider
Lunghezza del contestoLimitato dalla memoria, poiché un contesto più lungo ne richiede di più100.000 token qui
PrivacyNulla lascia la tua macchinaI prompt viaggiano verso il provider; qui non vengono usati per l'addestramento
ConfigurazioneRuntime, pesi, quantizzazione, aggiornamentiUn URL base e una chiave
Funziona da qualsiasi dispositivoSolo se esponi la tua macchinaSì

Cosa decide davvero il miglior modello locale

Le classifiche dei migliori LLM locali per il roleplay invecchiano in fretta e nessun nome va bene per tutti. Valuta i candidati in base a ciò che emerge in una sessione reale.

  • Comportamento di rifiuto. Molti modelli base e istruiti sono stati ottimizzati per rifiutare alcuni temi. I modelli affinati per la narrativa o marcati come senza censura di solito rifiutano meno, ma la qualità varia: testali con le tue scene.
  • Mantenimento del personaggio. Cerca un modello che non divaghi narrando le azioni del tuo personaggio, non ripeta le stesse frasi a ogni turno e non dimentichi chi è nella stanza.
  • Qualità della prosa. Leggi dieci risposte di fila. Alcuni modelli vanno bene per un turno ma stancano alla decima.
  • Gestione del contesto. Un modello può pubblicizzare una finestra di contesto lunga e comunque perdere dettagli nel mezzo. Esegui un test in cui un fatto iniziale diventa rilevante più tardi.
  • Dimensione e quantizzazione. Un modello più grande compresso in una quantizzazione pesante può perdere più qualità di uno più piccolo eseguito con maggiore precisione. Confronta, non dare per scontato.

I thread della community e le schede dei modelli per il runtime che usi sono il posto giusto per le raccomandazioni attuali. Scarica due o tre candidati, esegui la stessa scena su ciascuno e tieni quello che ti fa continuare la storia.

Quando lo spazio locale finisce

Il muro che la maggior parte dei roleplayer incontra è la memoria, e si presenta in due punti. Il primo è il modello stesso: un modello più grande scrive meglio ma richiede più memoria GPU. Il secondo è il contesto. Ogni messaggio in una storia lunga viene inviato di nuovo con ogni nuovo turno, e la cache che lo contiene cresce con la lunghezza, quindi una campagna lunga può saturare una GPU che gestisce bene le chat brevi.

Le solite soluzioni alternative consistono nel riassumere i turni precedenti, nell’usare librerie di lore che iniettano solo fatti rilevanti e nel ridurre la dimensione del contesto. Funzionano e richiedono anche sforzo. Un endpoint ospitato con una finestra di contesto da 100.000 token ti permette di mantenere ben più della storia in piena visibilità, il che è ideale per campagne lunghe, mondi condivisi con molti personaggi e storie che durano per settimane.

Il compromesso è il costo, quindi è utile misurarlo. Supponiamo che una chat abbia 30.000 token di cronologia e il modello generi 300 token per risposta. Un turno costa 30.000 token di input a $0,15 per 1M, ovvero $0,0045, più 300 token di output a $0,50 per 1M, ovvero $0,00015. Sono $0,00465 per turno, o $0,465 per 100 turni. Una lunga serata di gioco costa ben meno di un dollaro. La pagina prezzi elenca i tassi e i livelli bonus per ricarichi più grandi.

Una configurazione ospitata funzionante in Python

L'endpoint è compatibile con OpenAI, quindi il pacchetto ufficiale openai funziona senza modifiche tranne per l'URL base e la chiave. L'ID del modello è uncensored. Ottieni prima una chiave dalla pagina delle chiavi API; i nuovi account possono richiedere un credito di prova di $0,50 con un clic, senza bisogno di dettagli di pagamento.

Questo script mantiene una cronologia continua, effettua lo streaming della risposta e taglia i turni vecchi per mantenere il prompt piccolo. Il prompt di sistema è la parte che vale la pena curare: definisce l'ambientazione, le regole e lo stile.

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.nsfwaiapi.com/v1",
    api_key=os.environ["NSFWAIAPI_KEY"],
)

SYSTEM = '''You are the narrator and all non-player characters in an adult fiction roleplay.
Setting: a rain-soaked port city, late autumn, gaslight and smuggler politics.
Rules:
- Write in third person, past tense, 2 to 4 short paragraphs per reply.
- Never write the player's actions, words or thoughts. Stop where the player decides.
- Keep each character's voice and goals consistent. Track who is present in the scene.
- All characters are adults. Do not write sexual content involving minors under any circumstances.
- Stay in the story. No disclaimers or out-of-character commentary unless the player asks with (OOC).'''

history = [{"role": "system", "content": SYSTEM}]
MAX_TURNS = 40  # keep the last 40 messages besides the system prompt

def say(user_text):
    history.append({"role": "user", "content": user_text})
    trimmed = [history[0]] + history[1:][-MAX_TURNS:]
    stream = client.chat.completions.create(
        model="uncensored",
        messages=trimmed,
        temperature=0.9,
        top_p=0.95,
        frequency_penalty=0.3,
        max_tokens=600,
        stream=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)
    print()
    history.append({"role": "assistant", "content": reply})

say("I push open the door of the Gull and Anchor and look for the harbor master.")

Poiché la finestra è di 100.000 token, puoi aumentare MAX_TURNS molto prima che il taglio diventi necessario. Il taglio è comunque una buona abitudine: prompt più corti costano meno e mantengono il modello focalizzato sugli eventi recenti.

Impostazioni client per SillyTavern e app simili

La maggior parte delle interfacce per il gioco di ruolo ha uno schermo di connessione per una fonte di completamento chat compatibile con OpenAI o personalizzata. Ad esempio, SillyTavern ti permette di aggiungere un endpoint compatibile con OpenAI. I campi sono gli stessi ovunque:

  • URL base o endpoint: https://api.nsfwaiapi.com/v1. Alcune app richiedono il percorso completo che termina con /chat/completions; se l'app richiede una URL base, fermati a /v1.
  • Chiave API: la tua chiave, inviata come token bearer.
  • Modello: uncensored. Se l'app può recuperare un elenco di modelli, può chiamare GET /v1/models.
  • Streaming: attivo. Le risposte appaiono mentre vengono scritte e l'app può interrompere anticipatamente se non ti piace la direzione.

Per il campionamento, una temperatura intorno a 0,8-1,0 si adatta bene al testo narrativo, con top_p vicino a 0,95. Una piccola penalità di frequenza o presenza riduce le frasi ripetute che le chat lunghe tendono ad accumulare. Aumenta la penalità solo se vedi ripetizione, poiché valori elevati rendono la prosa stranamente evitante. Le sequenze di stop vengono trasmesse, quindi aggiungere il nome del giocatore seguito dai due punti come stringa di stop aiuta se un modello cerca di parlare per te. Imposta la dimensione del contesto dell'app a quello che vuoi pagare; non devi riempire tutti i 100.000 token.

Tieni presente la concorrenza se esegui diverse schede di chat o un bot per amici. Una chiave completa permette 8 richieste concorrenti e 300 al minuto, mentre una chiave di prova ne permette 2 e 60. Una risposta in streaming mantiene il suo slot fino alla fine dello stream, quindi una scheda bloccata può consumare uno slot. La documentazione elenca i limiti e le intestazioni di risposta, tra cui X-Balance-USD, che mostra il tuo credito residuo.

Una piccola routine per mantenere sani i racconti lunghi

Le sessioni lunghe di gioco di ruolo vanno male in modi prevedibili e alcune abitudini prevengono la maggior parte dei problemi. Scrivi un breve riassunto della storia ogni 20 o 30 turni e tienilo in cima al prompt, dopo il messaggio di sistema. Aggiornalo manualmente o chiedi al modello di produrlo, poi verifica che nomi, luoghi e promesse siano sopravvissuti. Blocca i fatti che non devono mai essere dimenticati, come le relazioni e le trame aperte, direttamente nel prompt di sistema.

Se una risposta va in una direzione che non ti piace, rigenerala invece di discutere con essa nella chat. Le discussioni inquinano la cronologia e insegnano al modello che la scena riguarda la discussione. Quando vuoi davvero guidare, aggiungi una riga chiara tra parentesi, ad esempio una nota sull'umore della scena successiva, e lascia che la risposta successiva la trasporti. Mantieni i nomi dei personaggi coerenti e fornisci a ogni personaggio non giocatore una nota vocale di una riga, perché i modelli confondono i personaggi che suonano simili.

Limiti onesti di questo modello

È un modello a pesi aperti, eseguito da un provider indipendente e ottimizzato per rispondere senza rifiuti sui contenuti per l'uso adulto legale. Non è l'API ufficiale di alcun fornitore di modelli e non è un router tra diversi. Non puoi scegliere tra i modelli e non dovresti aspettarti che corrisponda ai migliori modelli chiusi in ogni attività.

Genera solo testo. Non ci sono immagini per i tuoi personaggi, nessuna voce e nessun embedding per la ricerca in una lorebook, quindi se vuoi ritratti o voce devi aggiungere un servizio separato per ciascuno. Non c'è nemmeno il fine-tuning. La qualità dipenderà anche dal tuo prompt: un system prompt vago dà una narrativa vaga, e un buon profilo personaggio con dialoghi di esempio fa più di qualsiasi regolazione del campionamento.

Una regola è fissa. I contenuti sessuali che coinvolgono minorenni non sono consentiti e un'impostazione che cerca di produrlo non sarà supportata. Tieni i personaggi adulti e mantieni il tuo utilizzo legale. Per la narrativa, le app companion e le chat per personaggi destinate agli adulti, la combinazione di meno rifiuti e una finestra di contesto lunga è la parte utile.

Domande e risposte

Un LLM locale è meglio di un'API ospitata per il roleplay?

Nessuno vince ovunque. Il locale ti dà privacy offline e nessun costo per token, mentre il servizio in cloud ti dà un contesto più lungo e nessun limite hardware. Molte persone usano entrambi.

Posso usare SillyTavern con questa API?

Sì. SillyTavern e app simili accettano un endpoint compatibile con OpenAI. Inserisci https://api.nsfwaiapi.com/v1 come URL, la tua chiave e l'ID del modello uncensored.

Quanto contesto può usare una sessione di roleplay?

La finestra di contesto è di 100.000 token, contando il prompt e la risposta insieme. Le chat lunghe costano di più perché la cronologia viene inviata ad ogni turno.

Genera immagini o voce per i miei personaggi?

No. Il servizio è solo testuale, senza generazione di immagini, audio o video e senza embedding.

La tua chiave è a un modulo di distanza

Crea un account, copia la chiave, modifica l'URL di base. È tutta la configurazione.

Ottieni la chiave API

NsfwAiApiAPI LLM senza censura per la generazione di testo NSFW