> ## 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`는 **콘텐츠 파트** 배열이 될 수 있으므로, 하나의 요청에 텍스트와 파일을 함께 담을 수 있습니다. **여섯 가지 Input Type**(Text, Image, Audio, Video, Document, Archive)이 있으며, Guardian은 [Input Type](/ko/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              | `image_url.url`을 `data:` URI로(PNG, JPG, WebP, GIF, BMP, TIFF, AVIF, HEIC)                 |
| `input_audio` | Audio              | `input_audio.data`(base64) + `input_audio.format`(`wav`, `mp3`)                           |
| `file`        | Document / Archive | `file.file_data`를 `data:` URI로 + `file.filename`(PDF, DOCX, XLSX, PPTX, TXT, CSV, …, ZIP) |
| `video_url`   | Video              | `video_url.url`을 `data:` URI로(MP4) — Starfort 확장 기능                                       |

Document와 Archive는 모두 `type: "file"`을 사용합니다. Starfort는 `type` 필드가 아니라 파일의 **실제 MIME / 매직 바이트 타입**으로 올바른 Input Type에 라우팅합니다. `data:` URI 페이로드는 **표준** base64(`+`, `/`, `=`)로 인코딩하세요 — URL-safe base64(`-`, `_`)는 지원되지 않습니다.

## 규칙

* 파트는 **Guardian에서 해당 Input Type이 활성화된 경우에만** 검사됩니다. 그렇지 않으면 Guardian의 미지원 파일 처리 방식(아래)에 따라 요청이 거부되거나 해당 파트가 건너뛰어집니다.
* 응답에서 각 파트는 `text` / `image` / `audio` / `video` / `document` / `archive` 중 하나의 `type`을 가진 자체 `input_results[]` 항목으로 보고되며, 파일 파트는 `identifier`(파일 이름)를 포함합니다.

## 미지원 파일

**파일** 파트의 카테고리나 확장자가 Guardian에서 활성화되지 않은 경우, Guardian의 **Unsupported File Handling** 설정이 동작을 결정합니다:

* **BLOCK(기본값)** — 단 하나의 미지원 파일이 사전 검증 단계에서 **요청 전체**를 차단합니다. 지원되는 파트(텍스트, 허용된 파일)도 검사되지 않습니다.
* **PASS** — 미지원 파일 파트만 **건너뛰어지며**(Guardian 분석 없이 그대로 통과), 나머지 요청은 정상적으로 검사됩니다. *모든* 입력이 미지원이라면 Guardian 호출 없이 요청이 통과합니다. 건너뛴 파일은 트레이스에 기록됩니다(`skippedUnsupportedFiles` 메타데이터 + `unsupported_file:skipped` 태그).

<Note>
  **위장된 파일은 항상 차단됩니다.** PASS 설정에서도, 확장자는 허용되지만 실제 콘텐츠(매직 바이트)가 선언된 타입과 일치하지 않는 파일은 차단됩니다 — 검사는 파일 이름이 아니라 실제 콘텐츠를 기준으로 합니다.
</Note>

<Note>
  [Guardian을 등록](/ko/v1.2/admin/register-guardian)할 때 전송하려는 Input Type을 활성화하세요. 기본 `VLM-OCR` 프리셋은 텍스트와 더불어 다양한 이미지, 문서, 아카이브 형식을 지원합니다.
</Note>
