Przewodniki
Protokoły i SDK
Korzystaj z protokołów OpenAI-compatible, Responses i Anthropic Messages, w tym ze strumieniowania, wywołań narzędzi i migracji.
Model API obsługuje trzy protokoły transmisji. Zachowaj istniejący SDK i zmień bazowy adres URL, klucz API oraz identyfikator modelu.
Macierz endpointów
| Protokół | Endpoint | Typowy klient |
|---|---|---|
| OpenAI Chat Completions | POST https://openapi.felo.ai/api/v1/chat/completions | OpenAI SDK, większość narzędzi zgodnych z OpenAI |
| OpenAI Responses | POST https://openapi.felo.ai/api/v1/responses | OpenAI SDK z funkcjami API Responses |
| Anthropic Messages | POST https://openapi.felo.ai/api/v1/messages | Anthropic SDK, Claude Code, narzędzia natywne dla Claude |
Bazowe adresy URL
| Klient | Bazowy adres URL | Dlaczego |
|---|---|---|
| OpenAI SDK | https://openapi.felo.ai/api/v1 | SDK dopisuje /chat/completions lub /responses |
| Anthropic SDK | https://openapi.felo.ai/api | SDK dopisuje /v1/messages; nie dodawaj /v1 samodzielnie |
Oba klienty używają Twojego klucza API Felo jako klucza API 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",
});Wybór protokołu
- Użyj Chat Completions, gdy Twoje narzędzie lub SDK oczekuje znanej tablicy
messagesichoices[0].message.content. - Użyj Responses, gdy potrzebujesz obiektu Responses OpenAI, pól
input,instructionsluboutput_text. - Użyj Messages, gdy korzystasz z Anthropic SDK lub narzędzia natywnego dla Claude.
Sprawdź model, zanim założysz, że każdy protokół działa. Katalog udostępnia supported_protocols, supported_parameters i recommended_protocol. recommended_protocol to rekomendacja dla klienta, a nie ograniczenie; model może nadal akceptować inny protokół.
Przesyłanie strumieniowe
Ustaw stream: true, aby otrzymywać zdarzenia Server-Sent Events.
- Chat Completions emituje fragmenty czatu w stylu OpenAI.
- Responses emituje zdarzenia SSE Responses i kończy się ukończonym obiektem odpowiedzi.
- Messages emituje zdarzenia strumienia komunikatów Anthropic.
Odczytuj strumień zdarzeń przyrostowo i obsłuż zdarzenie terminalne przed zamknięciem połączenia. Przerwane połączenie nie jest tym samym co ukończona odpowiedź.
Wywołania narzędzi i dane wyjściowe o strukturze
Przekazuj tools w natywnym kształcie protokołu. Obsługa różni się w zależności od modelu, więc przed poleganiem na wywołaniach narzędzi, trybie JSON lub danych wyjściowych o strukturze sprawdź supported_parameters w katalogu. Model może przyjąć pole i nadal zignorować nieobsługiwaną opcję.
Routing kanałów
Wszystkie trzy endpointy akceptują X-Felo-Channel, gdy potrzebujesz przypiąć dostawcę. Zasady nagłówka i przykłady znajdziesz w Kanałach i routingu dostawców.
Migracja z oficjalnego API
- Zmień bazowy adres URL na pasujący adres URL Felo.
- Zastąp klucz API kluczem
FELO_API_KEY. - Zastąp nazwę modelu publicznym identyfikatorem modelu Felo.
- Zachowaj resztę kształtu żądania.
| Objaw | Prawdopodobna przyczyna |
|---|---|
| 404 przy każdym żądaniu | Bazowy adres URL zawiera już /v1 lub do bazowego adresu URL Anthropic dodano ręcznie /v1 |
| 401 | Brakuje klucza Felo lub klient nadal wysyła stary klucz |
400 błąd model | Identyfikator modelu nie jest publiczny lub nie obsługuje wybranego endpointu |
| Żądanie Messages odrzucone | Protokół Messages wymaga max_tokens |
| Wywołanie narzędzia ignorowane | Model nie deklaruje tej możliwości |