엔드포인트
비전 및 파일 입력
이미지, PDF, 오디오, 동영상을 메시지 content 파트에 담아 모델에 보내는 방법입니다. 파트 형식, PDF 파서 플러그인, 응답 구조, 크기 제한과 오류 처리를 요청 예제로 설명합니다. 이미지와 PDF 예제를 각각 제공합니다.
플레이그라운드에서 사용해 보기멀티모달 모델은 사용자 메시지에서 이미지, PDF, 오디오, 동영상을 받습니다. content를 문자열 대신 파트 배열로 전달하세요. 모델이 무엇을 받는지는 모델의 architecture.input_modalities(image, file, audio, video)에서 확인하세요.
Content 파트
| 파트 | 형식 | 비고 |
|---|---|---|
| 텍스트 | { "type": "text", "text": "..." } | |
| 이미지 | { "type": "image_url", "image_url": { "url": "https://..." | "data:image/png;base64,...", "detail": "auto" } } | PNG, JPEG, WebP, GIF. URL 또는 base64 데이터 URL. |
| PDF / 파일 | { "type": "file", "file": { "filename": "doc.pdf", "file_data": "https://..." | "data:application/pdf;base64,..." } } | 모든 모델에서 동작합니다. 파일을 기본 지원하지 않는 모델에는 파싱된 텍스트가 전달됩니다. |
| 오디오 | { "type": "input_audio", "input_audio": { "data": "<base64>", "format": "wav" } } | base64만 가능합니다. wav, mp3 등은 모델에 따라 다릅니다. |
| 동영상 | { "type": "video_url", "video_url": { "url": "https://..." } } | Gemini 등 일부 모델이 지원합니다. |
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "openai/gpt-5-mini",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://upload.wikimedia.org/wikipedia/commons/3/3a/Cat03.jpg"
}
}
]
}
]
});
console.log(result.choices[0].message.content);
이미지 예제
{
"model": "google/gemini-2.5-flash",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "What is in this picture?" },
{ "type": "image_url", "image_url": { "url": "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg" } }
]
}
]
}
PDF 예제
{
"model": "anthropic/claude-sonnet-4.5",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "Summarize this contract in five bullets." },
{ "type": "file", "file": { "filename": "contract.pdf", "file_data": "data:application/pdf;base64,JVBERi0xLjcK..." } }
]
}
],
"plugins": [{ "id": "file-parser", "pdf": { "engine": "pdf-text" } }]
}
선택 사항인 file-parser 플러그인은 PDF를 읽는 방식을 정합니다. pdf-text(무료 텍스트 추출), mistral-ocr(스캔본용 OCR, 페이지당 과금), native(모델이 파일을 직접 읽음) 중에서 고릅니다. 파싱 비용은 usage.cost에 포함됩니다.
응답
응답은 일반 채팅 완성입니다. 이미지, 파일, 오디오 입력은 입력 토큰으로 계산되며 그 비용은 usage.cost에 포함됩니다.
{
"choices": [{ "index": 0, "finish_reason": "stop", "message": { "role": "assistant", "content": "A close-up of an ant on a leaf." } }],
"usage": { "prompt_tokens": 1290, "completion_tokens": 12, "total_tokens": 1302, "cost": 0.000417 }
}
제한 및 오류
- 요청 본문은 최대 25 MB입니다. base64는 파일을 약 33% 더 크게 만듭니다. 더 큰 요청은
413 payload_too_large를 반환합니다. 큰 이미지는 공개 URL을 사용하세요. - 입력 유형을 지원하지 않는 모델은 업스트림
400또는404를 반환합니다. - 그 밖의 오류는 Chat completions와 같습니다. 오류를 참고하세요.