Guida rapida per utenti OpenRouter NSFW
Integra la nostra API LLM senza censura nel tuo codice esistente aggiornando l'URL base e la chiave API. Questa guida copre gli endpoint standard compatibili con OpenAI, lo streaming e la gestione dei vincoli per l'uso diretto degli sviluppatori.
URL base e autenticazione
Sostituisci l'URL base del tuo provider attuale con https://api.openrouternsfw.com/v1. L'autenticazione utilizza l'intestazione standard Authorization: Bearer <key>. Ottieni la tua chiave immediatamente dopo esserti registrato tramite Google o email nella pagina Ottieni chiave API. Non è richiesto il numero di telefono e la chiave viene visualizzata una sola volta, quindi copiala prima di lasciare la pagina.
Il nostro servizio è un'API indipendente, non un rivenditore di modelli di altri fornitori. L'identificatore del modello che invii nelle richieste è uncensored, che viene eseguito sui nostri server. È ottimizzato per rispondere senza rifiuti di contenuti per l'uso adulto lecito, ma non è GPT, Claude o il modello di qualsiasi altro fornitore nominato.
Assicurati che la tua libreria client sia configurata per utilizzare questo nuovo URL base. Tutte le richieste devono includere una chiave API valida nell'intestazione. Se la chiave manca o non è valida, il server restituisce un errore 401. Se non hai credito prepagato, ricevi un errore 402. Questi sono codici di stato HTTP standard che indicano problemi di autenticazione o pagamento, non errori del server.
Endpoint completamenti chat
La funzionalità principale è fornita tramite l'endpoint POST /v1/chat/completions. Questo endpoint accetta un corpo JSON contenente il nome del modello, l'array di messaggi e parametri opzionali. Restituisce un oggetto JSON con il testo generato, le statistiche di utilizzo dei token e il motivo di fine. Questa struttura è compatibile con gli SDK ufficiali di OpenAI e la maggior parte delle librerie client compatibili con OpenAI.
Non è necessario scrivere client HTTP personalizzati se preferisci utilizzare un SDK. Tuttavia, devi aggiornare la configurazione per puntare al nostro URL base. L'esempio seguente mostra una richiesta di completamento standard utilizzando cURL. Questa richiesta invia un prompt al modello senza censura e si aspetta una risposta testuale.
curl https://api.openrouternsfw.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'Ricorda che questa API serve solo testo. Non ci sono endpoint per embedding, generazione di immagini, audio o video. Se la tua applicazione richiede input o output multimodali, dovrai gestirli separatamente. Il nostro servizio si concentra esclusivamente sulla generazione di testo di alta qualità con un modello senza censura.
Integrazione SDK Python
L'uso dell'SDK Python semplifica il processo di integrazione. Inizializza il client con l'URL base corretto e la tua chiave API. La libreria gestisce per te le richieste HTTP e l'analisi JSON. Puoi specificare l'ID del modello come uncensored per assicurarti di utilizzare il nostro modello specifico.
from openai import OpenAI
client = OpenAI(base_url="https://api.openrouternsfw.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)Questo frammento di codice mostra come inviare un messaggio e recuperare la risposta. Il client gestisce automaticamente la connessione e la segnalazione degli errori. Se il server restituisce un errore, l'SDK genera un'eccezione. Dovresti gestire queste eccezioni nella logica della tua applicazione per fornire una migliore esperienza utente.
L'SDK Python è solo un'opzione. Puoi utilizzare qualsiasi linguaggio che supporti le richieste HTTP. La struttura dell'endpoint rimane la stessa indipendentemente dal client che scegli. Questa flessibilità ti consente di integrare il modello senza censura in qualsiasi flusso di lavoro esistente senza modifiche significative al codice.
Utilizzo SDK Node.js
L'SDK Node funziona in modo simile alla versione Python. Configura il client con l'URL base e la chiave API, quindi chiama il metodo di completamento della chat. Questo approccio è ideale per applicazioni lato server o servizi backend che devono generare testo in modo asincrono.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openrouternsfw.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);Gli sviluppatori Node.js possono integrare facilmente questa API nei loro progetti esistenti. L'SDK gestisce la serializzazione e la deserializzazione dei dati JSON. Puoi anche specificare parametri aggiuntivi come temperature o top_p per controllare la casualità dell'output.
Assicurati di gestire correttamente la natura asincrona delle richieste. Utilizza async/await o le catene di promesse per gestire i dati di risposta. Questo garantisce che la tua applicazione rimanga reattiva mentre attendi che il modello generi il testo. L'SDK Node è una scelta affidabile per la creazione di servizi di generazione di testo scalabili.
Risposte in streaming
Abilita lo streaming impostando il parametro stream su true nella tua richiesta. Il server invierà una serie di eventi Server-Sent (SSE) invece di una singola risposta JSON. Ogni evento contiene un frammento parziale del testo generato.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)Lo streaming è utile per le applicazioni in tempo reale in cui desideri visualizzare l'output mentre viene generato. L'ultimo frammento dello streaming contiene l'utilizzo totale dei token per la richiesta. Questo ti consente di monitorare i costi con precisione senza attendere il completamento dell'intera risposta.
Gestisci con cura gli eventi dello streaming per assicurarti che il testo venga assemblato correttamente. Concatena i frammenti nell'ordine in cui vengono ricevuti. Il server garantisce che i frammenti vengano inviati in sequenza. Se la connessione viene interrotta, potresti dover ripetere la richiesta. Lo streaming è una funzionalità potente che migliora l'esperienza utente per le attività di generazione del testo.
Limiti di Richiesta e Finestra di Contesto
Ogni chiave API è limitata a 300 richieste al minuto e 8 richieste parallele. La dimensione del corpo della richiesta è limitata a 8 MB. Se superi questi limiti, il server restituisce il codice di stato 429. Si tratta di un codice di stato HTTP standard che indica che hai inviato troppe richieste in un determinato intervallo di tempo. Dovresti implementare un meccanismo di backoff esponenziale nel tuo client per gestire questi errori in modo elegante.
La finestra di contesto supporta fino a 100.000 token per il prompt e il completamento combinati. Non esiste un limite separato per l'output. Se non specifichi il parametro max_tokens, la risposta può estendersi fino alla fine della finestra. Puoi limitare la lunghezza dell'output impostando max_tokens su un valore più basso.
Monitora l'utilizzo dei token per gestire efficacemente il tuo credito prepagato. Gli errori e i rifiuti non consumano token, quindi non ti vengono addebitati per le richieste fallite. Questo garantisce che paghi solo per la generazione di testo riuscita. Tieni d'occhio i tuoi limiti di richiesta per evitare interruzioni nel servizio.
Specifiche tecniche
Tutti i limiti e le funzioni reali dell'API in un unico posto: controllali prima di ricaricare.
| Voce | Valore |
|---|---|
| Formato | compatibile OpenAI: qualsiasi SDK OpenAI funziona cambiando base URL e chiave |
| Autenticazione | Authorization: Bearer YOUR_KEY |
| Endpoint | POST /v1/chat/completions · GET /v1/models |
| Base URL | https://api.openrouternsfw.com/v1 |
| ID modello | uncensored |
| Modalità JSON | response_format: {"type": "json_object"} |
| Output massimo | fino al resto della finestra di 100.000 token; max_tokens opzionale (nessun limite separato) |
| Finestra di contesto | 100.000 token (input + output) |
| Parametri | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Function calling | sì — tools, tool_choice; risposte con tool_calls anche in streaming; risultati come role: tool |
| Streaming | sì — server-sent events; l'ultimo blocco riporta l'uso dei token |
| Header | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Dimensione | fino a 8 MB per richiesta |
| Concorrenza | 8 richieste contemporanee per chiave |
| Limite di frequenza | 300 richieste al minuto per chiave |
| Ricarica | USDT (TRC20) o USDC (Base), qualsiasi importo intero da $20 a $500 |
| Scadenza | il credito pagato non scade, nessun abbonamento |
| Fatturazione | credito prepagato in base all'uso reale; errori e rifiuti gratuiti |
| Prova gratuita | $0,50 per 7 giorni, senza carta · Chiave di prova: 2 richieste parallele, 60 al minuto; limiti completi (8 e 300) dopo la prima ricarica |
| Bonus | +5% da $50, +10% da $100, +15% da $200 |
| Prezzo | $0,15 per 1M token in input · $0,50 per 1M in output |
| Contenuti | contenuti per adulti consentiti; rifiutati i contenuti sessuali con minori |
| Accesso | Google oppure e-mail e password |
| Chiavi | una chiave attiva per account; una nuova sostituisce la precedente |
Codici di errore
Gli errori arrivano in JSON con un type fisso; le richieste fallite o rifiutate non si pagano.
| Codice | Tipo | Significato |
|---|---|---|
400 | bad_request | JSON non valido, messaggi vuoti, parametro errato o contesto troppo lungo |
401 | missing_key · invalid_key · key_revoked | chiave mancante, errata o sostituita |
402 | no_credit | credito esaurito — ricarica e riparti subito |
403 | content_blocked | contenuti sessuali con minori — rifiutato, non addebitato |
404 | not_found | endpoint sconosciuto |
413 | request_too_large | corpo oltre 8 MB |
429 | rate_limited · concurrency | oltre 300/min o 8 in parallelo — attendi e riprova |
503 | upstream_busy | modello occupato — riprova tra pochi secondi |
Domande e risposte
In che modo il modello senza censura differisce dai modelli degli altri fornitori?
Il nostro modello è un modello a pesi aperti eseguito sui nostri server, ottimizzato per rispondere senza rifiuti di contenuti per l'uso adulto lecito. Non è GPT, Claude, Gemini, Grok, DeepSeek, Qwen, Llama o il modello di qualsiasi altro fornitore. Non effettuiamo routing tra fornitori; serviamo un singolo endpoint senza censura.
Cosa succede se supero il limite di richieste?
Se superi 300 richieste al minuto o 8 richieste concorrenti per chiave, il server restituisce un codice di stato 429. Questo è un codice di stato HTTP standard che indica che hai inviato troppe richieste in una finestra temporale. Dovresti implementare una logica di backoff nel client per gestire questi errori.
L'API supporta la chiamata di funzioni e la modalità JSON?
Sì, l'API supporta la chiamata di funzioni (tools, tool_choice) e la modalità JSON (response_format json_object). Puoi anche specificare parametri come temperature, top_p, stop, seed, presence_penalty e frequency_penalty per controllare l'output.
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