이미지 이해하기

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"입니다. 자세한 내용은 데이터 저장을 참고하세요.

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"입니다. 자세한 내용은 데이터 저장을 참고하세요.

다음 단계