Cos'è un endpoint API compatibile con OpenAI?
Un endpoint API compatibile con OpenAI è uno che implementa gli esatti formati di richiesta e risposta dell'API di OpenAI — lo stesso schema /v1/chat/completions, lo stesso formato di streaming, gli stessi campi per le tool-call — così l'SDK ufficiale di OpenAI funziona con esso cambiando solo la base URL e la key. UberLLM è compatibile con OpenAI (e compatibile con Anthropic a /v1/messages), ed è per questo che passare a esso è un cambiamento di una sola riga.
La definizione breve
Un endpoint è "OpenAI-compatibile" quando accetta le stesse richieste HTTP e restituisce le stesse forme di risposta dell'API OpenAI. In pratica ciò significa:
- il request body
POST /v1/chat/completions(model,messages,temperature,tools,stream, …) è accettato così com'è; - la risposta è lo stesso oggetto
choices[].message, con gli stessi conteggi di tokenusage; - lo streaming utilizza gli stessi chunk
data:server-sent-events che terminano in[DONE]; - il tool / function calling utilizza gli stessi campi
tool_calls.
Poiché il contratto corrisponde, l'SDK ufficiale di OpenAI — in Python, JavaScript o qualsiasi altro linguaggio — funziona con l'endpoint quando si cambiano solo il base URL e l'API key. Il codice della tua applicazione non conosce la differenza.
Perché è importante
La compatibilità con OpenAI ha trasformato l'API di un fornitore in uno standard di fatto. Un endpoint compatibile ti permette di mantenere l'SDK, gli strumenti e le integrazioni di framework che già utilizzi (LangChain, il Vercel AI SDK, LlamaIndex, decine di framework per agenti) pur cambiando ciò che li alimenta.
Questa è l'intera migrazione a UberLLM:
from openai import OpenAI
client = OpenAI(
base_url="https://api.uberllm.dev/v1", # the only line that changes
api_key="ull_your_key_here",
)
resp = client.chat.completions.create(
model="deepseek/deepseek-v4-flash",
messages=[{"role": "user", "content": "Hello!"}],
stream=True,
)
Vedi la documentazione dell'SDK OpenAI per l'elenco completo dei parametri supportati.
Compatibile vs. un vero drop-in
"Compatibile" è uno spettro. Fai attenzione agli endpoint che accettano la forma della richiesta ma non supportano lo streaming, ignorano i tool calls o restituiscono usage non standard. UberLLM implementa il contratto di chat-completions inclusi streaming, tool calls e l'utilizzo dei token, e inoltre espone un endpoint compatibile con Anthropic a /v1/messages in modo che gli SDK di Anthropic e Claude Code funzionino anch'essi senza modifiche — documentazione SDK di Anthropic.
Cosa aggiunge UberLLM dietro l'endpoint standard
L'endpoint è standard; il routing dietro di esso non lo è. Ogni richiesta viene inviata al venditore sano più economico per il modello che hai specificato, i fallimenti prima dell'output vengono ritentati sul venditore successivo, e il prezzo che vedi (senza costi aggiuntivi) è il prezzo che paghi. Sfoglia i modelli su /models e i prezzi in tempo reale su /llm-api-pricing.