Руководства
Протоколы и SDK
Используйте протоколы OpenAI-compatible, Responses и Anthropic Messages со streaming, tool calls и миграцией.
Model API поддерживает три сетевых протокола. Сохраните свой SDK и измените base URL, API key и ID модели.
Матрица endpoint'ов
| Протокол | Endpoint | Типичный клиент |
|---|---|---|
| OpenAI Chat Completions | POST https://openapi.felo.ai/api/v1/chat/completions | OpenAI SDK, большинство OpenAI-compatible инструментов |
| OpenAI Responses | POST https://openapi.felo.ai/api/v1/responses | OpenAI SDK с возможностями Responses API |
| Anthropic Messages | POST https://openapi.felo.ai/api/v1/messages | Anthropic SDK, Claude Code, Claude-нативные инструменты |
Base URL
| Клиент | Base URL | Почему |
|---|---|---|
| OpenAI SDK | https://openapi.felo.ai/api/v1 | SDK добавляет /chat/completions или /responses |
| Anthropic SDK | https://openapi.felo.ai/api | SDK добавляет /v1/messages; не добавляйте /v1 сами |
Оба клиента используют ваш Felo API key как API key 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",
});Выбор протокола
- Chat Completions — когда инструмент или SDK ожидает привычный массив
messagesиchoices[0].message.content. - Responses — когда нужен объект Responses,
input,instructionsилиoutput_text. - Messages — когда вы используете Anthropic SDK или Claude-нативный инструмент.
Проверьте модель, прежде чем считать, что работают все протоколы. Каталог предоставляет supported_protocols, supported_parameters и recommended_protocol. recommended_protocol — рекомендация для клиента, а не ограничение; модель может принимать и другой протокол.
Streaming
Установите stream: true, чтобы получать Server-Sent Events.
- Chat Completions отправляет chat chunks в стиле OpenAI.
- Responses отправляет Responses SSE events и заканчивается завершённым объектом response.
- Messages отправляет Anthropic message stream events.
Читайте поток событий инкрементально и обрабатывайте терминальное событие до закрытия соединения. Оборванное соединение — это не то же самое, что завершённый ответ.
Вызовы инструментов и structured output
Передавайте tools в нативном формате протокола. Поддержка зависит от модели, поэтому перед использованием tool calls, JSON mode или structured output проверьте supported_parameters в каталоге. Модель может принять поле и всё равно проигнорировать неподдерживаемую опцию.
Маршрутизация по каналам
Все три endpoint'а принимают X-Felo-Channel, когда нужно закрепить провайдера. Правила заголовка и примеры см. в Каналы и маршрутизация провайдеров.
Миграция с официального API
- Замените base URL на соответствующий URL Felo.
- Замените API key на
FELO_API_KEY. - Замените имя модели на публичный ID модели Felo.
- Остальную часть запроса оставьте без изменений.
| Симптом | Вероятная причина |
|---|---|
| 404 на каждом запросе | base URL уже содержит /v1 или к Anthropic base URL вручную добавлен /v1 |
| 401 | Felo key отсутствует или клиент всё ещё отправляет старый key |
Ошибка 400 model | ID модели не публичный или не поддерживает выбранный endpoint |
| Запрос Messages отклонён | Протокол Messages требует max_tokens |
| Вызов инструмента игнорируется | Модель не заявляет эту возможность |