> ## 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.

# マルチモーダル入力

> 画像・音声・ドキュメント・アーカイブ・動画をコンテンツパートとして Starfort Guard API に送信し、パートごとの結果をレスポンスで受け取ります (Starfort v1.4 版)

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

```json theme={"dark"}
{
  "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** 設定によって何が起こるかが決まります。v1.4 からは、この設定の適用ポイントは **Guardian の単一ポイント**です — ゲートウェイは未対応ファイルを自ら判定・破棄せず、設定を Guardian に引き渡し、Guardian が**最上位のファイルとアーカイブ（ZIP）内部のメンバーに同一に**適用します。

* **BLOCK（デフォルト）** — 未対応ファイルが 1 つでもあると、**リクエスト全体**が拒否されます。対応しているパート（テキスト、許可されたファイル）も検査されません。分析できないコンテンツを無検査で通過させない、フェイルクローズの動作です。
* **PASS** — 未対応のファイルパートのみが**検査から除外**され、リクエストの残りは通常どおり検査されます。アーカイブ内部も同じルールです — 未対応のメンバーだけをスキップして残りのメンバーは検査されるため、拡張子のない付属ファイルが混在する正常なアーカイブが丸ごと拒否されることはありません。

<Note>
  **検査から除外されたファイルの原本は、外部へ送出されません。** Guardian が内容を確認できなかった入力は[処理済みコンテンツ](/ja/v1.4/api/response-format)（`processed_content`）を作れないため `null` で返され、処理済みコンテンツのない入力は送出の対象になりません。
</Note>

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

バケットに保存されたファイル自体を非識別化して**マスキングされたファイルとして保存**する必要がある場合（例: `.docx` をマスキングされた `.docx` として再構成する）、[S3 連携の非識別化バッチ](/ja/v1.4/api/batch/overview)を使用してください。

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