URL Base e Autenticazione
Connettiti al nostro API compatibile con openai aggiornando la configurazione del client per puntare a https://api.openaicompatibleapiendpoints.com/v1. Hai bisogno di una chiave API valida inviata nel Authorization header come token Bearer. Questa configurazione funziona con gli SDK ufficiali OpenAI e qualsiasi libreria client compatibile. Non è richiesta una configurazione gateway complessa.
curl https://api.openaicompatibleapiendpoints.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Return 500 status code"}]
}'Ogni richiesta deve includere la tua chiave univoca. Se la chiave è mancante o non valida, il server restituisce immediatamente un errore 401. Questo garantisce che le tue chiamate raggiungano il corretto LLM uncensored senza ritardi di routing.
Endpoint Chat Completions
Invia messaggi al POST /v1/chat/completions endpoint per ottenere risposte testuali dal uncensored model. Questo endpoint gestisce i turni conversazionali standard e supporta una finestra di contesto fino a 100.000 token. Puoi impostare un output massimo di 16.000 token per richiesta. Il modello risponde senza rifiuti di contenuto per argomenti adulti legali.
from openai import OpenAI
client = OpenAI(base_url="https://api.openaicompatibleapiendpoints.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)Usa lo standard messages formato array. L'API ignora i campi extra che non riconosce, rendendo la migrazione facile. Paghi solo per i token effettivamente consumati dal modello.
Risposte in streaming
Abilita la consegna dei token in tempo reale impostando stream: true nella tua richiesta. Il server invia una serie di Server-Sent Events (SSE) fino al completamento della risposta. Le statistiche sull'utilizzo dei token appaiono nell'ultimo chunk dello stream. Questo riduce la latenza percepita per gli utenti in attesa di risposte lunghe.
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)Memorizza in buffer i token in arrivo sul lato client per ricostruire il testo completo. Gli errori durante lo streaming sono rari ma dovrebbero essere gestiti controllando l'evento finale per un codice di errore. Lo stream si interrompe automaticamente quando viene raggiunto il limite del contesto o il numero massimo di token.
Modalità JSON e strumenti
Forza un output strutturato impostando response_format a {"type": "json_object"}. Questo garantisce che il modello restituisca JSON invece di testo markdown. Puoi anche usare il tools il parametro per il function calling. L'API supporta tool_choice per un controllo preciso sulle funzioni che il modello invoca.
Usa temperature e top_p per regolare la casualità. Imposta seed per risultati riproducibili durante il debugging. Questi parametri funzionano esattamente come previsto nelle integrazioni standard compatibili con OpenAI.
Gestazione degli errori e limiti
Gestisci gli errori HTTP standard per gestire i fallimenti lato client con grazia. Uno status 401 significa che la tua chiave API non è valida. Uno status 402 indica che il tuo credito prepagato è esaurito. Un errore 429 segnala che hai superato il limite di 300 richieste al minuto.
Ogni chiave consente otto richieste concorrenti. Il corpo della richiesta è limitato a 8 MB. I rimborsi non vengono emessi per il credito utilizzato, ma gli errori durante l'elaborazione sono gratuiti. Controlla sempre il error oggetto nella risposta JSON per i dettagli.
Finestra di contesto e dettagli del modello
Il modello supporta una finestra di contesto di 100.000 token per prompt e completamento combinati. Ciò consente una profonda conservazione del contesto per documenti lunghi o conversazioni estese. L'output massimo predefinito è di 2.048 token se non specifichi max_tokens. Puoi aumentare questo valore fino a 16.000 token per richiesta.
Il modello non è GPT, Claude o qualsiasi altro modello di un fornitore. È un modello open-weight ottimizzato per risposte senza filtri. Nessun dato dei tuoi prompt viene utilizzato per l'addestramento. Questo garantisce la privacy dei tuoi dati proprietari.
Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openaicompatibleapiendpoints.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);