Guide
Protocolli e SDK
Usa i protocolli OpenAI-compatible, Responses e Anthropic Messages, inclusi streaming, tool call e migrazione.
La Model API parla tre protocolli di rete. Mantieni il tuo SDK attuale e cambia l'URL di base, la chiave API e l'ID del modello.
Matrice degli endpoint
| Protocollo | Endpoint | Client tipico |
|---|---|---|
| OpenAI Chat Completions | POST https://openapi.felo.ai/api/v1/chat/completions | SDK OpenAI, la maggior parte degli strumenti compatibili con OpenAI |
| OpenAI Responses | POST https://openapi.felo.ai/api/v1/responses | SDK OpenAI con le funzionalità della Responses API |
| Anthropic Messages | POST https://openapi.felo.ai/api/v1/messages | SDK Anthropic, Claude Code, strumenti nativi Claude |
URL di base
| Client | URL di base | Perché |
|---|---|---|
| SDK OpenAI | https://openapi.felo.ai/api/v1 | L'SDK aggiunge /chat/completions o /responses |
| SDK Anthropic | https://openapi.felo.ai/api | L'SDK aggiunge /v1/messages; non aggiungere /v1 da solo |
Entrambi i client usano la tua chiave API Felo come chiave API dell'SDK.
import OpenAI from "openai";
import Anthropic from "@anthropic-ai/sdk";
const openai = new OpenAI({
apiKey: process.env.FELO_API_KEY,
baseURL: "https://openapi.felo.ai/api/v1",
});
const anthropic = new Anthropic({
apiKey: process.env.FELO_API_KEY,
baseURL: "https://openapi.felo.ai/api",
});Scegliere un protocollo
- Usa Chat Completions quando il tuo strumento o SDK si aspetta il consueto array
messagesechoices[0].message.content. - Usa Responses quando ti serve l'oggetto Responses di OpenAI,
input,instructionsooutput_text. - Usa Messages quando usi un SDK Anthropic o uno strumento nativo Claude.
Controlla il modello prima di dare per scontato che tutti i protocolli funzionino. Il catalogo espone supported_protocols, supported_parameters e un recommended_protocol. recommended_protocol è un consiglio per il client, non una restrizione; un modello può comunque accettare un altro protocollo.
Streaming
Imposta stream: true per ricevere Server-Sent Events.
- Chat Completions emette chunk di chat in stile OpenAI.
- Responses emette eventi SSE di tipo Responses e termina con un oggetto risposta completato.
- Messages emette eventi di stream dei messaggi Anthropic.
Leggi lo stream di eventi in modo incrementale e gestisci l'evento terminale prima di chiudere la connessione. Una connessione interrotta non equivale a una risposta completata.
Chiamate agli strumenti e output strutturato
Passa tools nella forma nativa del protocollo. Il supporto varia da modello a modello, quindi controlla supported_parameters nel catalogo prima di affidarti a chiamate agli strumenti, modalità JSON o output strutturato. Un modello può accettare il campo e ignorare comunque un'opzione non supportata.
Routing dei canali
Tutti e tre gli endpoint accettano X-Felo-Channel quando devi vincolare un provider. Vedi Canali e routing dei provider per le regole dell'header e gli esempi.
Migrare da un'API ufficiale
- Cambia l'URL di base con l'URL Felo corrispondente.
- Sostituisci la chiave API con
FELO_API_KEY. - Sostituisci il nome del modello con l'ID pubblico del modello Felo.
- Mantieni il resto della struttura della richiesta.
| Sintomo | Causa probabile |
|---|---|
| 404 su ogni richiesta | L'URL di base include già /v1, oppure all'URL di base Anthropic è stato aggiunto /v1 manualmente |
| 401 | Manca la chiave Felo oppure il client sta ancora inviando la vecchia chiave |
Errore 400 su model | L'ID del modello non è pubblico o non supporta l'endpoint scelto |
| Richiesta Messages rifiutata | Il protocollo Messages richiede max_tokens |
| Chiamata allo strumento ignorata | Il modello non dichiara quella capacità |