Gemini Chat Completions API 요청에 이미지를 추가하여 포함된 이미지의 콘텐츠를 이해하는 것과 관련된 작업을 수행할 수 있습니다. 이미지 이해는 텍스트와 미디어 파일을 결합하는 Gemini의 멀티모달 입력 중 하나입니다.
Gemini를 사용한 이미지 이해와 API 요청 전송에 관한 단계별 안내는 멀티모달 프롬프트 보내기를 참고하세요.
이미지가 포함된 프롬프트의 사양
Gemini 요청에 하나 또는 여러 이미지를 추가할 수 있습니다. Google Distributed Cloud (GDC) 에어갭에서 Gemini 모델의 성능을 보장하기 위해 프롬프트당 최대 이미지 수는 100개입니다.
이미지의 픽셀 수에는 제한이 없습니다. 그러나 큰 이미지는 원래 가로세로 비율을 유지하면서 최대 해상도인 768 x 768에 맞게 축소 및 패딩됩니다. 각 이미지는 258개의 토큰에 해당합니다.
이미지는 다음 이미지 데이터 MIME 유형 중 하나여야 합니다.
- HEIC:
image/heic - HEIF:
image/heif - JPG:
image/jpg또는image/jpeg - PNG:
image/png - WEBP:
image/webp
REST API에서 채팅 완성 엔드포인트를 사용하고 HTTP 클라이언트 또는 OpenAI의 공식 Python SDK를 사용할 수 있습니다. 프롬프트 요청에 base64 인코딩 파일로 인라인 데이터를 이미지로 제공하거나 프롬프트 요청을 하기 전에 스토리지 버킷에 이미지 파일을 업로드할 수 있습니다.
Google Cloud 문서에서 이미지에 관한 권장사항과 제한사항에 대해 자세히 알아보세요.
OpenAI 및 Gemini가 Google Distributed Cloud (GDC) 에어갭에서 구현하는 Chat Completions 엔드포인트에 대해 자세히 알아보려면 https://platform.openai.com/docs/api-reference/chat을 참고하세요.
프롬프트에서 이미지를 이해하기
다음 예에서는 Python 또는 curl용 OpenAI 공식 SDK를 사용하여 텍스트 및 이미지 입력에서 텍스트를 생성하는 Gemini Chat Completions API 요청을 보여줍니다.
Python
import openai
client = openai.OpenAI()
model_response = client.chat.completions.create(
model = "MODEL_ID",
messages = [
{
"role": "user",
"content": "What's in this image?"
},
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
# Image URL or base64-encoded data
"url": IMAGE_DATA,
}
}
]
}
]
)
print(model_response)
다음을 바꿉니다.
MODEL_ID: 대답을 생성하려는 모델의 엔드포인트 ID입니다.IMAGE_DATA: 버킷의 이미지 URL 경로 또는 base64로 인코딩된 이미지 데이터입니다. 데이터에 따라 다음 사항을 고려하세요.- Base64로 인코딩된 데이터에는 데이터 URI 스키마(RFC 2397)가 접두사로 붙어야 합니다.
따라서 base64로 인코딩된 데이터의
url필드 형식은"url": f"data:image/jpeg;base64,{base64_image}"입니다. - 이미지 URL은 GDC 스토리지 버킷에 저장된 이미지를 참조해야 합니다. 따라서 이미지 URL의
url필드 형식은"url": "s3://path/to/bucket/image"입니다. 자세한 내용은 데이터 저장을 참고하세요.
- Base64로 인코딩된 데이터에는 데이터 URI 스키마(RFC 2397)가 접두사로 붙어야 합니다.
따라서 base64로 인코딩된 데이터의
curl
curl \
-X POST "https://ENDPOINT:443/v1/projects/PROJECT/locations/PROJECT/chat/completions" \
-H "Content-Type: application/json; charset=utf-8" \
-H "Authorization: Bearer $(gdcloud auth print-identity-token)" \
-d '{
"model_id": "MODEL_ID",
"messages": [
{
"role": "user",
"content": "What's in this image?"
},
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
# Image URL or base64-encoded data
"url": IMAGE_DATA
}
}
]
}
],
"max_tokens": 300
}'
다음을 바꿉니다.
ENDPOINT: 조직에서 사용하는 API 엔드포인트입니다.PROJECT: 프로젝트 ID입니다.MODEL_ID: 대답을 생성하려는 모델의 엔드포인트 ID입니다.IMAGE_DATA: 버킷의 이미지 URL 경로 또는 base64로 인코딩된 이미지 데이터입니다. 데이터에 따라 다음 사항을 고려하세요.- Base64로 인코딩된 데이터에는 데이터 URI 스키마(RFC 2397)가 접두사로 붙어야 합니다.
따라서 base64로 인코딩된 데이터의
url필드 형식은"url": f"data:image/jpeg;base64,{base64_image}"입니다. - 이미지 URL은 GDC 스토리지 버킷에 저장된 이미지를 참조해야 합니다. 따라서 이미지 URL의
url필드 형식은"url": "s3://path/to/bucket/image"입니다. 자세한 내용은 데이터 저장을 참고하세요.
- Base64로 인코딩된 데이터에는 데이터 URI 스키마(RFC 2397)가 접두사로 붙어야 합니다.
따라서 base64로 인코딩된 데이터의