エンドポイント
画像とファイル入力
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 と同じです。エラーを参照してください。