どの API を使うべきか
多くのチャットとビジョン用途では、
https://api.yourouter.ai/v1 と OpenAI 互換の Chat Completions 形式から始めるのが最短です。Chat Completions で画像入力する
messages[].content をブロック配列にします。通常は text と 1 つ以上の image_url を並べます。
Base64 画像入力
非公開画像は data URL を使います。Python 例
PDF / 文書入力
PDF の対応可否は対象モデルと上流プロバイダーに依存します。リクエストを送る前に、選択したモデルが文書または視覚理解に対応していることを確認してください。PDF 非対応のモデルでは上流エラーが返ります。 OpenAI 互換のファイルコンテンツブロックに対応するモデルでは、messages[].content に file ブロックを追加できます。file_data には PDF の生バイト列を base64 エンコードした値を入れます。data:application/pdf;base64, プレフィックスは付けません。
- Gemini:
inlineData.mimeType: "application/pdf"を使います。詳細は Google Generate Content を参照してください。 - Claude:
media_type: "application/pdf"を指定したdocumentコンテンツブロックを使います。詳細は Anthropic Messages を参照してください。
Gemini ネイティブマルチモーダル
Gemini ネイティブのリクエストフィールドに依存する連携では、Google のgenerateContent 形式を使います。
Claude ネイティブ Messages
Claude ネイティブの挙動が必要な場合に使います。動画生成タスク
動画生成はタスク型です。タスクを作成し、完了するまでポーリングします。id を返します。そのタスクが完了するまで id で問い合わせます。
実装のコツ
- モデル ID は設定化しておくと、コード変更なしでビジョンモデルやマルチモーダルモデルを切り替えやすくなります。
vendorはプロバイダー固有フォーマットや挙動が必要なときだけ使います。- 大きいファイルでは HTTPS URL または分割処理を優先し、非公開/ローカル検証の画像や小さな PDF では base64 を使います。
- PDF 対応はモデルと上流能力によって変わります。公開前に対象モデルで実ファイルのテストを行ってください。
- プロバイダー固有のマルチモーダル問題を調査するときは、レスポンスのリクエスト ID を残します。