Esempio di modalità Unhinged di Grok: prompt e chiamate API
Cerchi un esempio della modalità unhinged di Grok? Qui trovi cinque richieste eseguibili che replicano lo stile sciolto, diretto e senza prediche su un modello uncensored, con il codice esatto e ciò che puoi aspettarti da ciascuna.

Punti chiave
- Lo stile unhinged deriva dal system prompt; il modello stesso non rifiuta le richieste adulte legali.
- Cinque esempi coprono persona, narrativa, modalità JSON, chiamata di funzioni e streaming.
- Gli output variano tra le esecuzioni, quindi fissa un seed quando confronti i prompt.
- Un esempio di esecuzione con 400 token di input e 600 token di output costa $0.00036.
Cosa significa l'etichetta "Unhinged" e come differisce
"Unhinged" è diventato un soprannome per uno stile di conversazione nel prodotto di chat Grok di xAI: irriverente, sarcastico, pronto a imprecare, riluttante a fare una predica prima di rispondere. Se vuoi un esempio di modalità unhinged di Grok per la tua app, la domanda utile è quali parti di quello stile puoi riprodurre tramite un'API.
Tutto, in pratica, perché lo stile è principalmente istruzione. Questo sito esegue un modello a pesi aperti, ospitato da un provider indipendente e ottimizzato per rispondere senza rifiuti di contenuti per l'uso adulto lecito. Non è l'API di Grok e non è affiliata a xAI. Ciò che ottieni è l'assenza di rifiuti più la libertà di impostare il tono tu stesso con un messaggio di sistema.
Una nota sull'onestà: gli esempi seguenti mostrano le richieste esattamente come le invieresti e descrivono il tipo di risposta che ti aspetti. Il testo generato varia ad ogni esecuzione, quindi non incollo un singolo campione e lo chiamo tipico. Esegui ciascuno con la tua chiave e leggi il risultato. Il credito di prova lo copre.
Ogni esempio utilizza le stesse tre parti di configurazione: il base URL https://api.unhingedgrok.com/v1, una chiave bearer nell'intestazione Authorization e l'ID del modello uncensored. Se puoi inviare una di esse, puoi inviare tutte e cinque, e qualsiasi client compatibile con OpenAI accetterà gli stessi valori. Scegli il linguaggio in cui lavori già e salta gli altri.
Esempio 1: un personaggio di recensore diretto
Il test più semplice è un prompt di sistema che cambia l'atteggiamento, nient'altro. La richiesta chiede un feedback su una funzione e al personaggio viene detto di essere diretto piuttosto che maleducato per il gusto di esserlo.
curl https://api.unhingedgrok.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"temperature": 0.9,
"messages": [
{"role": "system", "content": "You are a grumpy senior engineer. Say what is wrong in plain words, no compliments, no hedging, at most 120 words."},
{"role": "user", "content": "Review: def avg(xs): return sum(xs)/len(xs)"}
]
}'Aspettati una risposta breve e opinata che punti alla divisione per lista vuota e probabilmente brontoli per le hint di tipo mancanti. Senza il messaggio di sistema la stessa domanda di solito restituisce una recensione equilibrata e amichevole. Quel divario tra le due risposte è l'intero "modo".
Esempio 2: una scena di narrativa dark
È qui dove i rifiuti fanno più male su altri servizi. Uno scrittore di thriller ha bisogno di un antagonista minaccioso e una scena con una minaccia dovrebbe sembrare una minaccia. Mantieni il focus sui personaggi adulti e sulla narrativa lecita.
from openai import OpenAI
client = OpenAI(base_url="https://api.unhingedgrok.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
temperature=0.95,
frequency_penalty=0.4,
seed=42,
messages=[
{"role": "system", "content": "You write adult crime fiction in a cold, precise voice. No disclaimers, no moralising. All characters are adults."},
{"role": "user", "content": "Scene: a loan shark visits a bakery owner who is three weeks late. Under 300 words, ending on the owner's decision."},
],
)
print(resp.choices[0].message.content)Cosa cercare: tensione trasmessa dal dialogo e dai dettagli, nessun paragrafo alla fine che spiega che l'intimidazione è sbagliata, e una fine che rispetta il tuo brief. Se la voce è troppo piatta, aumenta leggermente la temperatura. Se ripete frasi, aumenta frequency_penalty. Impostare seed ti permette di rieseguire la richiesta esatta e confrontare dopo aver modificato una riga del prompt.
Esempio 3: modalità JSON per personaggi e dati di gioco
Meno filtrato non significa meno strutturato. La modalità JSON funziona con lo stesso modello, il che la rende utile per generare NPC, ganci di quest o alberi di dialogo che il codice del tuo gioco può analizzare.
curl https://api.unhingedgrok.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"response_format": {"type": "json_object"},
"messages": [
{"role": "system", "content": "Return only JSON with keys name, age, secret, catchphrase. Characters are adults."},
{"role": "user", "content": "Create a corrupt harbour inspector for a noir game."}
]
}'Menziona la parola JSON e le chiavi nel prompt, come sopra; è il modo più affidabile per ottenere la forma che vuoi. Analizza comunque il risultato all'interno di un blocco try. Una risposta troncata è la causa solita di un errore di analisi, quindi controlla finish_reason prima di dare la colpa al modello.
Esempio 4: chiamata di funzioni per un master di gioco
Un narratore di roleplay che inventa i risultati dei dadi è facile da prendere in fallo. Assegna uno strumento e lascia che il tuo codice lanci i dadi. La chiamata di funzioni segue il formato OpenAI: tools, tool_choice e i risultati restituiti come messaggi con ruolo tool.
import json, random
from openai import OpenAI
client = OpenAI(base_url="https://api.unhingedgrok.com/v1", api_key="YOUR_KEY")
tools = [{
"type": "function",
"function": {
"name": "roll_dice",
"description": "Roll a die with the given number of sides",
"parameters": {
"type": "object",
"properties": {"sides": {"type": "integer"}},
"required": ["sides"],
},
},
}]
messages = [
{"role": "system", "content": "You are a ruthless game master. Use roll_dice for any risky action and narrate the result."},
{"role": "user", "content": "I try to pick the lock on the warlord's strongbox."},
]
first = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
call = first.choices[0].message.tool_calls[0]
sides = json.loads(call.function.arguments)["sides"]
messages.append(first.choices[0].message)
messages.append({"role": "tool", "tool_call_id": call.id, "content": str(random.randint(1, sides))})
final = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
print(final.choices[0].message.content)In produzione, controlla che tool_calls sia presente prima di indicizzarlo. Il modello potrebbe decidere che aprire una serratura non richiede un lancio, specialmente a una temperatura bassa.
Esempio 5: streaming di una risposta mentre viene scritta
Le app di chat sono più piacevoli quando il testo appare parola per parola. Imposta stream a true e leggi i chunk SSE; l'utilizzo arriva alla fine.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.unhingedgrok.com/v1",
apiKey: process.env.API_KEY,
});
const stream = await client.chat.completions.create({
model: "uncensored",
stream: true,
messages: [
{ role: "system", content: "You are a deadpan late-night host. Two paragraphs, dry humour." },
{ role: "user", content: "Roast my plan to rewrite the whole app over a weekend." },
],
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}Una richiesta in streaming mantiene il suo slot di concorrenza fino alla fine dello stream. Su una chiave di prova con 2 richieste concorrenti, due stream aperti significano che una terza chiamata restituisce 429 con codice concurrency. Chiudi gli stream che non leggi più.
Ottimizzazione del tono una volta che le basi funzionano
Dopo la prima esecuzione, la maggior parte degli sforzi va in piccoli aggiustamenti. Le stesse cinque richieste possono essere spinte in direzioni molto diverse senza cambiare il modello o l'endpoint.
Esegui un test A/B sul messaggio di sistema
Invia un messaggio utente due volte con lo stesso seed, una volta senza messaggio di sistema e una volta con il tuo personaggio. Poiché il seed è fisso, la differenza tra le due risposte deriva dal messaggio di sistema e non dalla fortuna del campionamento. Fai questo prima di scrivere un prompt lungo e di nuovo dopo ogni modifica. Se una frase nel tuo prompt non cambia l'output, cancellala e risparmia i token di input.
Descrivi l'atteggiamento, non l'etichetta
La parola "Unhinged" dice molto poco al modello. Una riga come "rispondi prima alla domanda, poi aggiungi un'osservazione onesta e leggermente maleducata" gli dà qualcosa da eseguire. Lo stesso vale per il sarcasmo: nomina il bersaglio (il piano, il codice, la situazione) così le battute colpiscono qualcosa di diverso dall'utente.
Mantieni una modalità normale accanto a quella sciolta
La maggior parte delle app ne ha bisogno entrambe. Una funzione di chat potrebbe volere la voce irriverente, mentre la parte che scrive riepiloghi degli ordini o messaggi di errore ha bisogno di un tono neutro. Mantieni due prompt di sistema nel tuo codice e scegli uno per chiamata. L'ID del modello e l'endpoint restano gli stessi, quindi il cambio costa zero.
Controlla la lunghezza
I personaggi sciolli divagano. Indica un intervallo di parole nel prompt, ad esempio "sotto le 150 parole", e vedrai risposte più brevi e incisive e una fattura di output più piccola. I token di output costano di più rispetto a quelli di input a $0,50 per 1M contro $0,15, quindi ridurre le risposte è il risparmio più economico disponibile.
Esecuzione economica degli esempi e cosa resta escluso
Ogni esempio è piccolo. Supponiamo che un'esecuzione invii 400 token di input e ne riceva 600. L'input costa 400 x $0,15 / 1.000.000 = $0,00006, l'output costa 600 x $0,50 / 1.000.000 = $0,0003, quindi l'esecuzione costa $0,00036. Il credito di prova di $0,50 copre ben oltre mille tali esecuzioni, anche se la finestra di 7 giorni e il limite di concorrenza di 2 richieste sono i limiti reali. I dettagli completi sono nella pagina dei prezzi.
Per iniziare, crea la tua chiave API e segui la avvio rapido per la configurazione del client. Il pagamento per ricariche più grandi è solo in cripto, USDT su TRC20 o USDC su Base.
Due limiti si applicano a ogni esempio. Il modello è solo testo, quindi nessuna immagine, audio o embedding. E i contenuti sessuali che coinvolgono minorenni non sono mai permessi. Tutto il resto qui riguarda la narrativa per adulti e l'uso legale, ed è lì che un modello senza filtri dimostra il suo valore.
Altre guide
Domande e risposte
È uguale alla modalità unhinged di Grok?
No. Grok è il prodotto di xAI. Questa è un'API indipendente che serve un modello a pesi aperti; ricrei lo stile con un prompt di sistema.
Otterrò lo stesso output degli esempi?
Nessuna esecuzione corrisponde a meno che tu non fissi il seed. Tratta ogni esempio come una richiesta da eseguire tu stesso, poi valuta la risposta.
Il modello può rifiutare una richiesta?
È ottimizzato per rispondere senza rifiuti di contenuto per l'uso adulto legale. Le richieste fallite o rifiutate non vengono addebitate.
Quale client dovrei usare per i test?
Qualsiasi cosa compatibile con OpenAI: gli SDK Python o Node.js di OpenAI, curl, SillyTavern o Open WebUI. Imposta l'URL di base, la chiave e l'ID del modello uncensored.
Ti manca solo un modulo per la tua chiave
Crea un account, copia la chiave, modifica l'URL di base. È tutta la configurazione.