ガイド
プロトコルと SDK
OpenAI-compatible、Responses、Anthropic Messages の各プロトコルを、streaming、tool calls、移行を含めて使います。
Model API は 3 つの通信プロトコルに対応しています。既存の 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 | Responses API 機能を使う OpenAI SDK |
| 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 を自分で足さないでください |
どちらのクライアントも、SDK の API key として Felo API key を使います。
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",
});プロトコルを選ぶ
- ツールや SDK がおなじみの
messages配列とchoices[0].message.contentを前提とする場合は Chat Completions。 - OpenAI の Responses オブジェクト、
input、instructions、output_textが必要な場合は Responses。 - Anthropic SDK や Claude ネイティブツールを使う場合は Messages。
すべてのプロトコルが使えると決めつける前にモデルを確認してください。カタログには supported_protocols、supported_parameters、recommended_protocol が公開されています。recommended_protocol はクライアント向けの推奨であり制限ではありません。モデルが別のプロトコルを受け付けることもあります。
ストリーミング
stream: true を設定すると Server-Sent Events を受け取ります。
- Chat Completions は OpenAI 形式の chat chunk を送出します。
- Responses は Responses SSE event を送出し、完了した response オブジェクトで終わります。
- Messages は Anthropic message stream event を送出します。
イベントストリームを逐次読み取り、接続を閉じる前に終端イベントを処理してください。接続の切断は完了したレスポンスとは異なります。
ツール呼び出しと構造化出力
tools はプロトコル本来の形式で渡します。対応状況はモデルによって異なるため、ツール呼び出し、JSON モード、構造化出力に依存する前にカタログの supported_parameters を確認してください。フィールドを受け付けても、未対応のオプションを無視するモデルもあります。
チャネルルーティング
3 つの endpoint はいずれも、プロバイダーを固定するための X-Felo-Channel を受け付けます。ヘッダーのルールと例はチャネルとプロバイダールーティングを参照してください。
公式 API からの移行
- base URL を対応する Felo の URL に変更します。
- API key を
FELO_API_KEYに置き換えます。 - モデル名を公開されている Felo モデル ID に置き換えます。
- リクエストの残りの形はそのままにします。
| 症状 | 考えられる原因 |
|---|---|
| すべてのリクエストで 404 | base URL に既に /v1 が含まれている、または Anthropic の base URL に手動で /v1 を追加している |
| 401 | Felo key がない、またはクライアントが古い key を送っている |
400 model エラー | モデル ID が公開されていない、または選択した endpoint に対応していない |
| Messages リクエストが拒否される | Messages プロトコルでは max_tokens が必須 |
| ツール呼び出しが無視される | モデルがその機能を提供していない |