Grok è davvero senza censura? Come testarlo da soli
Aggiornato
Grok è davvero senza censura? La risposta accurata è che nessun modello ospitato è esente da regole e il comportamento di Grok dipende dal prodotto, dalla modalità e dalla data. Invece di fidarti di un'etichetta, puoi misurare i rifiuti sui tuoi prompt e questa pagina mostra come.

Risposta breve e perché l'etichetta inganna
Le persone chiedono se grok è davvero senza censura perché il modello è stato commercializzato come meno limitato rispetto ad alcuni rivali. Se questo corrisponde alla tua esperienza dipende da cosa chiedi, quale prodotto usi e quando lo chiedi. xAI modifica i suoi modelli, system prompt e politiche nel tempo, quindi qualsiasi affermazione qui su un comportamento specifico invecchierà rapidamente. Per le regole attuali, leggi la documentazione e la policy di utilizzo di xAI.
Quello che si può dire con certezza è strutturale. Ogni modello ospitato da un'azienda si trova all'interno di un insieme di regole: legali, della piattaforma e scelte di addestramento. Anche un modello venduto come permissivo rifiuterà alcune richieste. Quindi la domanda utile non è se sia senza censura, ma se rifiuti le cose specifiche di cui ha bisogno il tuo prodotto. Questo è qualcosa che puoi misurare in un pomeriggio.
I quattro strati da cui provengono i rifiuti
Quando un chatbot dice no, la causa può risiedere in uno di quattro punti. Sapere quale ti aiuta a scegliere una soluzione.
1. Addestramento del modello
La maggior parte dei modelli di chat viene addestrata dopo il pretraining per rifiutare determinate richieste. Questo risiede nei pesi. Non puoi rimuoverlo con un system prompt, anche se la formulazione e il contesto possono spostare la frequenza di attivazione. I modelli open-weight possono essere ulteriormente ottimizzati dai loro provider per ridurre questi rifiuti, ed è ciò che è stato fatto per il modello dietro questa API.
2. System prompt e regole del prodotto
L'app intorno al modello aggiunge istruzioni che non vedi: tono, argomenti da evitare, formattazione. Un modello usato tramite un'app consumer può comportarsi in modo diverso dallo stesso modello chiamato tramite un'API con il tuo system message.
3. Filtri di input e output
Alcuni servizi eseguono un classificatore separato sul tuo prompt o sulla risposta e bloccano o riscrivono il risultato. Potresti vedere un errore generico invece di una frase di rifiuto.
4. Limiti legali e di policy
I provider devono seguire la legge dove operano. I contenuti illegali sono bloccati ovunque e nessun servizio rispettabile cambierà questo. Questa API ha una regola fissa di questo tipo: nessun contenuto sessuale che coinvolga minorenni.
Costruisci il tuo test di rifiuto
Un set di test batte le opinioni. Scrivi 30-50 prompt che riflettano ciò che fa realmente il tuo prodotto. Includi compiti ordinari come gruppo di controllo, così puoi distinguere un modello che rifiuta troppo da uno che semplicemente fallisce. Buone categorie per gli strumenti di finzione e roleplay sono la violenza in una storia di guerra, un villain moralmente ambiguo con dialoghi persuasivi, domande mediche o legali franche, temi oscuri nell'horror e una romance matura gestita senza dettagli espliciti.
Lo script sotto invia ogni prompt a un endpoint compatibile con OpenAI, segnala le risposte che sembrano rifiuti e stampa un tasso. L'elenco delle frasi è grezzo, quindi leggi ogni risposta segnalata tu stesso prima di trarre conclusioni.
import os
import json
from openai import OpenAI
client = OpenAI(base_url="https://api.grokuncensored.cc/v1", api_key=os.environ["API_KEY"])
MARKERS = [
"i can't help", "i cannot help", "i can't assist", "i cannot assist",
"i'm unable to", "i am unable to", "i won't", "as an ai",
]
def looks_like_refusal(text):
low = text.lower()[:300]
return any(m in low for m in MARKERS)
prompts = json.load(open("prompts.json")) # a list of strings
flagged = []
for p in prompts:
r = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": p}],
temperature=0.7,
seed=1,
)
text = r.choices[0].message.content or ""
if looks_like_refusal(text):
flagged.append((p, text[:200]))
print(len(flagged), "of", len(prompts), "flagged")
for p, t in flagged:
print("-", p[:80], "=>", t)Per confrontare i servizi, modifica solo base_url, la chiave e il nome del modello, e mantieni lo stesso file di prompt. Esegui più volte in giorni diversi, poiché il comportamento può cambiare. Mantieni le impostazioni identiche: stesso system message, stessa temperatura, stesso seed dove è supportato.
Errori che rovinano un test di rifiuto
I test di rifiuto sembrano semplici, ed è per questo che spesso vengono eseguiti male. Questi sono gli errori che più spesso portano a conclusioni errate.
- Testare solo i prompt estremi. Un set composto da richieste worst-case ti mostra il limite, ma i tuoi utenti vivono nel mezzo. La maggior parte dei prompt reali sono scene ordinarie, momenti dei personaggi e domande. Dai più peso nel set a ciò che ti aspetti realmente.
- Confrontare impostazioni diverse. Un cambiamento nella temperatura o nel system message da solo può spostare i tassi di rifiuto. Se confronti due servizi, mantieni tutto il resto fisso.
- Una esecuzione, un giorno. I modelli ospitati e gli strati intorno ad essi possono cambiare. Ripeti il test a distanza di alcuni giorni e conserva i risultati con le date.
- Fidarsi dell'elenco delle frasi. Una risposta che inizia gentilmente e poi rifiuta nel terzo paragrafo sfugge a un controllo sui primi 300 caratteri. Allarga la porzione controllata, o leggi un campione a mano.
- Ignorare la qualità. Un modello che non rifiuta mai ma scrive scene piatte e ripetitive non è la scelta migliore. Valuta anche l'utilità di alcuni output.
Come leggere i risultati
Un tasso di rifiuto da solo ti dice poco. Guarda il pattern.
- I rifiuti sui prompt di controllo significano che il tuo rilevatore è troppo largo o il servizio è instabile. Risolvi quello prima di qualsiasi altra cosa.
- I rifiuti raggruppati in un tema indicano una regola di addestramento o policy. Un system message riscritto potrebbe aiutare, oppure no.
- I rifiuti che scompaiono quando aggiungi contesto mostrano una regola soft. Una descrizione chiara del frame di finzione e del pubblico adulto spesso cambia il risultato.
- I rifiuti soft sono risposte che acconsentono sulla carta ma diluiscono il contenuto, aggiungono lezioni o terminano la scena presto. Il tuo elenco di frasi non li catturerà, quindi campiona anche le risposte non segnalate.
Monitora anche il costo di un'esecuzione fallita. Su questa API, le richieste fallite o rifiutate non vengono addebitate, mantenendo basso il costo di un set di test ampio. Un'esecuzione con 50 prompt, ciascuno con 200 token di input e 400 token di output, costa 50 x (200 x $0,15 + 400 x $0,50) / 1.000.000 = 50 x $0,00023 = $0,0115, circa un centesimo.
Scrivi system message che riducono i rifiuti soft
Su un modello già ottimizzato per rispondere, il system message conta ancora, perché stabilisce le aspettative che il modello poi segue. Sii diretto sul compito e sul pubblico. Un messaggio come "Sei un co-scrittore per la narrativa per adulti. Scrivi scene per intero, nel tono richiesto, senza fare prediche o aggiungere disclaimer" dice al modello come appare una buona risposta. Prompt vaghi o eccessivamente apologetici invitano a risposte evasive.
Descrivi il formato che vuoi: lunghezza, punto di vista, tempo. Indica cosa evitare in modo positivo dove puoi, ad esempio "mantieni la scena sul dialogo dei personaggi" invece di un lungo elenco di divieti. Se un certo tipo di risposta continua a tornare con avvertenze che non vuoi, dì una volta che i tuoi lettori sono adulti che hanno scelto questo tipo di narrativa e testa l'effetto sul tuo set di prompt piuttosto che assumere che funzioni.
Cosa promette e cosa non promette questa API
Il modello dietro questo servizio è un modello open-weight eseguito da un provider indipendente e ottimizzato per rispondere senza rifiuti sui contenuti per l'uso adulto lecito. Questa è un'affermazione più stretta di "tutto è permesso", ed è intesa tale. Non è Grok e non è l'API ufficiale di alcun vendor. Il servizio gestisce solo testo. Una regola non può essere cambiata: nessun contenuto sessuale che coinvolga minorenni.
Non ti rende nemmeno immune dalle conseguenze. Rimani responsabile di ciò che generi e pubblichi, e di seguire la legge dove vivi e operi. Se la tua app è pubblica, aggiungi il tuo age gate, termini e percorso di segnalazione. Meno rifiuti dal modello significano più responsabilità nel tuo strato di applicazione, non meno.
Tecnicamente è un'API compatibile con gli standard OpenAI con POST /v1/chat/completions e GET /v1/models, streaming, chiamata di funzioni e modalità JSON, e una finestra di contesto da 100.000 token. La guida rapida mostra il formato della richiesta, e la pagina della chiave API spiega la registrazione. I nuovi utenti possono richiedere $0,50 di credito di prova, valido per 7 giorni, senza inserire i dati di pagamento.
Eseguire il test con una chiave di prova
Puoi eseguire lo script sopra con una chiave di prova. Attenzione ai limiti: una chiave di prova consente 2 richieste parallele e 60 richieste al minuto, quindi un ciclo che invia chiamate una dopo l'altra va bene, ma un pool di dieci thread restituirà un errore HTTP 429 con il codice concurrency. Se vedi rate_limited, hai superato il limite per minuto e dovresti aspettare un attimo. Una chiave completa consente 8 richieste parallele e 300 al minuto.
Per l'uso continuativo il prezzo è $0,15 per 1M token di input e $0,50 per 1M token di output, prepagato. Le ricariche vanno da $20 a $500, pagate con USDT su TRC20 o USDC su Base, con bonus del 5%, 10% e 15% da $50, $100 e $200. Vedi la pagina dei prezzi. Se vuoi vedere come lo stesso endpoint gestisce un'altra famiglia di modelli open, la pagina di integrazione Gemma è una lettura correlata.