Prerequisiti e configurazione
Per utilizzare il nostro proxy api openai, devi disporre dell'SDK ufficiale per il tuo linguaggio e di una chiave API valida. Registrati sulla dashboard per ricevere la tua chiave immediatamente. Non serve una carta di credito per la prova. Imposta due variabili d'ambiente: OPENAI_API_KEY con la tua chiave, e OPENAI_BASE_URL puntando al nostro endpoint. Questo approccio garantisce che il tuo codice esistente funzioni senza modifiche, agendo come un proxy llm trasparente per le tue applicazioni.
Il nostro servizio usa l’ID del modello uncensored standard. Essendo un proxy a modello singolo, non devi gestire logica di routing complessa. L’URL base è https://api.openaiapiproxy.com/v1. Una volta configurato, il tuo client tratta il nostro servizio come qualsiasi altro endpoint compatibile con OpenAI.
Prima richiesta e configurazione Python
Inizia inviando una semplice richiesta di completamento chat. Questo conferma l'autenticazione e la connettività. L'esempio seguente usa un prompt di testo base per verificare il comportamento senza censura. Sostituisci i valori segnaposto con le tue credenziali reali.
Per gli sviluppatori Python, la libreria ufficiale openai gestisce la complessità. Devi semplicemente puntare il client al nostro URL di base. Il codice sottostante dimostra una richiesta sincrona standard. Invia un prompt e restituisce la risposta del modello. È il modo più veloce per verificare la tua integrazione.
Assicurati che le variabili d'ambiente siano caricate prima di creare l'istanza del client. L'SDK usa automaticamente il formato standard OpenAI per le richieste e le risposte.
Integrazione Node.js
Se stai sviluppando con Node.js, il processo è identico a Python. Usa il pacchetto @ai-sdk/openai o il pacchetto npm ufficiale openai. Punta il client al nostro URL base e fornisci la tua chiave API. L'SDK gestisce per te la serializzazione JSON e le richieste HTTP.
Questa configurazione funziona con qualsiasi libreria client compatibile con OpenAI. Puoi riutilizzare i tuoi template di prompt e le strutture dei messaggi. Il formato di risposta corrisponde allo schema standard OpenAI, rendendo facile il passaggio tra provider se necessario in futuro.
Ricorda di gestire gli errori in modo elegante. Problemi di rete o chiavi non valide restituiranno codici di errore HTTP standard. Consulta la documentazione per la tua versione SDK specifica per la gestione dettagliata degli errori.
Risposte in streaming
Per le applicazioni in tempo reale, abilita lo streaming per ricevere i token man mano che vengono generati. Questo riduce la latenza percepita per gli utenti finali. L'SDK supporta nativamente gli eventi inviati dal server (SSE). Iteri sullo stream di risposta per elaborare ogni token.
Lo streaming è ideale per le interfacce chat dove gli utenti si aspettano feedback immediato. Il modello genera testo in modo continuo e puoi aggiungere ogni token all'interfaccia utente. Questo fornisce un'esperienza utente più fluida rispetto all'attesa della risposta completa.
L'endpoint di streaming usa lo stesso URL base e autenticazione. Devi solo abilitare il flag stream nei parametri della tua richiesta. L'SDK gestisce il ciclo di vita della connessione e il recupero degli errori.
Limiti di richiesta e vincoli
La nostra API applica limiti rigorosi per garantire l'affidabilità. Hai diritto a 300 richieste al minuto per chiave API. La dimensione massima del corpo della richiesta è di 8 MB. Se superi il limite di richieste, riceverai un codice di stato 429. Implementa un backoff esponenziale nel tuo client per gestire questi errori in modo elegante.
Gli errori di autenticazione restituiscono un codice di stato 401 se la chiave non è valida o è stata revocata. I problemi di pagamento restituiscono un codice di stato 402 quando il tuo credito prepagato è esaurito. Le ricariche sono disponibili istantaneamente tramite criptovalute (USDT o USDC). Il tuo credito prepagato non scade mai, quindi puoi pagare a consumo.
La finestra di contesto è di 100.000 token per input e output combinati. Pianifica i tuoi prompt di conseguenza per evitare il troncamento. Il modello interromperà la generazione se raggiunge il limite.
Modelli e politica sui contenuti
L'unico modello disponibile è uncensored, un modello a pesi aperti ottimizzato per contenuti adulti leciti e scrittura creativa. Non rifiuta argomenti controversi o espliciti per impostazione predefinita. Questo lo rende ideale per casi d'uso in cui i modelli standard potrebbero essere troppo restrittivi.
Non offriamo embedding, generazione di immagini o elaborazione audio. Questa è un'API solo testo. Il modello non è GPT, Claude o qualsiasi altro modello di un altro fornitore. È ottimizzato specificamente per la nostra infrastruttura.
I contenuti sessuali che coinvolgono minori sono sempre bloccati. Tutti gli altri contenuti legali sono permessi. Non usiamo i tuoi prompt per l'addestramento. I tuoi dati rimangono privati e vengono usati solo per generare la risposta per la tua richiesta.
cURL
curl https://api.openaiapiproxy.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."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.openaiapiproxy.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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openaiapiproxy.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);Streaming
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)