user メッセージの content はコンテンツパートの配列にできるため、1 つのリクエストでテキストとファイルを混在させることができます。6 つの Input Type — Text、Image、Audio、Video、Document、Archive — があり、Guardian は Input Type が有効になっている各パートを検査します。
コンテンツパートのタイプ
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 の拡張 |
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タグ)。
偽装されたファイルは常にブロックされます。 PASS の場合でも、拡張子は許可されているがその実際のコンテンツ(マジックバイト)が宣言されたタイプと一致しないファイルはブロックされます。チェックはファイル名ではなく実際のコンテンツに対して行われます。
Guardian を登録する際に、送信する予定の Input Type を有効にしてください。デフォルトの
VLM-OCR プリセットは、テキストに加えて幅広い画像、ドキュメント、アーカイブ形式をサポートします。