Gemini 요청에 이미지를 추가하여 포함된 이미지 콘텐츠를 이해하는 것과 관련된 작업을 수행할 수 있습니다. 이 페이지에서는Google Cloud 콘솔과 Vertex AI API를 사용하여 Vertex AI의 Gemini에 대한 요청에 이미지를 추가하는 방법을 보여줍니다.
지원되는 모델
다음 표에는 이미지 인식을 지원하는 모델이 나와 있습니다.
| 모델 | 미디어 세부정보 | MIME 유형 | 
|---|---|---|
| Gemini 2.5 Flash (미리보기) | 
 | 
 | 
| Gemini 2.5 Flash-Lite (프리뷰) | 
 | 
 | 
| Gemini 2.5 Flash 이미지 | 
 | 
 | 
| Gemini 2.5 Flash-Lite | 
 | 
 | 
| 이미지 생성을 지원하는 Gemini 2.0 Flash (프리뷰) | 
 | 
 | 
| Gemini 2.5 Pro | 
 | 
 | 
| Gemini 2.5 Flash | 
 | 
 | 
| Gemini 2.0 Flash | 
 | 
 | 
| Gemini 2.0 Flash-Lite | 
 | 
 | 
할당량 측정항목은 generate_content_video_input_per_base_model_id_and_resolution입니다.
Gemini 모델에서 지원되는 언어 목록은 모델 정보 Google 모델을 참조하세요. 멀티모달 프롬프트를 설계하는 방법에 대한 자세한 내용은 멀티모달 프롬프트 설계를 참조하세요. 모바일 및 웹 앱에서 Gemini를 직접 사용할 수 있는 방법을 찾는 경우 Swift, Android, 웹, Flutter, Unity 앱의 Firebase AI Logic 클라이언트 SDK를 참조하세요.
요청에 이미지 추가
Gemini에 요청할 때 하나 또는 여러 개의 이미지를 추가할 수 있습니다.
단일 이미지
다음 각 탭의 샘플 코드는 이미지에 포함된 항목을 식별하는 다양한 방법을 보여줍니다. 이 샘플은 모든 Gemini 멀티모달 모델에서 작동합니다.
콘솔
Google Cloud 콘솔을 사용하여 멀티모달 프롬프트를 보내려면 다음을 수행합니다.- 콘솔의 Vertex AI 섹션에서 Google Cloud Vertex AI 스튜디오 페이지로 이동합니다. 
- 자유 형식 열기를 클릭합니다. 
- 선택사항: 모델 및 파라미터를 구성합니다. - 모델: 모델을 선택합니다.
- 리전: 사용할 리전을 선택합니다.
- 온도: 슬라이더 또는 텍스트 상자를 사용해서 온도 값을 입력합니다. - 온도는 응답 생성 중 샘플링에 사용되며 - topP및- topK가 적용될 때 발생합니다. 온도는 토큰 선택의 무작위성 수준을 제어합니다. 낮은 온도는 덜 개방적인 또는 덜 창의적인 대답이 필요한 프롬프트에 적합한 반면, 높은 온도는 더 창의적인 대답으로 이어질 수 있습니다. 온도가- 0이면 확률이 가장 높은 토큰이 항상 선택됩니다. 이 경우 특정 프롬프트에 대한 응답은 대부분 확정적이지만 여전히 약간의 변형이 가능합니다.- 모델이 너무 일반적이거나, 너무 짧은 응답을 반환하거나 모델이 대체 응답을 제공할 경우에는 온도를 높여보세요. 
- 출력 토큰 한도: 슬라이더 또는 텍스트 상자를 사용하여 최대 출력 한도의 값을 입력합니다. - 응답에서 생성될 수 있는 토큰의 최대 개수입니다. 토큰은 약 4자(영문 기준)입니다. 토큰 100개는 단어 약 60~80개에 해당합니다. - 응답이 짧을수록 낮은 값을 지정하고 잠재적으로 응답이 길면 높은 값을 지정합니다. 
- 중지 시퀀스 추가: 선택사항. 공백이 포함된 일련의 문자인 중지 시퀀스를 입력합니다. 모델에 중지 시퀀스가 발생하면 응답 생성이 중지됩니다. 중지 시퀀스는 응답에 포함되지 않으며 중지 시퀀스를 최대 5개까지 추가할 수 있습니다. 
 
- 선택사항: 고급 매개변수를 구성하려면 고급을 클릭하고 다음과 같이 구성합니다. - 클릭하여 고급 구성 펼치기- Top-K: 슬라이더 또는 텍스트 상자를 사용하여 최상위 K의 값을 입력합니다. Gemini 1.5에서는 지원되지 않습니다. Top-K는 모델이 출력용 토큰을 선택하는 방식을 변경합니다. Top-K가- 1이면 선택된 토큰이 모델의 어휘에 포함된 모든 토큰 중에서 가장 확률이 높다는 의미입니다(그리디 디코딩이라고도 함). 반면에 Top-K가- 3이면 강도를 사용하여 가장 확률이 높은 3개 토큰 중에서 다음 토큰이 선택된다는 의미입니다.- 각 토큰 선택 단계에서 확률이 가장 높은 Top-K 토큰이 샘플링됩니다. 그런 다음 Top-P를 기준으로 토큰을 추가로 필터링하고 온도 샘플링을 사용하여 최종 토큰을 선택합니다. - 임의성이 낮은 응답에 낮은 값을 지정하고 임의성이 높은 응답에 높은 값을 지정합니다. 
- Top-P: 슬라이더 또는 텍스트 상자를 사용하여 최상위 P의 값을 입력합니다.
      토큰의 확률 합계가 최상위 P 값과 같아질 때까지 확률이 가장 높은 순에서 낮은 순으로 토큰이 선택됩니다. 최소 변수 결과의 경우 top-P를 0으로 설정합니다.
- 최대 응답: 슬라이더 또는 텍스트 상자를 사용하여 생성할 응답 수에 대한 값을 입력합니다.
- 응답 스트리밍: 생성 중인 응답을 출력할 수 있습니다.
- 안전 필터 기준점: 유해할 수 있는 응답이 표시될 가능성에 대한 기준점을 선택합니다.
- 그라운딩 사용 설정: 멀티모달 프롬프트에서는 그라운딩이 지원되지 않습니다.
 
- 미디어 삽입을 클릭하고 파일의 소스를 선택합니다. - 업로드- 업로드할 파일을 선택하고 열기를 클릭합니다. - URL 사용- 사용하려는 파일의 URL을 입력하고 삽입을 클릭합니다. - Cloud Storage- 버킷과 버킷에서 가져오려는 파일을 선택한 후 선택을 클릭합니다. - Google Drive- 계정을 선택하고 이 옵션을 처음 선택할 때 Vertex AI Studio의 계정 액세스를 동의합니다. 총 크기가 10MB인 파일 여러 개를 업로드할 수 있습니다. 단일 파일은 7MB를 초과할 수 없습니다.
- 추가하려는 파일을 클릭합니다.
- 선택을 클릭합니다. - 파일 썸네일이 프롬프트 창에 표시됩니다. 토큰 총개수도 표시됩니다. 프롬프트 데이터가 토큰 한도를 초과하면 토큰이 잘리고 데이터 처리에 포함되지 않습니다. 
 
- 프롬프트 창에 텍스트 프롬프트를 입력합니다. 
- 선택사항: 텍스트에 대한 토큰 ID 및 토큰 ID를 보려면 프롬프트 창에서 토큰 수를 클릭합니다. 
- 제출을 클릭합니다. 
- 선택사항: 프롬프트를 내 프롬프트에 저장하려면 저장을 클릭합니다. 
- 선택사항: 프롬프트에 대해 Python 코드 또는 curl 명령어를 가져오려면 코드 가져오기를 클릭합니다. 
Python
설치
pip install --upgrade google-genai
자세한 내용은 SDK 참고 문서를 참조하세요.
Vertex AI에서 생성형 AI SDK를 사용하도록 환경 변수를 설정합니다.
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Go
Go를 설치하거나 업데이트하는 방법을 알아보세요.
자세한 내용은 SDK 참고 문서를 참조하세요.
Vertex AI에서 생성형 AI SDK를 사용하도록 환경 변수를 설정합니다.
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Node.js
설치
npm install @google/genai
자세한 내용은 SDK 참고 문서를 참조하세요.
Vertex AI에서 생성형 AI SDK를 사용하도록 환경 변수를 설정합니다.
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Java
Java를 설치하거나 업데이트하는 방법을 알아보세요.
자세한 내용은 SDK 참고 문서를 참조하세요.
Vertex AI에서 생성형 AI SDK를 사용하도록 환경 변수를 설정합니다.
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
REST
환경을 설정하면 REST를 사용하여 텍스트 프롬프트를 테스트할 수 있습니다. 다음 샘플은 요청을 게시자 모델 엔드포인트에 전송합니다.
Cloud Storage에 저장된 이미지를 포함하거나 base64로 인코딩된 이미지 데이터를 사용할 수 있습니다.Cloud Storage의 이미지
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- FILE_URI: 프롬프트에 포함할 파일의 URI 또는 URL입니다. 허용되는 값은 다음과 같습니다.- Cloud Storage 버킷 URI: 객체는 공개적으로 읽을 수 있거나 요청을 보내는 동일한 Google Cloud 프로젝트에 있어야 합니다. gemini-2.0-flash및gemini-2.0-flash-lite의 경우 크기 제한은 2GB입니다.
- HTTP URL: 파일 URL은 공개적으로 읽을 수 있어야 합니다. 요청당 동영상 파일 하나, 오디오 파일 하나, 이미지 파일 최대 10개를 지정할 수 있습니다. 오디오 파일, 동영상 파일, 문서는 15MB를 초과할 수 없습니다.
- YouTube 동영상 URL: YouTube 동영상은 Google Cloud 콘솔에 로그인하는 데 사용된 계정이 소유한 것이거나 공개된 동영상이어야 합니다. 요청당 하나의 YouTube 동영상 URL만 지원됩니다.
 - fileURI를 지정할 때는 파일의 미디어 유형(- mimeType)도 지정해야 합니다. VPC 서비스 제어가 사용 설정된 경우- fileURI의 미디어 파일 URL을 지정하는 것은 지원되지 않습니다.- Cloud Storage에 이미지 파일이 없는 경우 공개적으로 사용 가능한 파일(MIME 유형이 - image/jpeg인- gs://cloud-samples-data/generative-ai/image/scones.jpg)을 사용할 수 있습니다. 이 이미지를 보려면 샘플 이미지 파일을 엽니다.
- Cloud Storage 버킷 URI: 객체는 공개적으로 읽을 수 있거나 요청을 보내는 동일한 Google Cloud 프로젝트에 있어야 합니다. 
- MIME_TYPE:- data또는- fileUri필드에 지정된 파일의 미디어 유형입니다. 허용되는 값은 다음과 같습니다.- 클릭하여 MIME 유형 펼치기 - application/pdf
- audio/mpeg
- audio/mp3
- audio/wav
- image/png
- image/jpeg
- image/webp
- text/plain
- video/mov
- video/mpeg
- video/mp4
- video/mpg
- video/avi
- video/wmv
- video/mpegps
- video/flv
 
- TEXT: 프롬프트에 포함할 텍스트 안내입니다. 예를 들면- What is shown in this image?입니다.
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
      요청 본문을 request.json 파일에 저장합니다.
      터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.
    
cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
EOF그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-1.5-flash:generateContent"
PowerShell
      요청 본문을 request.json 파일에 저장합니다.
      터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.
    
@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 수신됩니다.
Base64 이미지 데이터
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- LOCATION: 요청을 처리하는 리전입니다. 지원되는 리전을 입력합니다. 지원되는 리전의 전체 목록은 사용 가능한 위치를 참조하세요.- 클릭하여 사용 가능한 리전의 일부 목록 펼치기 - us-central1
- us-west4
- northamerica-northeast1
- us-east4
- us-west1
- asia-northeast3
- asia-southeast1
- asia-northeast1
 
- PROJECT_ID: 프로젝트 ID입니다.
- B64_BASE_IMAGE - mimeType)도 지정해야 합니다.
- MIME_TYPE:- data또는- fileUri필드에 지정된 파일의 미디어 유형입니다. 허용되는 값은 다음과 같습니다.- 클릭하여 MIME 유형 펼치기 - application/pdf
- audio/mpeg
- audio/mp3
- audio/wav
- image/png
- image/jpeg
- image/webp
- text/plain
- video/mov
- video/mpeg
- video/mp4
- video/mpg
- video/avi
- video/wmv
- video/mpegps
- video/flv
 
- TEXT: 프롬프트에 포함할 텍스트 안내입니다. 예를 들면- What is shown in this image?입니다.
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
      요청 본문을 request.json 파일에 저장합니다.
      터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.
    
cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "inlineData": {
          "data": "B64_BASE_IMAGE",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
EOF그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-1.5-flash:generateContent"
PowerShell
      요청 본문을 request.json 파일에 저장합니다.
      터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.
    
@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "inlineData": {
          "data": "B64_BASE_IMAGE",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 수신됩니다.
- 응답이 완전히 생성된 후 반환되도록 요청하려면 generateContent메서드를 사용합니다. 시청자가 지연 시간에 대해 갖는 느낌을 줄이려면streamGenerateContent메서드를 사용하여 생성되는 응답을 스트리밍합니다.
- 멀티모달 모델 ID는 메서드 앞의 URL 끝 부분에 있습니다(예: gemini-2.0-flash). 이 샘플은 다른 모델도 지원할 수 있습니다.
여러 이미지
다음 각 탭은 프롬프트 요청에 여러 이미지를 포함하는 다양한 방법을 보여줍니다. 각 샘플은 다음과 같은 두 입력 세트를 사용합니다.
- 인기 도시 랜드마크의 이미지
- 이미지의 미디어 유형
- 이미지의 도시와 랜드마크를 나타내는 텍스트
이 샘플은 세 번째 이미지와 미디어 유형도 가져오지만 텍스트는 가져오지 않습니다. 샘플에서 세 번째 이미지의 도시와 랜드마크를 나타내는 텍스트 응답을 반환합니다.
이러한 이미지 샘플은 모든 Gemini 멀티모달 모델에서 작동합니다.
콘솔
Google Cloud 콘솔을 사용하여 멀티모달 프롬프트를 보내려면 다음을 수행합니다.- 콘솔의 Vertex AI 섹션에서 Google Cloud Vertex AI 스튜디오 페이지로 이동합니다. 
- 자유 형식 열기를 클릭합니다. 
- 선택사항: 모델 및 파라미터를 구성합니다. - 모델: 모델을 선택합니다.
- 리전: 사용할 리전을 선택합니다.
- 온도: 슬라이더 또는 텍스트 상자를 사용해서 온도 값을 입력합니다. - 온도는 응답 생성 중 샘플링에 사용되며 - topP및- topK가 적용될 때 발생합니다. 온도는 토큰 선택의 무작위성 수준을 제어합니다. 낮은 온도는 덜 개방적인 또는 덜 창의적인 대답이 필요한 프롬프트에 적합한 반면, 높은 온도는 더 창의적인 대답으로 이어질 수 있습니다. 온도가- 0이면 확률이 가장 높은 토큰이 항상 선택됩니다. 이 경우 특정 프롬프트에 대한 응답은 대부분 확정적이지만 여전히 약간의 변형이 가능합니다.- 모델이 너무 일반적이거나, 너무 짧은 응답을 반환하거나 모델이 대체 응답을 제공할 경우에는 온도를 높여보세요. 
- 출력 토큰 한도: 슬라이더 또는 텍스트 상자를 사용하여 최대 출력 한도의 값을 입력합니다. - 응답에서 생성될 수 있는 토큰의 최대 개수입니다. 토큰은 약 4자(영문 기준)입니다. 토큰 100개는 단어 약 60~80개에 해당합니다. - 응답이 짧을수록 낮은 값을 지정하고 잠재적으로 응답이 길면 높은 값을 지정합니다. 
- 중지 시퀀스 추가: 선택사항. 공백이 포함된 일련의 문자인 중지 시퀀스를 입력합니다. 모델에 중지 시퀀스가 발생하면 응답 생성이 중지됩니다. 중지 시퀀스는 응답에 포함되지 않으며 중지 시퀀스를 최대 5개까지 추가할 수 있습니다. 
 
- 선택사항: 고급 매개변수를 구성하려면 고급을 클릭하고 다음과 같이 구성합니다. - 클릭하여 고급 구성 펼치기- Top-K: 슬라이더 또는 텍스트 상자를 사용하여 최상위 K의 값을 입력합니다. Gemini 1.5에서는 지원되지 않습니다. Top-K는 모델이 출력용 토큰을 선택하는 방식을 변경합니다. Top-K가- 1이면 선택된 토큰이 모델의 어휘에 포함된 모든 토큰 중에서 가장 확률이 높다는 의미입니다(그리디 디코딩이라고도 함). 반면에 Top-K가- 3이면 강도를 사용하여 가장 확률이 높은 3개 토큰 중에서 다음 토큰이 선택된다는 의미입니다.- 각 토큰 선택 단계에서 확률이 가장 높은 Top-K 토큰이 샘플링됩니다. 그런 다음 Top-P를 기준으로 토큰을 추가로 필터링하고 온도 샘플링을 사용하여 최종 토큰을 선택합니다. - 임의성이 낮은 응답에 낮은 값을 지정하고 임의성이 높은 응답에 높은 값을 지정합니다. 
- Top-P: 슬라이더 또는 텍스트 상자를 사용하여 최상위 P의 값을 입력합니다.
      토큰의 확률 합계가 최상위 P 값과 같아질 때까지 확률이 가장 높은 순에서 낮은 순으로 토큰이 선택됩니다. 최소 변수 결과의 경우 top-P를 0으로 설정합니다.
- 최대 응답: 슬라이더 또는 텍스트 상자를 사용하여 생성할 응답 수에 대한 값을 입력합니다.
- 응답 스트리밍: 생성 중인 응답을 출력할 수 있습니다.
- 안전 필터 기준점: 유해할 수 있는 응답이 표시될 가능성에 대한 기준점을 선택합니다.
- 그라운딩 사용 설정: 멀티모달 프롬프트에서는 그라운딩이 지원되지 않습니다.
 
- 미디어 삽입을 클릭하고 파일의 소스를 선택합니다. - 업로드- 업로드할 파일을 선택하고 열기를 클릭합니다. - URL 사용- 사용하려는 파일의 URL을 입력하고 삽입을 클릭합니다. - Cloud Storage- 버킷과 버킷에서 가져오려는 파일을 선택한 후 선택을 클릭합니다. - Google Drive- 계정을 선택하고 이 옵션을 처음 선택할 때 Vertex AI Studio의 계정 액세스를 동의합니다. 총 크기가 10MB인 파일 여러 개를 업로드할 수 있습니다. 단일 파일은 7MB를 초과할 수 없습니다.
- 추가하려는 파일을 클릭합니다.
- 선택을 클릭합니다. - 파일 썸네일이 프롬프트 창에 표시됩니다. 토큰 총개수도 표시됩니다. 프롬프트 데이터가 토큰 한도를 초과하면 토큰이 잘리고 데이터 처리에 포함되지 않습니다. 
 
- 프롬프트 창에 텍스트 프롬프트를 입력합니다. 
- 선택사항: 텍스트에 대한 토큰 ID 및 토큰 ID를 보려면 프롬프트 창에서 토큰 수를 클릭합니다. 
- 제출을 클릭합니다. 
- 선택사항: 프롬프트를 내 프롬프트에 저장하려면 저장을 클릭합니다. 
- 선택사항: 프롬프트에 대해 Python 코드 또는 curl 명령어를 가져오려면 코드 가져오기를 클릭합니다. 
Python
설치
pip install --upgrade google-genai
자세한 내용은 SDK 참고 문서를 참조하세요.
Vertex AI에서 생성형 AI SDK를 사용하도록 환경 변수를 설정합니다.
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Go
Go를 설치하거나 업데이트하는 방법을 알아보세요.
자세한 내용은 SDK 참고 문서를 참조하세요.
Vertex AI에서 생성형 AI SDK를 사용하도록 환경 변수를 설정합니다.
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Node.js
설치
npm install @google/genai
자세한 내용은 SDK 참고 문서를 참조하세요.
Vertex AI에서 생성형 AI SDK를 사용하도록 환경 변수를 설정합니다.
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Java
Java를 설치하거나 업데이트하는 방법을 알아보세요.
자세한 내용은 SDK 참고 문서를 참조하세요.
Vertex AI에서 생성형 AI SDK를 사용하도록 환경 변수를 설정합니다.
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
REST
환경을 설정하면 REST를 사용하여 텍스트 프롬프트를 테스트할 수 있습니다. 다음 샘플은 요청을 게시자 모델 엔드포인트에 전송합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: .
- FILE_URI1: 프롬프트에 포함할 파일의 URI 또는 URL입니다. 허용되는 값은 다음과 같습니다.- Cloud Storage 버킷 URI: 객체는 공개적으로 읽을 수 있거나 요청을 보내는 동일한 Google Cloud 프로젝트에 있어야 합니다. gemini-2.0-flash및gemini-2.0-flash-lite의 경우 크기 제한은 2GB입니다.
- HTTP URL: 파일 URL은 공개적으로 읽을 수 있어야 합니다. 요청당 동영상 파일 하나, 오디오 파일 하나, 이미지 파일 최대 10개를 지정할 수 있습니다. 오디오 파일, 동영상 파일, 문서는 15MB를 초과할 수 없습니다.
- YouTube 동영상 URL: YouTube 동영상은 Google Cloud 콘솔에 로그인하는 데 사용된 계정이 소유한 것이거나 공개된 동영상이어야 합니다. 요청당 하나의 YouTube 동영상 URL만 지원됩니다.
 - fileURI를 지정할 때는 파일의 미디어 유형(- mimeType)도 지정해야 합니다. VPC 서비스 제어가 사용 설정된 경우- fileURI의 미디어 파일 URL을 지정하는 것은 지원되지 않습니다.- Cloud Storage에 이미지 파일이 없는 경우 공개적으로 사용 가능한 파일(MIME 유형이 - image/png인- gs://cloud-samples-data/vertex-ai/llm/prompts/landmark1.png)을 사용할 수 있습니다. 이 이미지를 보려면 샘플 이미지 파일을 엽니다.
- Cloud Storage 버킷 URI: 객체는 공개적으로 읽을 수 있거나 요청을 보내는 동일한 Google Cloud 프로젝트에 있어야 합니다. 
- MIME_TYPE:- data또는- fileUri필드에 지정된 파일의 미디어 유형입니다. 허용되는 값은 다음과 같습니다.- 클릭하여 MIME 유형 펼치기 - application/pdf
- audio/mpeg
- audio/mp3
- audio/wav
- image/png
- image/jpeg
- image/webp
- text/plain
- video/mov
- video/mpeg
- video/mp4
- video/mpg
- video/avi
- video/wmv
- video/mpegps
- video/flv
 
- TEXT1: 프롬프트에 포함할 텍스트 안내입니다. 예를 들면- city: Rome, Landmark: the Colosseum입니다.
- FILE_URI2: 프롬프트에 포함할 파일의 URI 또는 URL입니다. 허용되는 값은 다음과 같습니다.- Cloud Storage 버킷 URI: 객체는 공개적으로 읽을 수 있거나 요청을 보내는 동일한 Google Cloud 프로젝트에 있어야 합니다. gemini-2.0-flash및gemini-2.0-flash-lite의 경우 크기 제한은 2GB입니다.
- HTTP URL: 파일 URL은 공개적으로 읽을 수 있어야 합니다. 요청당 동영상 파일 하나, 오디오 파일 하나, 이미지 파일 최대 10개를 지정할 수 있습니다. 오디오 파일, 동영상 파일, 문서는 15MB를 초과할 수 없습니다.
- YouTube 동영상 URL: YouTube 동영상은 Google Cloud 콘솔에 로그인하는 데 사용된 계정이 소유한 것이거나 공개된 동영상이어야 합니다. 요청당 하나의 YouTube 동영상 URL만 지원됩니다.
 - fileURI를 지정할 때는 파일의 미디어 유형(- mimeType)도 지정해야 합니다. VPC 서비스 제어가 사용 설정된 경우- fileURI의 미디어 파일 URL을 지정하는 것은 지원되지 않습니다.- Cloud Storage에 이미지 파일이 없는 경우 공개적으로 사용 가능한 파일(MIME 유형이 - image/png인- gs://cloud-samples-data/vertex-ai/llm/prompts/landmark2.png)을 사용할 수 있습니다. 이 이미지를 보려면 샘플 이미지 파일을 엽니다.
- Cloud Storage 버킷 URI: 객체는 공개적으로 읽을 수 있거나 요청을 보내는 동일한 Google Cloud 프로젝트에 있어야 합니다. 
- TEXT2: 프롬프트에 포함할 텍스트 안내입니다. 예를 들면- city: Beijing, Landmark: Forbidden City입니다.
- FILE_URI3: 프롬프트에 포함할 파일의 URI 또는 URL입니다. 허용되는 값은 다음과 같습니다.- Cloud Storage 버킷 URI: 객체는 공개적으로 읽을 수 있거나 요청을 보내는 동일한 Google Cloud 프로젝트에 있어야 합니다. gemini-2.0-flash및gemini-2.0-flash-lite의 경우 크기 제한은 2GB입니다.
- HTTP URL: 파일 URL은 공개적으로 읽을 수 있어야 합니다. 요청당 동영상 파일 하나, 오디오 파일 하나, 이미지 파일 최대 10개를 지정할 수 있습니다. 오디오 파일, 동영상 파일, 문서는 15MB를 초과할 수 없습니다.
- YouTube 동영상 URL: YouTube 동영상은 Google Cloud 콘솔에 로그인하는 데 사용된 계정이 소유한 것이거나 공개된 동영상이어야 합니다. 요청당 하나의 YouTube 동영상 URL만 지원됩니다.
 - fileURI를 지정할 때는 파일의 미디어 유형(- mimeType)도 지정해야 합니다. VPC 서비스 제어가 사용 설정된 경우- fileURI의 미디어 파일 URL을 지정하는 것은 지원되지 않습니다.- Cloud Storage에 이미지 파일이 없는 경우 공개적으로 사용 가능한 파일(MIME 유형이 - image/png인- gs://cloud-samples-data/vertex-ai/llm/prompts/landmark3.png)을 사용할 수 있습니다. 이 이미지를 보려면 샘플 이미지 파일을 엽니다.
- Cloud Storage 버킷 URI: 객체는 공개적으로 읽을 수 있거나 요청을 보내는 동일한 Google Cloud 프로젝트에 있어야 합니다. 
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
      요청 본문을 request.json 파일에 저장합니다.
      터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.
    
cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI1",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT1"
      },
      {
        "fileData": {
          "fileUri": "FILE_URI2",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT2"
      },
      {
        "fileData": {
          "fileUri": "FILE_URI3",
          "mimeType": "MIME_TYPE"
        }
      }
    ]
  }
}
EOF그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-2.5-flash:generateContent"
PowerShell
      요청 본문을 request.json 파일에 저장합니다.
      터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.
    
@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI1",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT1"
      },
      {
        "fileData": {
          "fileUri": "FILE_URI2",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT2"
      },
      {
        "fileData": {
          "fileUri": "FILE_URI3",
          "mimeType": "MIME_TYPE"
        }
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-2.5-flash:generateContent" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 수신됩니다.
이 샘플의 URL에서 다음 사항을 참고하세요.- 응답이 완전히 생성된 후 반환되도록 요청하려면 generateContent메서드를 사용합니다. 시청자가 지연 시간에 대해 갖는 느낌을 줄이려면streamGenerateContent메서드를 사용하여 생성되는 응답을 스트리밍합니다.
- 멀티모달 모델 ID는 메서드 앞의 URL 끝 부분에 있습니다(예: gemini-2.0-flash). 이 샘플은 다른 모델도 지원할 수 있습니다.
선택적 모델 파라미터 설정
각 모델에는 설정할 수 있는 선택적 파라미터 집합이 있습니다. 자세한 내용은 콘텐츠 생성 파라미터를 참조하세요.
이미지 토큰화
이미지의 토큰은 다음과 같이 계산됩니다.
- 이미지의 두 치수가 모두 384픽셀 이하인 경우 258개의 토큰이 사용됩니다.
- 이미지의 한 치수가 384픽셀보다 크면 이미지가 타일로 잘립니다. 기본적으로 각 타일 크기는 (너비 또는 높이 중에서) 가장 작은 치수를 1.5로 나눈 값으로 설정됩니다. 필요한 경우 각 타일은 256픽셀보다 작지 않고 768픽셀보다 크지 않도록 조정됩니다. 그런 다음 각 타일의 크기가 768x768로 조정되고 258개의 토큰이 사용됩니다.
권장사항
이미지를 사용할 때 최상의 결과를 얻으려면 다음 권장사항과 정보를 사용하세요.
- 이미지에서 텍스트를 감지하려는 경우 단일 이미지가 포함된 프롬프트를 사용하면 여러 이미지가 포함된 프롬프트를 사용할 때보다 더 나은 결과를 얻을 수 있습니다.
- 프롬프트에 단일 이미지가 포함된 경우 요청에서 텍스트 프롬프트 앞에 이미지를 배치합니다.
- 프롬프트에 여러 이미지가 있고 나중에 프롬프트에서 이를 참조하거나 모델이 모델 응답에서 이를 참조하도록 하려는 경우 각 이미지 앞에 색인을 지정하면 도움이 될 수 있습니다. 색인에 abcimage 1image 2image 3image 1 image 2 image 3 Write a blogpost about my day using image 1 and image 2. Then, give me ideas for tomorrow based on image 3. 
- 해상도가 높은 이미지를 사용하면 결과가 더 좋습니다.
- 프롬프트에 몇 가지 예시를 포함하세요.
- 이미지를 적절한 방향으로 회전한 후에 프롬프트에 추가하세요.
- 흐릿한 이미지는 사용하지 마세요.
제한사항
Gemini 멀티모달 모델은 많은 멀티모달 사용 사례에서 강력하지만 모델의 제한사항을 이해하는 것이 중요합니다.
- 콘텐츠 검토: 이 모델은 Google 안전 정책을 위반하는 이미지에 대해 답변을 제공하지 않습니다.
- 공간 추론: 이 모델은 이미지에 있는 텍스트 또는 객체를 정확히 찾지 못합니다. 대략적인 객체 수만 반환할 수 있습니다.
- 의료 용도: 이 모델은 의료용 영상(예: X선 및 CT 촬영)을 해석하거나 의료 조언을 제공하는 데 적합하지 않습니다.
- 사람 인식: 이 모델은 이미지에서 유명인이 아닌 사람을 식별하는 데 적합하지 않습니다.
- 정확성: 이 모델은 저품질 이미지, 회전된 이미지 또는 매우 해상도가 매우 낮은 이미지를 해석할 때 할루시네이션 또는 오류가 발생할 수 있습니다. 이 모델은 이미지 문서에서 필기 입력 텍스트를 해석할 때도 할루시네이션이 발생할 수 있습니다.
다음 단계
- Gemini 멀티모달 모델로 빌드 시작하기 - 신규 고객에게는 Google Cloud 무료 크레딧 $300가 제공되어 Gemini로 수행할 수 있는 작업을 살펴볼 수 있습니다.
- 채팅 프롬프트 요청 보내기 방법 알아보기
- 책임감 있는 AI 권장사항 및 Vertex AI 안전 필터 알아보기