- OpenAI 互換 API:ほとんどの用途で推奨。統一インターフェースで多モデルを扱えます。
- プロバイダー固有 API:統一 API に無い上流固有機能が必要な上級用途向け。
OpenAI 互換 API
最もシンプルで柔軟な方法です。慣れた OpenAI SDK を使いつつ、モデルや上流を最小限の変更で切り替えられます。基本的な使い方
model と vendor を変えることで、別モデルや別上流を指定できます。
高度な機能
マルチターン会話
会話履歴をmessages にそのまま積み上げます。
ストリーミング
チャット UI などではstream=True で逐次出力します。
関数呼び出し / ツール利用
ツールを使う場合は多段になります。- ツール定義を付けてリクエスト
- モデルがツール呼び出しを返す
- アプリ側でツールを実行
- 実行結果をモデルへ返し、最終回答を生成
ビジョン(マルチモーダル)
多くのモデルは画像入力に対応します。gpt-4o や claude-3-5-sonnet-20240620、gemini-1.5-pro-latest などが例です。
パラメータ(代表)
| パラメータ | 型 | 説明 | 既定値 |
|---|---|---|---|
model | string | モデル ID | 必須 |
messages | array | 会話メッセージ配列 | 必須 |
max_tokens | integer | 生成上限 | null |
temperature | number | サンプリング温度 | 1 |
top_p | number | nucleus sampling | 1 |
n | integer | 生成候補数 | 1 |
stream | boolean | ストリーミング | false |
stop | string or array | 停止シーケンス | null |
presence_penalty | number | presence ペナルティ | 0 |
frequency_penalty | number | frequency ペナルティ | 0 |
logit_bias | map | トークン確率の調整 | null |
user | string | エンドユーザー識別子 | null |
tool_choice | string or object | ツール利用の制御 | none |
tools | array | ツール定義 | null |
プロバイダー固有 API
統一 API に無いパラメータや挙動が必要な場合、上流のネイティブエンドポイントへ直接リクエストできます。この場合はvendor ヘッダーが必須です。
YouRouter は
Authorization 以外のヘッダーとリクエストボディを可能な限りそのまま上流へ転送します。詳細は リクエスト転送 を参照してください。Gemini(Google)
Generate Content
Endpoint:POST /v1/projects/cognition/locations/us/publishers/google/models/{model}:generateContent
Safety Settings
Google AI の公式ドキュメントに沿って safetySettings を設定できます(カテゴリと閾値の一覧は公式参照)。
Claude(Anthropic)
Messages API
Endpoint:POST /v1/messages
Claude のツール利用
Claude のツール利用は複数ステップになります。以下はライフサイクル例です。ベストプラクティス
- ルーティング:本番はまず
autoを推奨。特定バージョンや固有機能が必要なときだけ固定します(ルーティング)。 - エラー処理:ネットワーク断や上流障害に備え、指数バックオフ付きの再試行を実装します。
- UX:ユーザー向け UI ではストリーミングを検討します。
- システムプロンプト:品質に直結するため継続的に改善します。
- トークン管理:入力コンテキストと出力上限に注意し、レスポンスの
usageでコストと切り詰めを監視します。