> ## Documentation Index
> Fetch the complete documentation index at: https://docs.starfort.io/llms.txt
> Use this file to discover all available pages before exploring further.

# マルチモーダル入力

> 画像、音声、ドキュメント、アーカイブ、動画をコンテンツパートとして送信してガードします。

`user` メッセージの `content` は**コンテンツパート**の配列にできるため、1 つのリクエストでテキストとファイルを混在させることができます。**6 つの Input Type** — Text、Image、Audio、Video、Document、Archive — があり、Guardian は [Input Type](/ja/v1.2/concepts/guardian) が有効になっている各パートを検査します。

```json theme={null}
{
  "messages": [{
    "role": "user",
    "content": [
      { "type": "text", "text": "Please review the attached file." },
      { "type": "image_url", "image_url": { "url": "data:image/png;base64,iVBORw0..." } }
    ]
  }],
  "processType": "input"
}
```

## コンテンツパートのタイプ

| `type`        | Input Type         | エンコーディング                                                                              |
| ------------- | ------------------ | ------------------------------------------------------------------------------------- |
| `text`        | Text               | `text` 内のプレーン文字列                                                                      |
| `image_url`   | Image              | `data:` URI としての `image_url.url`（PNG、JPG、WebP、GIF、BMP、TIFF、AVIF、HEIC）                 |
| `input_audio` | Audio              | `input_audio.data`（base64）+ `input_audio.format`（`wav`、`mp3`）                         |
| `file`        | Document / Archive | `data:` URI としての `file.file_data` + `file.filename`（PDF、DOCX、XLSX、PPTX、TXT、CSV、…、ZIP） |
| `video_url`   | Video              | `data:` URI としての `video_url.url`（MP4）— Starfort の拡張                                   |

Document と Archive はどちらも `type: "file"` を使用します。Starfort は `type` フィールドではなく、ファイルの**実際の MIME / マジックバイトのタイプ**によって、それらを正しい Input Type に振り分けます。`data:` URI のペイロードは**標準**の base64（`+`、`/`、`=`）でエンコードしてください。URL セーフな base64（`-`、`_`）はサポートされていません。

## ルール

* パートは、その **Input Type が Guardian で有効になっている**場合にのみ検査されます。そうでない場合は、Guardian の未対応ファイルの処理設定（下記）に応じて、リクエストが拒否されるか、そのパートがスキップされます。
* レスポンスでは、各パートが `text`／`image`／`audio`／`video`／`document`／`archive` の `type` を持つ独立した `input_results[]` エントリとして報告され、ファイルパートには `identifier`（ファイル名）が付与されます。

## 未対応のファイル

**ファイル**パートのカテゴリーまたは拡張子が Guardian で有効になっていない場合、Guardian の **Unsupported File Handling** 設定によって何が起こるかが決まります。

* **BLOCK（デフォルト）** — 1 つの未対応ファイルが、事前検証中に**リクエスト全体**をブロックします。対応しているパート（テキスト、許可されたファイル）も検査されません。
* **PASS** — 未対応のファイルパートのみが**スキップ**されます（Guardian の分析なしでそのまま通過します）。リクエストの残りは通常どおり検査されます。*すべての*入力が未対応の場合、リクエストは Guardian を呼び出さずに通過します。スキップされたファイルはトレースに記録されます（`skippedUnsupportedFiles` メタデータ + `unsupported_file:skipped` タグ）。

<Note>
  **偽装されたファイルは常にブロックされます。** PASS の場合でも、拡張子は許可されているがその実際のコンテンツ（マジックバイト）が宣言されたタイプと一致しないファイルはブロックされます。チェックはファイル名ではなく実際のコンテンツに対して行われます。
</Note>

<Note>
  [Guardian を登録する](/ja/v1.2/admin/register-guardian)際に、送信する予定の Input Type を有効にしてください。デフォルトの `VLM-OCR` プリセットは、テキストに加えて幅広い画像、ドキュメント、アーカイブ形式をサポートします。
</Note>
