Chat Completions

ファイルを入力する場合は ファイル API でアップロードし、返された file_id を参照します。ゲートウェイは変換を担当し、入力への対応可否は上流が判断します。

messages[].content に {"type":"file","file":{"file_id":"..."}} を指定します。画像は image_url、動画は InOneAPI 拡張の video_url、音声は input_audio、文書は file.file_data に展開します。通常のテキストは type: text のまま、順序を維持します。

POST /v1/chat/completions は OpenAI 互換のチャット、ツール呼び出し、JSON 出力、ストリーミングに使用します。InOneAPI は公開リクエスト形式を保ち、model に基づいて有効なプロバイダーマッピングへルーティングします。

エンドポイント

https://api.inoneapi.com/v1/chat/completions

# -H "X-APP-NAME: Your App Name"
# -H "X-APP-URL: https://your-app.example.com"
curl "https://api.inoneapi.com/v1/chat/completions" \
  -H "Authorization: Bearer $INONEAPI_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "YOUR_MODEL_ID",
  "messages": [
    {
      "role": "user",
      "content": "Hello"
    }
  ]
}'

パラメーター

フィールド型必須説明
modelstringはいInOneAPI の公開モデル ID。ゲートウェイが有効な上流モデルへ変換します。
messagesarrayはい順序付きメッセージ。主な role は system、user、assistant、tool。
temperaturenumberいいえサンプリングのランダム性。通常は 0-2 の範囲で指定します。
top_pnumberいいえnucleus sampling。通常は temperature とどちらか一方を調整します。
max_tokensnumberいいえ生成トークン上限。一部プロバイダーの max_completion_tokens は対応時に変換されます。
streambooleanいいえtrue の場合、SSE の chat completion chunk を返します。
toolsarrayいいえOpenAI 互換のツール定義。利用可否はモデルとマッピングによります。
tool_choicestring/objectいいえ自動、必須、特定ツールの呼び出しを制御します。
response_formatobjectいいえ対応モデルで JSON object または JSON schema 出力に使用します。
stopstring/arrayいいえ停止シーケンス。対応数はプロバイダー固有です。
userstringいいえ不正利用追跡用のエンドユーザー ID。秘密情報や個人情報は入れません。

メッセージ内容

テキストのみの場合、content は文字列で指定できます。マルチモーダルモデルでは text や image_url などの content parts を使えます。未対応のパートはマッピング設定に応じて拒否または変換されます。

{
  "role": "user",
  "content": [
    { "type": "text", "text": "この画像を説明してください。" },
    { "type": "image_url", "image_url": { "url": "https://example.com/image.png" } }
  ]
}

レスポンス

非ストリーミングは OpenAI chat completion 形式です。Token 使用量は可能な場合ローカルで計算され、モデル設定の公式プロバイダーアルゴリズムに合わせます。

{
  "id": "chatcmpl_...",
  "object": "chat.completion",
  "created": 1760000000,
  "model": "YOUR_MODEL_ID",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "TTFT はリクエスト開始から最初の token を受け取るまでの時間です。" },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 18,
    "completion_tokens": 13,
    "total_tokens": 31
  }
}

ストリーミング

stream: true の場合、data: 行の JSON chunk を data: [DONE] まで解析します。最初の chunk はクライアント側 TTFT の主要なシグナルです。X-Gateway-Trace-ID はゲートウェイ診断と紐づきます。

エラー

400 は JSON、パラメーター、マッピングの問題です。401/403 はキーや権限を確認します。429 は Retry-After に従い、予算とレート制限を確認します。5xx は Trace ID とともに調査します。

  • 部分的なストリーム出力後に無条件で再試行しないでください。
  • API キーはサーバー側だけに置きます。
  • ログには X-Gateway-Trace-ID、状態、モデル、時間を残し、完全なプロンプトや出力は残しません。
Chat Completions · ドキュメント · InOneAPI