OpenAI
Chat Completions, embedding, immagini, audio e file, senza modifiche.
/v1/chat/completionsOmniRoute / Superficie API
Chat, embedding, reranking, immagini, video, musica, voce, OCR, file e batch, nel formato di richiesta che il tuo client già parla.
Formati wire
Un solo processo accetta più formati, così a un tool costruito sull'SDK di un vendor basta cambiare il base URL e nient'altro.
Chat Completions, embedding, immagini, audio e file, senza modifiche.
/v1/chat/completionsIl formato wire Messages, incluso il conteggio dei token.
/v1/messagesIl formato della Responses API, con compattazione dell'output dei tool.
/v1/responsesgenerateContent e l'elenco dei modelli Gemini.
/v1beta/modelsSostituto diretto per i tool che parlano l'API locale di Ollama.
/v1/api/chatReranking Cohere/Voyage più classify e segment di Jina.
/v1/rerankEndpoint
Raggruppati in base a cosa vuoi fare, non al provider che di volta in volta lo serve.
Tre formati di richiesta arrivano allo stesso router, così il client mantiene il formato che già parla.
/v1/chat/completionsOpenAI Chat Completions, in streaming o bufferizzato/v1/messagesAnthropic Messages/v1/responsesOpenAI Responses/v1/messages/count_tokensConta i token prima di spenderliLa metà retrieval di uno stack RAG dietro lo stesso endpoint e la stessa chiave.
/v1/embeddingsEmbedding testuali e multimodali/v1/rerankReranking compatibile con Cohere e Voyage/v1/searchAstrazione della ricerca web tra provider/v1/classifyClassificazione del testo Jina/v1/segmentSegmentazione dei contenuti Jina/v1/web/fetchEstrazione di pagine leggibiliLa generazione passa dallo stesso fallback e dalla stessa contabilità dei costi del testo.
/v1/images/generationsSintesi di immagini/v1/images/editsEditing e inpainting/v1/videos/generationsGenerazione video/v1/music/generationsSintesi musicaleVoce in entrambe le direzioni, più OCR per materiale scansionato.
/v1/audio/transcriptionsDa voce a testo/v1/audio/translationsTrascrizione con traduzione/v1/audio/speechDa testo a voce/v1/ocrOCR di documentiCarica una volta, poi esegui il lavoro in modo asincrono invece di tenere aperta una connessione.
/v1/filesCarica un file/v1/files/{id}/contentRileggi il contenuto del file in streaming/v1/batchesCrea un job batch/v1/batches/{id}Interroga lo stato del batch/v1/batches/{id}/cancelAnnulla un batch in esecuzioneTutto ciò che serve a un client per scegliere un modello e restare nel budget.
/v1/modelsCatalogo modelli raggruppato per provider/v1/quotas/checkPre-verifica la quota residua/v1/moderationsModerazione dei contenuti/v1/wsUpgrade WebSocket per client in streamingUn server MCP con 110 tool e una agent card A2A, serviti dallo stesso processo.
/api/mcp/streamMCP su HTTP, 33 scope/api/mcp/sseMCP su Server-Sent Events/a2aJSON-RPC 2.0, 6 skill agente/.well-known/agent.jsonAgent card pubblicaHeader
Il routing non è una scatola nera: la decisione, il costo e la compressione che hanno prodotto una risposta viaggiano insieme a essa.
X-OmniRoute-DecisionStrategia, alias del provider e latenza che hanno servito la richiestaX-OmniRoute-ProviderL'alias del provider effettivamente usatoX-OmniRoute-ModelL'identificatore del modello risoltoX-OmniRoute-Latency-MsLatenza upstream in millisecondiX-OmniRoute-Tokens-InNumero di token in inputX-OmniRoute-Tokens-OutNumero di token in outputX-OmniRoute-Response-CostCosto in USD di questa rispostaX-OmniRoute-Cost-SavedUSD evitati con un cache hitX-OmniRoute-CacheHIT o MISS sulle richieste non in streamingX-OmniRoute-CompressionModalità di compressione applicata e sua origineX-OmniRoute-Fallback-AttemptsSalti di fallback effettuati, se presentiX-OmniRoute-Request-IdId di correlazione per il log delle richiestex-omniroute-compressionSovrascrivi il profilo di compressione per una richiestaX-OmniRoute-No-CacheBypassa la cache semanticax-omniroute-no-memorySalta l'iniezione di memoria e skillX-Session-IdChiave di affinità di sessione e attribuzione dei costiIdempotency-KeyDeduplica una richiesta ritentata