Pemahaman gambar

Anda dapat menambahkan gambar ke permintaan Gemini untuk melakukan tugas yang melibatkan pemahaman isi gambar yang disertakan. Halaman ini menunjukkan cara menambahkan gambar ke permintaan Anda ke Gemini di Vertex AI menggunakan konsolGoogle Cloud dan Vertex AI API.

Model yang didukung

Tabel berikut mencantumkan model yang mendukung pemahaman gambar:

Model Detail media Jenis MIME
Gemini 2.5 Flash-Lite
  • Jumlah maksimum gambar per perintah: 3.000
  • Ukuran gambar maksimum: 7 MB
  • Jumlah maksimum gambar output per perintah: 10
  • image/png
  • image/jpeg
  • image/webp
Gemini 2.0 Flash dengan pembuatan gambar
  • Jumlah maksimum gambar per perintah: 3.000
  • Ukuran gambar maksimum: 7 MB
  • Jumlah maksimum gambar output per perintah: 10
  • Token maksimum per menit (TPM) per project:
    • Resolusi media Tinggi/Sedang/Default:
      • Amerika Serikat/Asia: 40 Juta
      • Uni Eropa: 10 Juta
    • Resolusi media rendah:
      • Amerika Serikat/Asia: 10 Juta
      • Uni Eropa: 3 Juta
  • image/png
  • image/jpeg
  • image/webp
Gemini 2.5 Pro
  • Jumlah maksimum gambar per perintah: 3.000
  • Ukuran gambar maksimum: 7 MB
  • image/png
  • image/jpeg
  • image/webp
Gemini 2.5 Flash
  • Jumlah maksimum gambar per perintah: 3.000
  • Ukuran gambar maksimum: 7 MB
  • image/png
  • image/jpeg
  • image/webp
Gemini 2.0 Flash
  • Jumlah maksimum gambar per perintah: 3.000
  • Ukuran gambar maksimum: 7 MB
  • Token maksimum per menit (TPM) per project:
    • Resolusi media Tinggi/Sedang/Default:
      • Amerika Serikat/Asia: 40 Juta
      • Uni Eropa: 10 Juta
    • Resolusi media rendah:
      • Amerika Serikat/Asia: 10 Juta
      • Uni Eropa: 2,6 Juta
  • image/png
  • image/jpeg
  • image/webp
Gemini 2.0 Flash-Lite
  • Jumlah maksimum gambar per perintah: 3.000
  • Ukuran gambar maksimum: 7 MB
  • Token maksimum per menit (TPM):
    • Resolusi media Tinggi/Sedang/Default:
      • Amerika Serikat/Asia: 6,7 Juta
      • Uni Eropa: 2,6 Juta
    • Resolusi media rendah:
      • Amerika Serikat/Asia: 2,6 Juta
      • Uni Eropa: 2,6 Juta
  • image/png
  • image/jpeg
  • image/webp

Metrik kuota adalah generate_content_video_input_per_base_model_id_and_resolution.

Untuk mengetahui daftar bahasa yang didukung oleh model Gemini, lihat informasi model Model Google. Untuk mempelajari lebih lanjut cara mendesain perintah multimodal, lihat Mendesain perintah multimodal. Jika Anda mencari cara untuk menggunakan Gemini langsung dari aplikasi seluler dan web, lihat SDK klien Logika AI Firebase untuk aplikasi Swift, Android, Web, Flutter, dan Unity.

Menambahkan gambar ke permintaan

Anda dapat menambahkan satu atau beberapa gambar dalam permintaan Anda ke Gemini.

Satu gambar

Contoh kode di setiap tab berikut menunjukkan cara yang berbeda untuk mengidentifikasi isi gambar. Contoh ini berfungsi dengan semua model multimodal Gemini.

Konsol

Untuk mengirim perintah multimodal menggunakan konsol Google Cloud , lakukan hal berikut:

  1. Di bagian Vertex AI pada konsol Google Cloud , buka halaman Vertex AI Studio.

    Buka Vertex AI Studio

  2. Klik Open freeform.

  3. Opsional: Konfigurasikan model dan parameter:

    • Model: Pilih model.
    • Region: Pilih region yang ingin Anda gunakan.
    • Suhu: Gunakan penggeser atau kotak teks untuk memasukkan nilai suhu.

      Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saat topP dan topK diterapkan. Suhu mengontrol tingkat keacakan dalam pemilihan token. Suhu yang lebih rendah cocok untuk perintah yang memerlukan respons yang kurang terbuka atau kreatif, sedangkan suhu yang lebih tinggi dapat memberikan hasil yang lebih beragam atau kreatif. Suhu 0 berarti token probabilitas tertinggi selalu dipilih. Dalam hal ini, respons untuk permintaan tertentu sebagian besar deterministik, tetapi sedikit variasi masih dapat dilakukan.

      Jika model menampilkan respons yang terlalu umum, terlalu pendek, atau model memberikan respons pengganti, coba tingkatkan suhunya.

    • Batas token output: Gunakan penggeser atau kotak teks untuk memasukkan nilai batas output maksimum.

      Jumlah maksimum token yang dapat dibuat dalam respons. Token terdiri dari sekitar empat karakter. 100 token setara dengan sekitar 60-80 kata.

      Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk potensi respons yang lebih panjang.

    • Tambahkan urutan perhentian: Opsional. Masukkan urutan penghentian, yang merupakan rangkaian karakter yang mencakup spasi. Jika model menemukan urutan berhenti, pembuatan respons akan berhenti. Urutan perhentian tidak disertakan dalam respons, dan Anda dapat menambahkan hingga lima urutan perhentian.

  4. Opsional: Untuk mengonfigurasi parameter lanjutan, klik Lanjutan dan konfigurasikan sebagai berikut:

    Klik untuk meluaskan konfigurasi lanjutan

    • Top-K: Gunakan penggeser atau kotak teks untuk memasukkan nilai untuk top-K. (tidak didukung untuk Gemini 1.5).

      Top-K mengubah cara model memilih token untuk output. Top-K 1 berarti token yang dipilih berikutnya adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding greedy), sedangkan top-K 3 berarti token berikutnya dipilih di antara tiga token yang paling mungkin dengan menggunakan suhu.

      Untuk setiap langkah pemilihan token, token top-K dengan probabilitas tertinggi akan diambil sampelnya. Kemudian token akan difilter lebih lanjut berdasarkan top-P dengan token akhir yang dipilih menggunakan pengambilan sampel suhu.

      Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak.

    • Top-P: Gunakan penggeser atau kotak teks untuk memasukkan nilai untuk top-P. Token dipilih dari yang paling mungkin hingga yang paling tidak mungkin sampai jumlah probabilitasnya sama dengan nilai top-P. Untuk hasil yang paling sedikit variabelnya, tetapkan top-P ke 0.
    • Respons maks: Gunakan penggeser atau kotak teks untuk memasukkan nilai jumlah respons yang akan dibuat.
    • Streaming respons: Aktifkan untuk mencetak respons saat dihasilkan.
    • Nilai minimum filter keamanan: Pilih nilai minimum seberapa besar kemungkinan Anda melihat respons yang dapat berbahaya.
    • Aktifkan Perujukan: Perujukan tidak didukung untuk perintah multimodal.

  5. Klik Sisipkan Media, lalu pilih sumber untuk file Anda.

    Upload

    Pilih file yang ingin Anda upload, lalu klik Buka.

    Melalui URL

    Masukkan URL file yang ingin Anda gunakan, lalu klik Sisipkan.

    Cloud Storage

    Pilih bucket, lalu pilih file dari bucket yang ingin Anda impor, lalu klik Pilih.

    Google Drive

    1. Pilih akun dan berikan izin kepada Vertex AI Studio untuk mengakses akun Anda saat pertama kali Anda memilih opsi ini. Anda dapat mengupload beberapa file yang memiliki total ukuran hingga 10 MB. Satu file tidak boleh melebihi 7 MB.
    2. Klik file yang ingin Anda tambahkan.
    3. Klik Pilih.

      Thumbnail file ditampilkan di panel Perintah. Jumlah total token juga ditampilkan. Jika data perintah Anda melebihi batas token, token akan terpotong dan tidak disertakan dalam pemrosesan data Anda.

  6. Masukkan perintah teks Anda di panel Perintah.

  7. Opsional: Untuk melihat ID token ke teks dan ID token, klik jumlah token di panel Perintah.

  8. Klik Kirim.

  9. Opsional: Untuk menyimpan perintah Anda ke My prompts, klik Save.

  10. Opsional: Untuk mendapatkan kode Python atau perintah curl untuk perintah Anda, klik Get code.

Gen AI SDK for Python

Instal

pip install --upgrade google-genai

Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:

# 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

from google import genai
from google.genai.types import HttpOptions, Part

client = genai.Client(http_options=HttpOptions(api_version="v1"))
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=[
        "What is shown in this image?",
        Part.from_uri(
            file_uri="gs://cloud-samples-data/generative-ai/image/scones.jpg",
            mime_type="image/jpeg",
        ),
    ],
)
print(response.text)
# Example response:
# The image shows a flat lay of blueberry scones arranged on parchment paper. There are ...

Gen AI SDK for Go

Pelajari cara menginstal atau mengupdate Gen AI SDK for Go.

Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:

# 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

import (
	"context"
	"fmt"
	"io"

	genai "google.golang.org/genai"
)

// generateWithTextImage shows how to generate text using both text and image input
func generateWithTextImage(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	modelName := "gemini-2.0-flash-001"
	contents := []*genai.Content{
		{Parts: []*genai.Part{
			{Text: "What is shown in this image?"},
			{FileData: &genai.FileData{
				// Image source: https://storage.googleapis.com/cloud-samples-data/generative-ai/image/scones.jpg
				FileURI:  "gs://cloud-samples-data/generative-ai/image/scones.jpg",
				MIMEType: "image/jpeg",
			}},
		}},
	}

	resp, err := client.Models.GenerateContent(ctx, modelName, contents, nil)
	if err != nil {
		return fmt.Errorf("failed to generate content: %w", err)
	}

	respText, err := resp.Text()
	if err != nil {
		return fmt.Errorf("failed to convert model response to text: %w", err)
	}
	fmt.Fprintln(w, respText)

	// Example response:
	// The image shows an overhead shot of a rustic, artistic arrangement on a surface that ...

	return nil
}

Gen AI SDK for Node.js

Instal

npm install @google/genai

Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:

# 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

const {GoogleGenAI} = require('@google/genai');

const GOOGLE_CLOUD_PROJECT = process.env.GOOGLE_CLOUD_PROJECT;
const GOOGLE_CLOUD_LOCATION = process.env.GOOGLE_CLOUD_LOCATION || 'global';

async function generateContent(
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const ai = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  const image = {
    fileData: {
      fileUri: 'gs://cloud-samples-data/generative-ai/image/scones.jpg',
      mimeType: 'image/jpeg',
    },
  };

  const response = await ai.models.generateContent({
    model: 'gemini-2.0-flash',
    contents: [image, 'What is shown in this image?'],
  });

  console.log(response.text);

  return response.text;
}

Gen AI SDK for Java

Pelajari cara menginstal atau mengupdate Gen AI SDK for Java.

Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:

# 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


import com.google.genai.Client;
import com.google.genai.types.Content;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.HttpOptions;
import com.google.genai.types.Part;

public class GenerateContentWithTextAndImage {

  public static void main(String[] args) {
    // TODO(developer): Replace these variables before running the sample.
    String modelId = "gemini-2.0-flash";
    generateContent(modelId);
  }

  public static String generateContent(String modelId) {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (Client client = Client.builder()
        .httpOptions(HttpOptions.builder().apiVersion("v1").build())
        .build()) {

      GenerateContentResponse response =
          client.models.generateContent(modelId, Content.fromParts(
                  Part.fromText("What is shown in this image?"),
                  Part.fromUri("gs://cloud-samples-data/generative-ai/image/scones.jpg", "image/jpeg")),
              null);

      System.out.print(response.text());
      // Example response:
      // The image shows a flat lay of blueberry scones arranged on parchment paper. There are ...
      return response.text();
    }
  }
}

REST

Setelah menyiapkan lingkungan, Anda dapat menggunakan REST untuk menguji perintah teks. Contoh berikut mengirim permintaan ke endpoint model penayang.

Anda dapat menyertakan gambar yang disimpan di Cloud Storage atau menggunakan data gambar berenkode base64.

Gambar di Cloud Storage

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • FILE_URI: URI atau URL file yang akan disertakan dalam perintah. Nilai yang dapat diterima mencakup hal berikut:
    • URI bucket Cloud Storage: Objek harus dapat dibaca secara publik atau berada di project Google Cloud yang sama dengan project yang mengirim permintaan. Untuk gemini-2.0-flash dan gemini-2.0-flash-lite, batas ukuran adalah 2 GB.
    • URL HTTP: URL file harus dapat dibaca secara publik. Anda dapat menentukan satu file video, satu file audio, dan hingga 10 file gambar per permintaan. Ukuran file audio, file video, dan dokumen tidak boleh lebih dari 15 MB.
    • URL video YouTube:Video YouTube harus dimiliki oleh akun yang Anda gunakan untuk login ke konsol Google Cloud atau bersifat publik. Hanya satu URL video YouTube yang didukung per permintaan.

    Saat menentukan fileURI, Anda juga harus menentukan jenis media (mimeType) file. Jika Kontrol Layanan VPC diaktifkan, penentuan URL file media untuk fileURI tidak didukung.

    Jika tidak memiliki file gambar di Cloud Storage, Anda dapat menggunakan file yang tersedia secara publik berikut: gs://cloud-samples-data/generative-ai/image/scones.jpg dengan jenis MIME image/jpeg. Untuk melihat gambar ini, buka file gambar contoh.

  • MIME_TYPE: Jenis media file yang ditentukan dalam kolom data atau fileUri. Nilai yang dapat diterima mencakup hal berikut:

    Klik untuk meluaskan jenis 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: Petunjuk teks yang akan disertakan dalam perintah. Misalnya, What is shown in this image?

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
EOF

Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

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

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

$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

Anda akan menerima respons JSON yang mirip dengan berikut ini.

Data gambar Base64

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • LOCATION: Region untuk memproses permintaan. Masukkan wilayah yang didukung. Untuk mengetahui daftar lengkap region yang didukung, lihat Lokasi yang tersedia.

    Klik untuk meluaskan daftar sebagian wilayah yang tersedia

    • us-central1
    • us-west4
    • northamerica-northeast1
    • us-east4
    • us-west1
    • asia-northeast3
    • asia-southeast1
    • asia-northeast1
  • PROJECT_ID: Project ID Anda.
  • B64_BASE_IMAGE
    Encoding base64 gambar, PDF, atau video untuk disertakan secara inline dalam perintah. Saat menyertakan media secara inline, Anda juga harus menentukan jenis media (mimeType) data.
  • MIME_TYPE: Jenis media file yang ditentukan dalam kolom data atau fileUri. Nilai yang dapat diterima mencakup hal berikut:

    Klik untuk meluaskan jenis 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: Petunjuk teks yang akan disertakan dalam perintah. Misalnya, What is shown in this image?.

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "inlineData": {
          "data": "B64_BASE_IMAGE",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
EOF

Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

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

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "inlineData": {
          "data": "B64_BASE_IMAGE",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

$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

Anda akan menerima respons JSON yang mirip dengan berikut ini.

Perhatikan hal berikut di URL untuk sampel ini:
  • Gunakan metode generateContent untuk meminta agar respons ditampilkan setelah dibuat sepenuhnya. Untuk mengurangi persepsi latensi bagi audiens manusia, streaming respons saat respons dibuat menggunakan metode streamGenerateContent.
  • ID model multimodal terletak di akhir URL sebelum metode (misalnya, gemini-2.0-flash). Contoh ini mungkin mendukung model lain juga.

Beberapa gambar

Setiap tab berikut menunjukkan cara yang berbeda untuk menyertakan beberapa gambar dalam permintaan perintah. Setiap sampel menerima dua set input berikut:

  • Gambar tempat terkenal di kota yang populer
  • Jenis media gambar
  • Teks yang menunjukkan kota dan bangunan terkenal dalam gambar

Contoh ini juga mengambil gambar dan jenis media ketiga, tetapi tidak ada teks. Contoh menampilkan respons teks yang menunjukkan kota dan bangunan terkenal dalam gambar ketiga.

Contoh gambar ini berfungsi dengan semua model multimodal Gemini.

Konsol

Untuk mengirim perintah multimodal menggunakan konsol Google Cloud , lakukan hal berikut:

  1. Di bagian Vertex AI pada konsol Google Cloud , buka halaman Vertex AI Studio.

    Buka Vertex AI Studio

  2. Klik Open freeform.

  3. Opsional: Konfigurasikan model dan parameter:

    • Model: Pilih model.
    • Region: Pilih region yang ingin Anda gunakan.
    • Suhu: Gunakan penggeser atau kotak teks untuk memasukkan nilai suhu.

      Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saat topP dan topK diterapkan. Suhu mengontrol tingkat keacakan dalam pemilihan token. Suhu yang lebih rendah cocok untuk perintah yang memerlukan respons yang kurang terbuka atau kreatif, sedangkan suhu yang lebih tinggi dapat memberikan hasil yang lebih beragam atau kreatif. Suhu 0 berarti token probabilitas tertinggi selalu dipilih. Dalam hal ini, respons untuk permintaan tertentu sebagian besar deterministik, tetapi sedikit variasi masih dapat dilakukan.

      Jika model menampilkan respons yang terlalu umum, terlalu pendek, atau model memberikan respons pengganti, coba tingkatkan suhunya.

    • Batas token output: Gunakan penggeser atau kotak teks untuk memasukkan nilai batas output maksimum.

      Jumlah maksimum token yang dapat dibuat dalam respons. Token terdiri dari sekitar empat karakter. 100 token setara dengan sekitar 60-80 kata.

      Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk potensi respons yang lebih panjang.

    • Tambahkan urutan perhentian: Opsional. Masukkan urutan penghentian, yang merupakan rangkaian karakter yang mencakup spasi. Jika model menemukan urutan berhenti, pembuatan respons akan berhenti. Urutan perhentian tidak disertakan dalam respons, dan Anda dapat menambahkan hingga lima urutan perhentian.

  4. Opsional: Untuk mengonfigurasi parameter lanjutan, klik Lanjutan dan konfigurasikan sebagai berikut:

    Klik untuk meluaskan konfigurasi lanjutan

    • Top-K: Gunakan penggeser atau kotak teks untuk memasukkan nilai untuk top-K. (tidak didukung untuk Gemini 1.5).

      Top-K mengubah cara model memilih token untuk output. Top-K 1 berarti token yang dipilih berikutnya adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding greedy), sedangkan top-K 3 berarti token berikutnya dipilih di antara tiga token yang paling mungkin dengan menggunakan suhu.

      Untuk setiap langkah pemilihan token, token top-K dengan probabilitas tertinggi akan diambil sampelnya. Kemudian token akan difilter lebih lanjut berdasarkan top-P dengan token akhir yang dipilih menggunakan pengambilan sampel suhu.

      Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak.

    • Top-P: Gunakan penggeser atau kotak teks untuk memasukkan nilai untuk top-P. Token dipilih dari yang paling mungkin hingga yang paling tidak mungkin sampai jumlah probabilitasnya sama dengan nilai top-P. Untuk hasil yang paling sedikit variabelnya, tetapkan top-P ke 0.
    • Respons maks: Gunakan penggeser atau kotak teks untuk memasukkan nilai jumlah respons yang akan dibuat.
    • Streaming respons: Aktifkan untuk mencetak respons saat dihasilkan.
    • Nilai minimum filter keamanan: Pilih nilai minimum seberapa besar kemungkinan Anda melihat respons yang dapat berbahaya.
    • Aktifkan Perujukan: Perujukan tidak didukung untuk perintah multimodal.

  5. Klik Sisipkan Media, lalu pilih sumber untuk file Anda.

    Upload

    Pilih file yang ingin Anda upload, lalu klik Buka.

    Melalui URL

    Masukkan URL file yang ingin Anda gunakan, lalu klik Sisipkan.

    Cloud Storage

    Pilih bucket, lalu pilih file dari bucket yang ingin Anda impor, lalu klik Pilih.

    Google Drive

    1. Pilih akun dan berikan izin kepada Vertex AI Studio untuk mengakses akun Anda saat pertama kali Anda memilih opsi ini. Anda dapat mengupload beberapa file yang memiliki total ukuran hingga 10 MB. Satu file tidak boleh melebihi 7 MB.
    2. Klik file yang ingin Anda tambahkan.
    3. Klik Pilih.

      Thumbnail file ditampilkan di panel Perintah. Jumlah total token juga ditampilkan. Jika data perintah Anda melebihi batas token, token akan terpotong dan tidak disertakan dalam pemrosesan data Anda.

  6. Masukkan perintah teks Anda di panel Perintah.

  7. Opsional: Untuk melihat ID token ke teks dan ID token, klik jumlah token di panel Perintah.

  8. Klik Kirim.

  9. Opsional: Untuk menyimpan perintah Anda ke My prompts, klik Save.

  10. Opsional: Untuk mendapatkan kode Python atau perintah curl untuk perintah Anda, klik Get code.

Gen AI SDK for Python

Instal

pip install --upgrade google-genai

Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:

# 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

from google import genai
from google.genai.types import HttpOptions, Part

client = genai.Client(http_options=HttpOptions(api_version="v1"))

# Read content from GCS
gcs_file_img_path = "gs://cloud-samples-data/generative-ai/image/scones.jpg"

# Read content from a local file
with open("test_data/latte.jpg", "rb") as f:
    local_file_img_bytes = f.read()

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=[
        "Generate a list of all the objects contained in both images.",
        Part.from_uri(file_uri=gcs_file_img_path, mime_type="image/jpeg"),
        Part.from_bytes(data=local_file_img_bytes, mime_type="image/jpeg"),
    ],
)
print(response.text)
# Example response:
# Okay, here's the list of objects present in both images:
# ...

Gen AI SDK for Go

Pelajari cara menginstal atau mengupdate Gen AI SDK for Go.

Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:

# 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

import (
	"context"
	"fmt"
	"io"
	"os"

	genai "google.golang.org/genai"
)

// generateWithMultiImg shows how to generate text using multiple image inputs.
func generateWithMultiImg(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	// TODO(Developer): Update the path to file (image source:
	//   https://storage.googleapis.com/cloud-samples-data/generative-ai/image/latte.jpg )
	imageBytes, err := os.ReadFile("./latte.jpg")
	if err != nil {
		return fmt.Errorf("failed to read image: %w", err)
	}

	contents := []*genai.Content{
		{Parts: []*genai.Part{
			{Text: "Write an advertising jingle based on the items in both images."},
			{FileData: &genai.FileData{
				// Image source: https://storage.googleapis.com/cloud-samples-data/generative-ai/image/scones.jpg
				FileURI:  "gs://cloud-samples-data/generative-ai/image/scones.jpg",
				MIMEType: "image/jpeg",
			}},
			{InlineData: &genai.Blob{
				Data:     imageBytes,
				MIMEType: "image/jpeg",
			}},
		}},
	}
	modelName := "gemini-2.0-flash-001"

	resp, err := client.Models.GenerateContent(ctx, modelName, contents, nil)
	if err != nil {
		return fmt.Errorf("failed to generate content: %w", err)
	}

	respText, err := resp.Text()
	if err != nil {
		return fmt.Errorf("failed to convert model response to text: %w", err)
	}
	fmt.Fprintln(w, respText)

	// Example response:
	// Okay, here's an advertising jingle inspired by the blueberry scones, coffee, flowers, chocolate cake, and latte:
	//
	// (Upbeat, jazzy music)
	// ...

	return nil
}

Gen AI SDK for Node.js

Instal

npm install @google/genai

Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:

# 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

const {GoogleGenAI} = require('@google/genai');

const GOOGLE_CLOUD_PROJECT = process.env.GOOGLE_CLOUD_PROJECT;
const GOOGLE_CLOUD_LOCATION = process.env.GOOGLE_CLOUD_LOCATION || 'global';

async function generateContent(
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const ai = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  const image1 = {
    fileData: {
      fileUri: 'gs://cloud-samples-data/generative-ai/image/scones.jpg',
      mimeType: 'image/jpeg',
    },
  };

  const image2 = {
    fileData: {
      fileUri: 'gs://cloud-samples-data/generative-ai/image/fruit.png',
      mimeType: 'image/png',
    },
  };

  const response = await ai.models.generateContent({
    model: 'gemini-2.0-flash',
    contents: [
      image1,
      image2,
      'Generate a list of all the objects contained in both images.',
    ],
  });

  console.log(response.text);

  return response.text;
}

Gen AI SDK for Java

Pelajari cara menginstal atau mengupdate Gen AI SDK for Java.

Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:

# 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


import com.google.genai.Client;
import com.google.genai.types.Content;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.HttpOptions;
import com.google.genai.types.Part;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class TextGenerationWithMultiImage {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String modelId = "gemini-2.0-flash";
    // Content from Google Cloud Storage
    String gcsFileImagePath = "gs://cloud-samples-data/generative-ai/image/scones.jpg";
    String localImageFilePath = "test_data/latte.jpg";

    generateContent(modelId, gcsFileImagePath, localImageFilePath);
  }

  public static String generateContent(String modelId, String gcsFileImagePath,
      String localImageFilePath)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (Client client = Client.builder()
        .httpOptions(HttpOptions.builder().apiVersion("v1").build())
        .build()) {

      // Read content from a local file.
      byte[] localFileImgBytes = Files.readAllBytes(Paths.get(localImageFilePath));

      GenerateContentResponse response =
          client.models.generateContent(modelId, Content.fromParts(
                  Part.fromText("Generate a list of all the objects contained in both images"),
                  Part.fromBytes(localFileImgBytes, "image/jpeg"),
                  Part.fromUri(gcsFileImagePath, "image/jpeg")),
              null);

      System.out.print(response.text());
      // Example response:
      // Okay, here's the list of objects present in both images:
      //
      // **Image 1 (Scones):**
      //
      // *   Scones
      // *   Plate
      // *   Jam/Preserve
      // *   Cream/Butter
      // *   Table/Surface
      // *   Napkin/Cloth (possibly)
      //
      // **Image 2 (Latte):**
      //
      // *   Latte/Coffee cup
      // *   Saucer
      // *   Spoon
      // *   Table/Surface
      // *   Foam/Latte art
      //
      // **Objects potentially in both (depending on interpretation and specific items):**
      //
      // *   Plate/Saucer (both are serving dishes)
      // *   Table/Surface
      return response.text();
    }
  }
}

REST

Setelah menyiapkan lingkungan, Anda dapat menggunakan REST untuk menguji perintah teks. Contoh berikut mengirim permintaan ke endpoint model penayang.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • FILE_URI1: URI atau URL file yang akan disertakan dalam perintah. Nilai yang dapat diterima mencakup hal berikut:
    • URI bucket Cloud Storage: Objek harus dapat dibaca secara publik atau berada di project Google Cloud yang sama dengan project yang mengirim permintaan. Untuk gemini-2.0-flash dan gemini-2.0-flash-lite, batas ukuran adalah 2 GB.
    • URL HTTP: URL file harus dapat dibaca secara publik. Anda dapat menentukan satu file video, satu file audio, dan hingga 10 file gambar per permintaan. Ukuran file audio, file video, dan dokumen tidak boleh lebih dari 15 MB.
    • URL video YouTube:Video YouTube harus dimiliki oleh akun yang Anda gunakan untuk login ke konsol Google Cloud atau bersifat publik. Hanya satu URL video YouTube yang didukung per permintaan.

    Saat menentukan fileURI, Anda juga harus menentukan jenis media (mimeType) file. Jika Kontrol Layanan VPC diaktifkan, penentuan URL file media untuk fileURI tidak didukung.

    Jika tidak memiliki file gambar di Cloud Storage, Anda dapat menggunakan file yang tersedia secara publik berikut: gs://cloud-samples-data/vertex-ai/llm/prompts/landmark1.png dengan jenis MIME image/png. Untuk melihat gambar ini, buka file gambar contoh.

  • MIME_TYPE: Jenis media file yang ditentukan dalam kolom data atau fileUri. Nilai yang dapat diterima mencakup hal berikut:

    Klik untuk meluaskan jenis 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
    Agar mudah, sampel ini menggunakan jenis media yang sama untuk ketiga gambar input.
  • TEXT1: Petunjuk teks yang akan disertakan dalam perintah. Misalnya, city: Rome, Landmark: the Colosseum
  • FILE_URI2: URI atau URL file yang akan disertakan dalam perintah. Nilai yang dapat diterima mencakup hal berikut:
    • URI bucket Cloud Storage: Objek harus dapat dibaca secara publik atau berada di project Google Cloud yang sama dengan project yang mengirim permintaan. Untuk gemini-2.0-flash dan gemini-2.0-flash-lite, batas ukuran adalah 2 GB.
    • URL HTTP: URL file harus dapat dibaca secara publik. Anda dapat menentukan satu file video, satu file audio, dan hingga 10 file gambar per permintaan. Ukuran file audio, file video, dan dokumen tidak boleh lebih dari 15 MB.
    • URL video YouTube:Video YouTube harus dimiliki oleh akun yang Anda gunakan untuk login ke konsol Google Cloud atau bersifat publik. Hanya satu URL video YouTube yang didukung per permintaan.

    Saat menentukan fileURI, Anda juga harus menentukan jenis media (mimeType) file. Jika Kontrol Layanan VPC diaktifkan, penentuan URL file media untuk fileURI tidak didukung.

    Jika tidak memiliki file gambar di Cloud Storage, Anda dapat menggunakan file yang tersedia secara publik berikut: gs://cloud-samples-data/vertex-ai/llm/prompts/landmark2.png dengan jenis MIME image/png. Untuk melihat gambar ini, buka file gambar contoh.

  • TEXT2: Petunjuk teks yang akan disertakan dalam perintah. Misalnya, city: Beijing, Landmark: Forbidden City
  • FILE_URI3: URI atau URL file yang akan disertakan dalam perintah. Nilai yang dapat diterima mencakup hal berikut:
    • URI bucket Cloud Storage: Objek harus dapat dibaca secara publik atau berada di project Google Cloud yang sama dengan project yang mengirim permintaan. Untuk gemini-2.0-flash dan gemini-2.0-flash-lite, batas ukuran adalah 2 GB.
    • URL HTTP: URL file harus dapat dibaca secara publik. Anda dapat menentukan satu file video, satu file audio, dan hingga 10 file gambar per permintaan. Ukuran file audio, file video, dan dokumen tidak boleh lebih dari 15 MB.
    • URL video YouTube:Video YouTube harus dimiliki oleh akun yang Anda gunakan untuk login ke konsol Google Cloud atau bersifat publik. Hanya satu URL video YouTube yang didukung per permintaan.

    Saat menentukan fileURI, Anda juga harus menentukan jenis media (mimeType) file. Jika Kontrol Layanan VPC diaktifkan, penentuan URL file media untuk fileURI tidak didukung.

    Jika tidak memiliki file gambar di Cloud Storage, Anda dapat menggunakan file yang tersedia secara publik berikut: gs://cloud-samples-data/vertex-ai/llm/prompts/landmark3.png dengan jenis MIME image/png. Untuk melihat gambar ini, buka file gambar contoh.

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

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

Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

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.0-flash:generateContent"

PowerShell

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

@'
{
  "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

Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

$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.0-flash:generateContent" | Select-Object -Expand Content

Anda akan menerima respons JSON yang mirip dengan berikut ini.

Perhatikan hal berikut di URL untuk sampel ini:
  • Gunakan metode generateContent untuk meminta agar respons ditampilkan setelah dibuat sepenuhnya. Untuk mengurangi persepsi latensi bagi audiens manusia, streaming respons saat respons dibuat menggunakan metode streamGenerateContent.
  • ID model multimodal terletak di akhir URL sebelum metode (misalnya, gemini-2.0-flash). Contoh ini mungkin mendukung model lain juga.

Menetapkan parameter model opsional

Setiap model memiliki serangkaian parameter opsional yang dapat Anda tetapkan. Untuk mengetahui informasi selengkapnya, lihat Parameter pembuatan konten.

Tokenisasi gambar

Berikut cara penghitungan token untuk gambar:

  • Gemini 2.0 Flash dan Gemini 2.0 Flash-Lite:
    • Jika kedua dimensi gambar kurang dari atau sama dengan 384 piksel, maka 258 token akan digunakan.
    • Jika salah satu dimensi gambar lebih besar dari 384 piksel, maka gambar akan dipangkas menjadi petak. Setiap ukuran petak secara default adalah dimensi terkecil (lebar atau tinggi) dibagi 1,5. Jika perlu, setiap petak disesuaikan agar tidak lebih kecil dari 256 piksel dan tidak lebih besar dari 768 piksel. Setiap petak kemudian diubah ukurannya menjadi 768x768 dan menggunakan 258 token.

Praktik terbaik

Saat menggunakan gambar, gunakan praktik terbaik dan informasi berikut untuk mendapatkan hasil terbaik:

  • Jika Anda ingin mendeteksi teks dalam gambar, gunakan perintah dengan satu gambar untuk menghasilkan hasil yang lebih baik daripada perintah dengan beberapa gambar.
  • Jika perintah Anda berisi satu gambar, tempatkan gambar sebelum perintah teks dalam permintaan Anda.
  • Jika prompt Anda berisi beberapa gambar, dan Anda ingin merujuknya nanti dalam prompt atau meminta model merujuknya dalam respons model, sebaiknya beri setiap gambar indeks sebelum gambar. Gunakan a b c atau image 1 image 2 image 3 untuk indeks Anda. Berikut adalah contoh penggunaan gambar berindeks dalam prompt:
    image 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.
  • Gunakan gambar dengan resolusi yang lebih tinggi; gambar ini akan memberikan hasil yang lebih baik.
  • Sertakan beberapa contoh dalam perintah.
  • Putar gambar ke orientasi yang tepat sebelum menambahkannya ke perintah.
  • Hindari gambar yang buram.

Batasan

Meskipun model multimodal Gemini sangat canggih dalam banyak kasus penggunaan multimodal, penting untuk memahami batasan model ini:

  • Moderasi konten: Model menolak memberikan jawaban pada gambar yang melanggar kebijakan keamanan kami.
  • Penalaran spasial: Model tidak akurat dalam menemukan teks atau objek dalam gambar. Objek tersebut mungkin hanya menampilkan perkiraan jumlah objek.
  • Penggunaan medis: Model ini tidak cocok untuk menafsirkan gambar medis (misalnya, sinar-X dan CT scan) atau memberikan saran medis.
  • Pengenalan orang: Model tidak dimaksudkan untuk digunakan mengidentifikasi orang yang bukan selebritas dalam gambar.
  • Akurasi: Model mungkin berhalusinasi atau melakukan kesalahan saat menafsirkan gambar berkualitas rendah, diputar, atau beresolusi sangat rendah. Model juga dapat berhalusinasi saat menafsirkan teks tulisan tangan dalam dokumen gambar.

Langkah berikutnya