# ビジョン

Source: https://aiand-docs-staging.pages.dev/ja/capabilities/vision/

ビジョン対応モデルはテキストと一緒に画像入力を受け付けます。ai& は 3 種類の入力方式に対応しているため、用途に合わせて選択してください。

## 画像を渡す 3 つの方法

<Tabs>
<TabItem label="公開 URL">

```json
{
  "role": "user",
  "content": [
    { "type": "text", "text": "What's in this image?" },
    { "type": "image_url", "image_url": { "url": "https://example.com/cat.png" } }
  ]
}
```

</TabItem>
<TabItem label="Base64 埋め込み">

```json
{
  "role": "user",
  "content": [
    { "type": "text", "text": "What's in this image?" },
    { "type": "image_url", "image_url": { "url": "data:image/png;base64,iVBORw0KG..." } }
  ]
}
```

</TabItem>
<TabItem label="アップロード済み file_id">

```json
{
  "role": "user",
  "content": [
    { "type": "text", "text": "What's in this image?" },
    { "type": "file", "file": { "file_id": "file-abc123" } }
  ]
}
```

</TabItem>
</Tabs>

## URL の要件

ai& はリクエストがモデルに届く前にメディア URL を検査します。対象は `image_url`、`video_url`、`audio_url` パート、Responses の `input_image` の `image_url`、チャットの `file` パートと Responses の `input_file` の `file_url`、`type: "url"` の Anthropic ソース、Responses の MCP ツールの `server_url` です。URL は次の条件をすべて満たす場合のみ受け付けられます:

- 絶対 URL で、スキームが `https` であること。`http` などほかのスキームは拒否されます。
- デフォルトのポート 443 を使うこと。
- ユーザー名やパスワードを含まないこと。
- IP アドレスではなくホスト名を指定すること。IPv4 と IPv6 のどの表記も対象です。
- `.com` や `.jp` などの公開トップレベルドメインで終わること。`localhost`、ドットを含まない単一ラベルの名前、`.local` や `.internal` 配下の名前は拒否されます。

`data:` URL や `file_id` で送るメディアは検査の対象外です。

条件を満たさない URL には、`type: "invalid_request_error"`、`code: "invalid_media_url"` の `400` が返ります。`param` には該当フィールドが入ります (例: `messages.0.content.1.image_url.url`)。`/v1/messages` では [Anthropic のエンベロープ](/ja/errors/#エラー形式) で返ります。リクエストはモデルに届かず、課金もされません。

メディア URL の場合は、ファイルを公開 `https` URL でホストするか、[Files API](/ja/api/files/) でアップロードして `file_id` を渡すか、base64 の `data:` URL としてインラインで送信してください。MCP の `server_url` は、それ自体が公開 `https` URL である必要があります。

## file_id 方式の仕組み

`{type: "file", file: {file_id}}` を送ると、アップロード済みのバイト列がモデルに渡されます — 公開ホスティングは不要です。クライアント側のワイヤーフォーマットはどの方式でも変わりません。

画像は [Files](/ja/api/files/) から `purpose: "vision"` でアップロード、または `purpose` を省略すると MIME から推論されます。

対応 MIME: `image/png`、`image/jpeg`、`image/webp`、`image/gif`。最大サイズ: 100 MiB。

## Capability ゲート

ビジョンリクエストは、対象モデルが `vision` capability を持たない場合は拒否されます — インラインの `image_url` パートでも、purpose がビジョンに対応する `file_id` 参照でも同様です。モデルと capability の一覧は [Models](/ja/api/models/) を参照。

<Aside type="tip">
  同じ画像に対して繰り返しリクエストする場合は `file_id` 参照が便利です — 再アップロード不要で、ペイロードも肥大化しません。
</Aside>
