Cookieを使用しています. Cookieとブラウザストレージは、ログイン状態の維持と設定の保存に使われます。許可いただいた場合は、サイトの利用状況も計測します。はいつでも変更できます。詳しくはCookieポリシーをご覧ください。

画像とファイル入力

エンドポイント

画像とファイル入力

content にパートの配列を渡して、画像、PDF、音声、動画をモデルに入力する方法です。画像と PDF の例、input_modalities による対応確認、25 MB のリクエスト上限と 413 エラーを説明します。base64 化するとファイルは約 33% 大きくなります。

プレイグラウンドで試す

マルチモーダルモデルは、ユーザーメッセージ内の画像、PDF、音声、動画を受け付けます。content に文字列ではなくパートの配列を渡します。モデルが何を受け付けるかは、モデルの architecture.input_modalities(image、file、audio、video)で確認できます。

コンテンツパート

パート形式備考
テキスト{ "type": "text", "text": "..." }
画像{ "type": "image_url", "image_url": { "url": "https://..." | "data:image/png;base64,...", "detail": "auto" } }PNG、JPEG、WebP、GIF。URL または base64 のデータ URL。
PDF / ファイル{ "type": "file", "file": { "filename": "doc.pdf", "file_data": "https://..." | "data:application/pdf;base64,..." } }あらゆるモデルで動作します。ネイティブでファイルに対応しないモデルには、解析されたテキストが渡されます。
音声{ "type": "input_audio", "input_audio": { "data": "<base64>", "format": "wav" } }base64 のみ。wav、mp3 など、モデルによって異なります。
動画{ "type": "video_url", "video_url": { "url": "https://..." } }Gemini など、一部のモデルで対応。
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api14.com/api/v1",
  apiKey: process.env.API14_API_KEY,
});

const result = await client.chat.completions.create({
  "model": "openai/gpt-5-mini",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "What is in this image?"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": "https://upload.wikimedia.org/wikipedia/commons/3/3a/Cat03.jpg"
          }
        }
      ]
    }
  ]
});
console.log(result.choices[0].message.content);

画像の例

{
  "model": "google/gemini-2.5-flash",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "What is in this picture?" },
        { "type": "image_url", "image_url": { "url": "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg" } }
      ]
    }
  ]
}

PDF の例

{
  "model": "anthropic/claude-sonnet-4.5",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "Summarize this contract in five bullets." },
        { "type": "file", "file": { "filename": "contract.pdf", "file_data": "data:application/pdf;base64,JVBERi0xLjcK..." } }
      ]
    }
  ],
  "plugins": [{ "id": "file-parser", "pdf": { "engine": "pdf-text" } }]
}

任意の file-parser プラグインで、PDF の読み取り方法を選択できます。pdf-text(無料のテキスト抽出)、mistral-ocr(スキャン用の OCR で、ページごとに課金)、native(モデル自身がファイルを読み取る)のいずれかです。解析の料金は usage.cost に含まれます。

レスポンス

レスポンスは通常の chat completion です。画像、ファイル、音声の入力は入力トークンとして数えられ、その料金は usage.cost に含まれます。

{
  "choices": [{ "index": 0, "finish_reason": "stop", "message": { "role": "assistant", "content": "A close-up of an ant on a leaf." } }],
  "usage": { "prompt_tokens": 1290, "completion_tokens": 12, "total_tokens": 1302, "cost": 0.000417 }
}

上限とエラー

  • リクエストボディは最大 25 MB です。base64 にするとファイルは約 33% 大きくなります。それより大きいリクエストは 413 payload_too_large を返します。大きな画像には、公開 URL を使ってください。
  • 入力の種類を受け付けないモデルは、上流の 400 または 404 を返します。
  • そのほかのエラーは Chat Completions と同じです。エラーを参照してください。