推論APIの概要
推論APIは、プロジェクトで発行したAPIキーを使ってモデルを呼び出すHTTP APIです。 OpenAI互換のパスとAnthropic互換のパスがあり、どちらも同じAPIキーで利用できます。 ダッシュボードの管理操作はこのAPIには含まれません。
エンドポイント
| エンドポイント | 用途 |
|---|---|
GET /v1/models | APIキーで利用できるモデルの一覧 |
POST /v1/chat/completions | OpenAI Chat Completions互換。会話、tool calling、ストリーミング |
POST /v1/responses | OpenAI Responses互換。入力、tool calling、ストリーミング |
POST /v1/messages | Anthropic Messages互換 |
POST /anthropic/v1/messages | Anthropic SDK向けのMessages互換パス。/v1/messages と同じ動作 |
ベースURL
ベースURLは https://ai-gateway.lolipop.jp です。
SDKへ渡すときは、OpenAI SDKなら /v1、Anthropic SDKなら /anthropic を末尾に足します。
export AI_GATEWAY_BASE_URL="https://ai-gateway.lolipop.jp"
export AI_GATEWAY_API_KEY="<発行したAPIキー>"curl "$AI_GATEWAY_BASE_URL/v1/chat/completions" \
-H "Authorization: Bearer $AI_GATEWAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "<GET /v1/modelsが返したモデルID>",
"messages": [{ "role": "user", "content": "こんにちは" }]
}'リクエストの形式
- POSTのボディはJSONオブジェクトで、
Content-Type: application/jsonを付けます。 - JSONとして壊れている場合も、オブジェクトでない場合も
400が返ります。 - 認証ヘッダーは1リクエストにひとつだけ指定します。
- ボディの上限はJSONのUTF-8バイト数で10 MiBです。
modelは必須です。- 各エンドポイントが受け付けるフィールドは決まっており、それ以外のフィールドはエラーにならず読み飛ばされます。
- 指定した設定が反映されないときは、まずそのフィールドが受け付けの一覧にあるか確認してください。
レスポンスヘッダー
推論が成功したレスポンスには、どのモデルへ届いたかを示すヘッダーが付きます。
| ヘッダー | 内容 |
|---|---|
X-AIGateway-Requested-Model | リクエストの model に指定した値 |
X-AIGateway-Served-Model | 実際に応答したモデル |
X-AIGateway-Fallback-Count | フォールバックした回数。0 なら最初の候補が応答 |
エラーのレスポンスには cache-control: no-store が付きます。
互換性の考え方
各エンドポイントが受け付けるフィールドと、モデルの応答に反映されるフィールドは異なる場合があります。 対象となるフィールドは、エンドポイントごとのページに記載しています。 まず最小のリクエストで疎通し、必要なフィールドを段階的に追加してください。
送信できないフィールド
プロバイダー認証とルーティングはロリポップ!AIゲートウェイが管理します。
次のフィールドをボディに含めると 400 が返ります。
api_key、api_base、api_version、base_url、custom_llm_provider、fallbacks、context_window_fallbacks、content_policy_fallbacks、router_settings_override、num_retries、max_retries、retry_policy、allowed_fails、cooldown_time、timeout、request_timeout、metadata
Anthropic Messages互換のパスに限り、Anthropic SDKが送る metadata は受け付けます。
ただし、モデルへは渡しません。