IT ▾
Ottieni la chiave API

Generatore di storie AI senza filtri via API

Un generatore di storie che si interrompe a metà scena perché la trama è diventata oscura è un pessimo strumento di scrittura. Questo articolo mostra come costruirlo su un endpoint compatibile con OpenAI, con codice che puoi eseguire oggi.

Aggiornato

Libro aperto con pagine che si trasformano in nastri luminosi che fluiscono in un terminale, rappresentando la generazione di storie via API

Punti chiave

  • Collega qualsiasi SDK OpenAI all'URL di base, usa l'ID del modello uncensored e avrai un motore narrativo in circa venti righe.
  • Un prompt di sistema che imposta genere, tono e regole è più importante di qualsiasi impostazione di campionamento.
  • La finestra di contesto da 100.000 token ti permette di mantenere un'intera bibbia della storia e diversi capitoli in una singola richiesta.
  • Un capitolo da 1.200 token costa circa un decimo di centesimo, quindi il costo raramente è il limite.

Cos'è realmente un generatore di storie senza filtri

Un generatore di storie AI senza filtri è un modello di testo che scrive narrativa senza interrompersi per farti la lezione, cambiare il tuo cattivo con uno gentile o rifiutare una scena perché l'argomento è cupo. Thriller polizieschi, narrativa di guerra, horror, protagonisti moralmente ambigui e romance maturo tra adulti hanno bisogno di un modello che tratti il materiale oscuro come materiale, non come un avviso.

Il servizio dietro questo sito offre un unico modello a pesi aperti, ottimizzato per rispondere senza rifiuti di contenuto per l'uso adulto legale. È ospitato da un provider indipendente e si raggiunge tramite un'API in stile OpenAI. Invii una lista di messaggi, ricevi del testo. Non c'è un editor web da imparare e nessun template da compilare, che è il punto: tu decidi come funziona lo strumento narrativo e il modello fornisce il testo.

Una regola è fissa. I contenuti sessuali che coinvolgono minorenni non sono mai permessi, e nessun prompt cambia questo. Tutto il resto nella narrativa adulta legale è tuo da scrivere. Se vuoi una panoramica generale di come questo si confronti con una piattaforma di personaggi ospitata, la pagina su NoFilter AI versus Character AI la copre.

La tua prima storia in venti righe di Python

Poiché l'API segue il formato OpenAI, il pacchetto ufficiale openai funziona senza modifiche. Devi solo sostituire l'URL di base e la chiave. Installalo con pip install openai, poi esegui questo.

from openai import OpenAI

client = OpenAI(
    base_url="https://api.nofilterai.cc/v1",
    api_key="YOUR_KEY",
)

resp = client.chat.completions.create(
    model="uncensored",
    temperature=0.9,
    messages=[
        {"role": "system", "content": (
            "You are a fiction author. Write in third person, past tense. "
            "Use concrete detail and subtext. Never summarise the scene, "
            "never moralise, never address the reader."
        )},
        {"role": "user", "content": (
            "Genre: noir crime. Setting: a flooded harbour town. "
            "Write the opening 600 words. A smuggler finds a body in his net."
        )},
    ],
)
print(resp.choices[0].message.content)

L'ID del modello è uncensored. La chiave proviene dalla pagina della chiave API. Se non ti sei ancora registrato, i nuovi utenti possono richiedere $0,50 di credito di prova lì con un clic, valido per 7 giorni, quindi questo primo script non ti costa nulla.

La stessa chiamata funziona da curl, il che è utile per testare un prompt prima di avvolgerlo nel codice.

curl https://api.nofilterai.cc/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [
      {"role": "user", "content": "Write a 200 word horror scene set in a lighthouse."}
    ]
  }'

Struttura del prompt per produrre narrativa utilizzabile

La maggior parte degli output deludenti da un modello di storie deriva da istruzioni vaghe, non dal modello. Tre parti del prompt fanno il lavoro pesante.

Il messaggio di sistema imposta l'autore, non l'argomento

Inserisci qui le regole di voce narrativa: punto di vista, tempo verbale, ritmo delle frasi, cosa evitare. Una riga come "non terminare le scene con una riflessione su ciò che tutto significa" elimina un'abitudine condivisa da molti modelli linguistici. Mantieni questo messaggio stabile in tutto il progetto in modo che i capitoli suonino simili.

Il messaggio utente imposta il ritmo

Dai una scena alla volta. Nomina i personaggi, il luogo, cosa cambia alla fine della scena e una lunghezza target. "Scrivi 700 parole. Mara affronta suo fratello riguardo al libro mastro mancante. Non ottiene una risposta" è molto meglio di "continua la storia".

Una bibbia della storia viaggia insieme

Mantieni un breve blocco con i fatti dei personaggi, la cronologia finora e le trame aperte, e invialo con ogni richiesta. Una bibbia da 800 token costa quasi nulla e impedisce al modello di cambiare il colore degli occhi o resuscitare un personaggio.

  • Usa temperature intorno a 0,8-1,0 per la stesura e 0,5-0,7 per le revisioni.
  • Usa le sequenze stop se generi in un formato fisso, ad esempio fermandoti a una riga che recita "FINE SCENA".
  • Usa presence_penalty e frequency_penalty leggermente se il modello ripete frasi preferite. Entrambi vengono passati al modello.
  • Usa seed quando vuoi confrontare due versioni del prompt in condizioni di parità.

Mantenere la coerenza di una storia lunga

La finestra di contesto è di 100.000 token, contando prompt e risposta insieme. Questo è spazio per una bibbia della storia completa, i capitoli precedenti e un nuovo capitolo di output in una singola richiesta. Per la maggior parte dei progetti di narrativa puoi smettere di preoccuparti dei trucchi di memoria per molto tempo.

Un semplice loop gestisce una storia serializzata. Mantieni una lista corrente di messaggi, aggiungi ogni capitolo che il modello scrive e aggiungi la tua prossima istruzione. Quando la lista si avvicina al limite, sostituisci i capitoli più vecchi con un breve riassunto che chiedi anche al modello di scrivere.

from openai import OpenAI

client = OpenAI(base_url="https://api.nofilterai.cc/v1", api_key="YOUR_KEY")

bible = "Mara Voss, 34, ferry pilot. Brother Teo owes money. Setting: Harbor Nine, rain every night."
history = [{"role": "system", "content": "Fiction author. Third person, past tense. No moralising.\nBible: " + bible}]

def write(beat):
    history.append({"role": "user", "content": beat})
    r = client.chat.completions.create(model="uncensored", messages=history, temperature=0.85)
    text = r.choices[0].message.content
    history.append({"role": "assistant", "content": text})
    return text

print(write("Chapter 1, 700 words: Mara finds Teo's boat adrift."))
print(write("Chapter 2, 700 words: she searches the cabin and finds a second ledger."))

Quando raggiungi il limite, non troncare silenziosamente. Un modello che perde l'inizio della storia spesso mantiene la trama ma dimentica i piccoli fatti. Un riassunto scritto di 500-800 token, inserito dopo il messaggio di sistema, mantiene vivi quei fatti a un piccolo costo.

Le richieste fallite o rifiutate non vengono addebitate, quindi una ritentativa dopo un errore non raddoppia mai la tua fattura. L'elenco completo dei parametri è nella documentazione API.

Streaming e narrativa interattiva

Per un'avventura testuale o un assistente di scrittura in diretta, vuoi le parole sullo schermo mentre arrivano. Imposta stream: true e leggi gli eventi inviati dal server. I numeri di utilizzo arrivano alla fine dello stream.

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.nofilterai.cc/v1",
  apiKey: process.env.NOFILTER_KEY,
});

const stream = await client.chat.completions.create({
  model: "uncensored",
  stream: true,
  messages: [
    { role: "system", content: "You are the narrator of a survival horror text adventure. Second person, present tense." },
    { role: "user", content: "I open the cellar door." },
  ],
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

Si applicano due limiti pratici. Una chiave completa permette 8 richieste parallele e 300 richieste al minuto; una chiave di prova permette 2 e 60. Una richiesta streaming occupa la sua slot di concorrenza fino alla fine dello streaming, quindi un lettore lento su una pagina web può bloccare una slot più a lungo del previsto. Se superi un limite ricevi HTTP 429 con il codice di errore rate_limited o concurrency. In caso di sovraccarico breve ricevi anche un 429 con Retry-After: 5, e aspettare cinque secondi prima di ritentare è la risposta corretta.

Perché le storie generate diventano piatte e le soluzioni

Anche senza rifiuti, un modello può scrivere narrativa noiosa. Le cause comuni sono facili da correggere una volta che le conosci.

Il primo è il riflesso del riassunto. Lasciato a se stesso, un modello comprime gli eventi in un riassunto ordinato. Chiedi una scena, indica la sua lunghezza e vieta i riassunti nel messaggio di sistema. Il secondo è l'omogeneità: ogni personaggio parla nello stesso registro educato. Assegna a ogni personaggio parlante una nota di voce di due righe, come "conciso, non finisce mai le frasi" o "formale, usa i titoli anche per gli amici". Il terzo è la mancanza di posta in gioco. Una battuta come "parlano del piano" produce riempitivo, mentre "lei ha bisogno che lui accetti prima dell'alba, e lui lo sa" produce tensione.

Infine, leggi l'output come un editore. Se la stessa forma di frase apre quattro paragrafi di fila, dillo al modello nella prossima richiesta e chiedi una riscrittura. Stai guidando, non accettando qualsiasi cosa arrivi. Gli scrittori che trattano il primo output come una bozza ottengono capitoli molto migliori di quelli che si aspettano un lavoro finito.

Quanto costa una storia

La tariffazione è $0,15 per 1M token di input e $0,50 per 1M token di output, da credito prepagato senza abbonamento. Il credito non scade mai. I numeri qui sotto sono calcolati da quei due prezzi.

CompitoToken in ingressoToken in uscitaCosto
Un capitolo con bibbia e testo precedente3,0001,200$0.00045 + $0.0006 = $0.00105
100 tali capitoli300,000120,000$0.045 + $0.06 = $0.105
Sessione interattiva: 50 turni, contesto da 20.000 token ciascuno, risposte da 1.000 token1,000,00050,000$0.15 + $0.025 = $0.175
Una richiesta che riempie la finestra con input100,0000$0.015

Anche cento capitoli costano circa dieci centesimi. Le ricariche partono da $20 e arrivano fino a $500 in qualsiasi importo intero, con un bonus del 5% da $50, 10% da $100 e 15% da $200. Il pagamento è solo in cripto, usando USDT su TRC20 o USDC su Base. I dettagli attuali sono nella pagina dei prezzi.

La cattiva abitudine costosa è reinviare una cronologia molto lunga a ogni turno di una storia interattiva. Riassumi i turni precedenti e i tuoi token di input diminuiscono rapidamente.

Consigli pratici e limiti

Alcuni punti ti fanno risparmiare tempo una volta che inizi a costruire.

  • Solo testo. Il servizio non genera immagini, audio o video e non offre embedding o fine-tuning. Per la copertina o la voce, usa un altro strumento.
  • La modalità JSON aiuta con la struttura. Richiedi response_format: {"type":"json_object"} quando vuoi che il modello restituisca una scheda personaggio o un elenco di scene che il tuo codice analizza.
  • I tuoi prompt non sono usati per l'addestramento. Questo è importante se il tuo manoscritto è inedito.
  • Modifica per iterazioni. Redigi a una temperatura alta, poi invia di nuovo la bozza con un'istruzione per stringere il dialogo o tagliare gli avverbi a una temperatura più bassa.
  • Verifica l'output. Un modello senza filtri seguirà la tua direzione, quindi il tono che ottieni è il tono che hai chiesto.

Il modello è un modello a pesi aperti generale, non l'API ufficiale di un fornitore, quindi testalo sul tuo genere prima di costruire un prodotto intorno ad esso. Inizia con il credito di prova e alcuni capitoli reali.

Domande e risposte

Esiste un modo gratuito per provare un generatore di storie senza filtri tramite l'API?

I nuovi utenti possono richiedere $0,50 di credito di prova con un clic nella pagina della chiave API dopo l'accesso. Non richiede pagamento, è valido per 7 giorni ed è limitato a uno per persona.

Quanto può essere lunga una singola richiesta di storia?

La finestra di contesto è di 100.000 token, condivisa tra il prompt e la risposta. La risposta può utilizzare tutto ciò che il prompt lascia libero e max_tokens è opzionale.

Posso usarlo con strumenti che supportano già OpenAI?

Sì. Qualsiasi client che ti permette di impostare un URL di base e una chiave personalizzati funziona, utilizzando l'ID del modello uncensored. I metodi supportati sono POST /v1/chat/completions e GET /v1/models.

C'è qualche contenuto che il modello non scriverà?

I contenuti sessuali che coinvolgono minorenni non sono mai consentiti. Oltre a questo, il modello è ottimizzato per rispondere senza rifiuti sui contenuti per l'uso adulto legale.

Memorizzate o addestrate i miei racconti?

I prompt non vengono usati per l'addestramento.

La tua chiave è a un modulo di distanza

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