API File

Rangkaian model kecerdasan buatan (AI) Gemini dibuat untuk menangani berbagai jenis data input, termasuk teks, gambar, dan audio. Karena model ini dapat menangani lebih dari satu jenis atau mode data, model Gemini disebut model multimodal atau dijelaskan sebagai memiliki kemampuan multimodal.

Panduan ini menunjukkan cara menggunakan file media menggunakan Files API. Operasi dasar sama untuk file audio, gambar, video, dokumen, dan jenis file lain yang didukung.

Untuk panduan perintah file, lihat bagian Panduan perintah file.

Upload file

Anda dapat menggunakan Files API untuk mengupload file media. Selalu gunakan Files API jika ukuran total permintaan (termasuk file, perintah teks, petunjuk sistem, dll.) lebih besar dari 20 MB.

Kode berikut mengupload file, lalu menggunakan file dalam panggilan ke generateContent.

from google import genai

client = genai.Client(api_key="GOOGLE_API_KEY")

myfile = client.files.upload(file="path/to/sample.mp3")

response = client.models.generate_content(
    model="gemini-2.0-flash", contents=["Describe this audio clip", myfile]
)

print(response.text)
import {
  GoogleGenAI,
  createUserContent,
  createPartFromUri,
} from "@google/genai";

const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });

async function main() {
  const myfile = await ai.files.upload({
    file: "path/to/sample.mp3",
    config: { mimeType: "audio/mpeg" },
  });

  const response = await ai.models.generateContent({
    model: "gemini-2.0-flash",
    contents: createUserContent([
      createPartFromUri(myfile.uri, myfile.mimeType),
      "Describe this audio clip",
    ]),
  });
  console.log(response.text);
}

await main();
file, err := client.UploadFileFromPath(ctx, "path/to/sample.mp3", nil)
if err != nil {
    log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)

model := client.GenerativeModel("gemini-2.0-flash")
resp, err := model.GenerateContent(ctx,
    genai.FileData{URI: file.URI},
    genai.Text("Describe this audio clip"))
if err != nil {
    log.Fatal(err)
}

printResponse(resp)
AUDIO_PATH="path/to/sample.mp3"
MIME_TYPE=$(file -b --mime-type "${AUDIO_PATH}")
NUM_BYTES=$(wc -c < "${AUDIO_PATH}")
DISPLAY_NAME=AUDIO

tmp_header_file=upload-header.tmp

# Initial resumable request defining metadata.
# The upload url is in the response headers dump them to a file.
curl "${BASE_URL}/upload/v1beta/files?key=${GOOGLE_API_KEY}" \
  -D upload-header.tmp \
  -H "X-Goog-Upload-Protocol: resumable" \
  -H "X-Goog-Upload-Command: start" \
  -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
  -H "Content-Type: application/json" \
  -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null

upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
rm "${tmp_header_file}"

# Upload the actual bytes.
curl "${upload_url}" \
  -H "Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Offset: 0" \
  -H "X-Goog-Upload-Command: upload, finalize" \
  --data-binary "@${AUDIO_PATH}" 2> /dev/null > file_info.json

file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri

# Now generate content using that file
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GOOGLE_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"text": "Describe this audio clip"},
          {"file_data":{"mime_type": "${MIME_TYPE}", "file_uri": '$file_uri'}}]
        }]
      }' 2> /dev/null > response.json

cat response.json
echo

jq ".candidates[].content.parts[].text" response.json

Mendapatkan metadata untuk file

Anda dapat memverifikasi bahwa API berhasil menyimpan file yang diupload dan mendapatkan metadatanya dengan memanggil files.get.

myfile = client.files.upload(file='path/to/sample.mp3')
file_name = myfile.name
myfile = client.files.get(name=file_name)
print(myfile)
const myfile = await ai.files.upload({
  file: "path/to/sample.mp3",
  config: { mimeType: "audio/mpeg" },
});

const fileName = myfile.name;
const fetchedFile = await ai.files.get({ name: fileName });
console.log(fetchedFile);
file, err := client.UploadFileFromPath(ctx, "path/to/sample.mp3", nil)
if err != nil {
    log.Fatal(err)
}

gotFile, err := client.GetFile(ctx, file.Name)
if err != nil {
    log.Fatal(err)
}
fmt.Println("Got file:", gotFile.Name)
# file_info.json was created in the upload example
name=$(jq ".file.name" file_info.json)
# Get the file of interest to check state
curl https://generativelanguage.googleapis.com/v1beta/files/$name > file_info.json
# Print some information about the file you got
name=$(jq ".file.name" file_info.json)
echo name=$name
file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri

Mencantumkan file yang diupload

Anda dapat mengupload beberapa file menggunakan Files API. Kode berikut mendapatkan daftar semua file yang diupload:

print('My files:')
for f in client.files.list():
    print(' ', f.name)
const listResponse = await ai.files.list({ config: { pageSize: 10 } });
for await (const file of listResponse) {
  console.log(file.name);
}
iter := client.ListFiles(ctx)
for {
    ifile, err := iter.Next()
    if err == iterator.Done {
        break
    }
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(ifile.Name)
}
echo "My files: "

curl "https://generativelanguage.googleapis.com/v1beta/files?key=$GOOGLE_API_KEY"

Menghapus file yang diupload

File akan otomatis dihapus setelah 48 jam. Anda juga dapat menghapus file yang diupload secara manual:

myfile = client.files.upload(file='path/to/sample.mp3')
client.files.delete(name=myfile.name)
const myfile = await ai.files.upload({
  file: "path/to/sample.mp3",
  config: { mimeType: "audio/mpeg" },
});

const fileName = myfile.name;
await ai.files.delete({ name: fileName });
file, err := client.UploadFileFromPath(ctx, "path/to/sample.mp3", nil)
if err != nil {
    log.Fatal(err)
}
client.DeleteFile(ctx, file.Name)
curl --request "DELETE" https://generativelanguage.googleapis.com/v1beta/files/$name?key=$GOOGLE_API_KEY

Info penggunaan

Anda dapat menggunakan Files API untuk mengupload dan berinteraksi dengan file media. Files API memungkinkan Anda menyimpan file hingga 20 GB per project, dengan ukuran maksimum per file sebesar 2 GB. File disimpan selama 48 jam. Selama waktu tersebut, Anda dapat menggunakan API untuk mendapatkan metadata tentang file, tetapi Anda tidak dapat mendownload file. Files API tersedia tanpa biaya di semua wilayah tempat Gemini API tersedia.

Bagian ini memberikan panduan dan praktik terbaik untuk menggunakan file media dengan perintah untuk Gemini API.

Kemampuan untuk menggunakan berbagai jenis data dalam perintah memberi Anda lebih banyak fleksibilitas dalam hal tugas yang dapat Anda tangani dengan Gemini API. Misalnya, Anda dapat mengirim foto makanan lezat ke model dan memintanya untuk menulis blog singkat tentang makanan tersebut.

Perintah Respons

Tulis postingan blog singkat dan menarik berdasarkan gambar ini. Deskripsi harus menyertakan deskripsi makanan dalam foto dan membahas perjalanan persiapan makan saya.


Kukis

Menyiapkan makanan adalah cara yang bagus untuk menghemat waktu dan uang, dan juga dapat membantu Anda makan lebih sehat. Hidangan ini adalah contoh yang bagus dari makanan sehat dan lezat yang dapat disiapkan dengan mudah sebelumnya.

Hidangan ini terdiri dari nasi merah, sayuran panggang, dan ayam teriyaki. Nasi merah adalah karbohidrat sehat dan kompleks yang akan memberi Anda energi berkelanjutan. Sayuran panggang adalah cara yang bagus untuk mendapatkan dosis vitamin dan mineral harian Anda, dan teriyaki ayam adalah opsi yang lezat dan kaya protein.

Hidangan ini juga sangat mudah disiapkan. Cukup masak nasi merah, panggang sayuran, dan masak teriyaki ayam. Setelah semuanya dimasak, bagilah ke dalam wadah persiapan makanan dan simpan di kulkas. Kemudian, Anda dapat mengambil wadah dan pergi di pagi hari yang sibuk.

Jika Anda mencari makanan sehat dan lezat yang dapat disiapkan dengan mudah sebelumnya, makanan ini adalah pilihan yang tepat. Makanan ini penuh dengan nutrisi dan rasa, serta pasti akan membuat Anda merasa kenyang dan puas.

Selamat menyiapkan makanan yang sehat dan lezat!

Jika Anda mengalami kesulitan mendapatkan output yang diinginkan dari perintah yang menggunakan file media, ada beberapa strategi yang dapat membantu Anda mendapatkan hasil yang diinginkan. Bagian berikut memberikan pendekatan desain dan tips pemecahan masalah untuk meningkatkan perintah yang menggunakan input multimodal.

Anda dapat meningkatkan perintah multimodal dengan mengikuti praktik terbaik berikut:

  • Dasar-dasar desain perintah

    • Berikan petunjuk yang spesifik: Buat petunjuk yang jelas dan ringkas sehingga tidak menimbulkan banyak kesalahpahaman.
    • Tambahkan beberapa contoh ke perintah Anda: Gunakan contoh few-shot yang realistis untuk menggambarkan hal yang ingin Anda capai.
    • Pisahkan langkah demi langkah: Bagi tugas yang kompleks menjadi sub-sasaran yang mudah dikelola, yang memandu model melalui prosesnya.
    • Menentukan format output: Dalam perintah Anda, minta output dalam format yang Anda inginkan, seperti markdown, JSON, HTML, dan lainnya.
    • Letakkan gambar Anda terlebih dahulu untuk perintah gambar tunggal: Meskipun Gemini dapat menangani input gambar dan teks dalam urutan apa pun, untuk perintah yang berisi satu gambar, performanya mungkin akan lebih baik jika gambar (atau video) tersebut ditempatkan sebelum perintah teks. Namun, untuk perintah yang mengharuskan gambar untuk sangat diselingi dengan teks agar masuk akal, gunakan urutan apa pun yang paling alami.
  • Memecahkan masalah perintah multimodal

    • Jika model tidak mengambil informasi dari bagian gambar yang relevan: Berikan petunjuk tentang aspek gambar yang ingin Anda ambil informasinya.
    • Jika output model terlalu umum (tidak cukup disesuaikan dengan input gambar/video): Di awal perintah, coba minta model untuk mendeskripsikan gambar atau video sebelum memberikan petunjuk tugas, atau coba minta model untuk merujuk pada apa yang ada dalam gambar.
    • Untuk memecahkan masalah bagian mana yang gagal: Minta model untuk mendeskripsikan gambar, atau minta model untuk menjelaskan penalarannya, guna mengukur pemahaman awal model.
    • Jika perintah Anda menghasilkan konten halusinasi: Coba turunkan setelan suhu atau minta deskripsi yang lebih singkat kepada model sehingga tidak terlalu mungkin mengekstrapolasi detail tambahan.
    • Menyesuaikan parameter sampling: Bereksperimenlah dengan berbagai setelan suhu dan pilihan top-k untuk menyesuaikan kreativitas model.

Berikan petunjuk yang spesifik

Perintah akan paling berhasil jika jelas dan mendetail. Jika Anda memiliki output tertentu, sebaiknya sertakan persyaratan tersebut dalam perintah untuk memastikan Anda mendapatkan output yang diinginkan.

Untuk gambar papan bandara ini, meminta model untuk hanya "menjelaskan gambar ini" dapat menghasilkan deskripsi umum. Jika Anda memerlukan model untuk mengurai waktu dan kota dari gambar, Anda dapat menyertakan permintaan tersebut langsung dalam perintah.

Perintah Respons model

Jelaskan gambar ini.

Gambar menampilkan papan kedatangan dan keberangkatan bandara.

Perintah yang diperbarui Respons yang lebih baik
Jadwal perjalanan

Parse the time and city from the airport board shown in this image into a list.

  • 10.50 Moskow
  • 11.05 Edinburgh
  • 11.05 London
  • 11.10 Bukares
  • 11.30 Kiev
  • 11.35 Dublin
  • 11.45 Midlands Timur
  • 12.15 Sofia
  • 12.30 London
  • 12.30 Newcastle
  • 12.40 St Petersburg
  • 12.40 London
  • 12.45 Manchester
  • Menambahkan beberapa contoh

    Model Gemini dapat menerima beberapa input yang dapat digunakan sebagai contoh untuk memahami output yang Anda inginkan. Menambahkan contoh ini dapat membantu model mengidentifikasi pola dan menerapkan hubungan antara gambar dan respons yang diberikan ke contoh baru. Hal ini juga disebut pemelajaran "beberapa tahap".

    Pada contoh di bawah, output awal ditulis dalam bentuk kalimat, dan juga berisi negara (Brasil). Misalnya, Anda menginginkan output dalam format atau gaya yang berbeda, dan Anda hanya ingin kota, bukan negara. Menambahkan contoh few-shot ke perintah Anda dapat mengarahkan model untuk merespons dengan cara yang Anda inginkan.

    Perintah Respons model
    Jadwal perjalanan

    Tentukan kota beserta penandanya.

    Penandanya adalah patung Kristus Penebus di Rio de Janeiro, Brasil.

    Perintah yang diperbarui Respons yang lebih baik

    Tentukan kota beserta penandanya.

    colosseum

    kota: Roma, penanda: Colosseum.

    Kota Terlarang

    city: Beijing, landmark: Forbidden City

    forbidden-city

    kota: Rio de Janeiro, landmark: patung Kristus Penebus

    Mempelajarinya langkah demi langkah

    Untuk tugas yang kompleks seperti tugas yang memerlukan pemahaman visual dan pemikiran, sebaiknya bagi tugas menjadi langkah-langkah yang lebih kecil dan lebih sederhana. Atau, hal ini juga dapat efektif jika Anda langsung meminta model untuk “berpikir langkah demi langkah” dalam perintah Anda.

    Perintah Respons model

    Kapan saya akan kehabisan tisu toilet?

    Dalam waktu dekat, Anda hanya akan memiliki 3 gulungan lagi.

    Perintah yang diperbarui Respons yang lebih baik

      1. Pertama, hitung berapa banyak gulungan tisu toilet dalam gambar ini.
      2. Kemudian, tentukan jumlah kertas toilet yang digunakan orang biasa per hari.
      3. Hitung berapa lama gulungan tisu toilet ini akan bertahan.

      1. Ada 3 gulung tisu toilet dalam gambar ini.
      2. Rata-rata orang menggunakan sekitar 20 lembar tisu toilet per hari.
      3. Jika setiap gulungan berisi 200 lembar, setiap gulungan akan bertahan selama sekitar 10 hari. Oleh karena itu, 3 gulungan tersebut akan bertahan selama sekitar satu bulan.

    Soal matematika atau jenis soal cerita lainnya adalah kandidat yang bagus untuk meminta model berpikir langkah demi langkah.

    Perintah Respons

    Berapa suku ke-4 dalam urutan tersebut?

    -135

    Respons dari model salah. Beberapa cara untuk meningkatkannya adalah dengan meminta model untuk mengurai masalah sebelum menjawab perintah.

    Perintah Respons

    Mengurai formula dalam gambar terlebih dahulu.

    Kemudian, berdasarkan formula, jawab "berapa suku ke-4 dalam urutan?".

    Klik untuk meluaskan hasil

    \( b(n) = b(n-1) * (-3) \)

    \( b(1) = 15 \)

    1. Ganti n = 4 ke dalam formula:
    2. \( b(4) = b(4-1) * (-3) \)

      \( b(4) = b(3) * (-3) \)

    3. Kita tidak tahu nilai b(3), jadi ganti n = 3 ke dalam formula:
    4. \( b(3) = b(3-1) * (-3) \)

      \( b(3) = b(2) * (-3) \)

    5. Kita tidak tahu nilai b(2), jadi ganti n = 2 ke dalam formula:
    6. \( b(2) = b(2-1) * (-3) \)

      \( b(2) = b(1) * (-3) \)

    7. Kita tahu nilai b(1) adalah 15, jadi ganti nilai tersebut ke dalam formula:
    8. \( b(2) = 15 * (-3) \)

      \( b(2) = -45 \)

    9. Setelah mengetahui nilai b(2), substitusikan ke dalam formula untuk b(3):
    10. \( b(3) = b(2) * (-3) \)

      \( b(3) = -45 * (-3) \)

      \( b(3) = 135 \)

    11. Setelah mengetahui nilai b(3), substitusikan ke dalam formula untuk b(4):
    12. \( b(4) = b(3) * (-3) \)

      \( b(4) = 135 * (-3) \)

      \( b(4) = -405 \)

    Oleh karena itu, istilah ke-4 dalam urutan adalah -405.

    Respons model ini sudah benar. Sekarang, untuk membuat respons lebih sederhana, Anda dapat meminta model untuk berpikir langkah demi langkah.

    Perintah yang diperbarui Respons yang lebih baik

    Berapa suku ke-4 dalam urutan tersebut? Pikirkan langkah demi langkah.

    Istilah pertama adalah 15.

    Istilah kedua adalah b(1) * (-3) = 15 * (-3) = -45.

    Istilah ketiga adalah b(2) * (-3) = -45 * (-3) = 135.

    Istilah keempat adalah b(3) * (-3) = 135 * (-3) = -405.

    Menentukan format output

    Masalah umum adalah kebutuhan output model dalam format tertentu (misalnya markdown, JSON, HTML), terutama jika output model perlu diproses oleh tugas downstream. Anda dapat mencoba menghasilkan output dalam format tersebut dengan menginstruksikan model untuk melakukannya dalam perintah. Berikut adalah dua contoh:

    Perintah Respons model

    Mengurai tabel dalam gambar ini ke dalam format markdown

    | Subjek | Status | Waktu | Tanggal mulai | Batas waktu |

    | ------- | ------ | ---- | --------- | ------ |

    | Matematika | Selesai | 1,5 jam | 29/11/2023 | 1/12/2023 |

    | Geografi | Selesai | 30 menit | 2/12/2023 | 4/12/2023 |

    | Fisika | Sedang berlangsung | 2 jam | 12/3/2023 | 12/5/2023 |

    | Biologi | Belum dimulai | 6 jam | 2/11/2016 | 6/12/2023 |

    Perintah Respons model

    Berikan daftar semua atribut berikut:

    bahan, jenis masakan, vegetarian atau tidak, dalam format JSON

    ```json```

    {

    "ingredients": [

    "rice",

    "shrimp",

    "clams",

    "mussels",

    "peas",

    "tomatoes",

    "onions",

    "garlic",

    "olive oil",

    "paprika",

    "salt",

    "pepper"

    ],

    "type of cuisine": "Spanish",

    "vegetarian": false

    Letakkan gambar Anda terlebih dahulu untuk perintah gambar tunggal

    Meskipun Gemini dapat menafsirkan gambar dan teks dalam urutan apa pun dalam perintah, menempatkan satu gambar sebelum perintah teks dapat menghasilkan hasil yang lebih baik. Dalam contoh berikut, Anda akan melihat gambar muncul terlebih dahulu sebelum teks dalam setiap perintah.

    Memecahkan masalah perintah multimodal

    Anda mungkin perlu memecahkan masalah perintah jika tidak mendapatkan respons yang berguna. Berikut beberapa strategi yang dapat Anda coba.

    Jika model tidak menggambar informasi dari bagian gambar yang relevan

    Untuk mendapatkan respons yang lebih spesifik, Anda dapat menunjukkan aspek gambar mana yang ingin Anda ambil informasinya dari perintah untuk menentukan responsnya.

    Perintah Respons model

    Berapa lama popok ini dapat digunakan oleh bayi?

    Popok akan bertahan selama 198 hari sebelum habis.

    Perintah yang diperbarui Respons yang lebih baik

    Berapa lama popok ini akan bertahan sebelum habis?

    Gunakan berat yang ditampilkan di kotak untuk menentukan usia anak, dan gunakan jumlah total popok dalam kotak.

    Bagi jumlah total dengan jumlah popok yang digunakan anak per hari.

    Kotak berisi 198 popok. Kotak menyatakan bahwa popok tersebut untuk anak dengan berat 10-17 kg.

    Anak rata-rata dalam rentang berat ini kemungkinan berusia antara 1 dan 2 tahun.

    Anak berusia 2 tahun biasanya menggunakan 6 popok per hari, sehingga popok akan bertahan sekitar 33 hari (198/6).

    Jika output model terlalu umum dan tidak cukup disesuaikan dengan input gambar

    Untuk membantu model menyesuaikan responsnya dengan gambar, coba minta model untuk mendeskripsikan gambar sebelum melakukan tugas penalarannya.

    Perintah Respons model

    Apa kesamaan antara gambar-gambar ini?

    Keempat gambar tersebut adalah contoh fotografi lanskap.

    Perintah yang diperbarui Respons yang lebih baik

    Pertama, jelaskan apa yang ada dalam setiap gambar secara mendetail. Apa kesamaan antara gambar-gambar ini?

    Gambar pertama menampilkan seseorang yang sedang mengepak koper. Gambar kedua menunjukkan lorong kosong di pusat perbelanjaan. Gambar ketiga menampilkan gulungan tisu toilet. Gambar keempat menampilkan laut yang gelap dan berangin.

    Kesamaan antara gambar-gambar ini adalah semuanya adalah contoh ruang liminal. Ruang liminal adalah tempat atau situasi yang berada di antara dua tempat atau situasi lainnya. Sering kali, cerita ini ditandai dengan perasaan tidak pasti atau ambigu.

    Gambar pertama menunjukkan orang yang sedang berada di rumah dan sedang dalam perjalanan. Gambar kedua menunjukkan lorong di antara dua toko. Gambar ketiga adalah kertas toilet, yang dapat mewakili kamar mandi. Kamar mandi adalah ruang transisi antara ruang pribadi dan publik. Ini adalah tempat kita mempersiapkan diri untuk memasuki atau meninggalkan dunia luar.

    Gambar keempat menunjukkan laut yang sedang tenang dan sedang badai.

    Ruang liminal bisa menyenangkan sekaligus meresahkan. Tempat ini bisa menjadi tempat awal yang baru atau tempat akhir. Ruang ini dapat menjadi tempat refleksi atau tempat tindakan.

    Anda juga dapat mencoba meminta model secara eksplisit untuk merujuk pada apa yang ada dalam gambar.

    Perintah yang diperbarui Respons yang lebih baik

    Apa kesamaan antara gambar-gambar ini? Lihat apa yang ada dalam gambar dalam respons Anda.

    Semua gambar terkait perjalanan. Gambar pertama menunjukkan seseorang yang sedang mengepak koper, gambar kedua menunjukkan lorong kosong di pusat perbelanjaan, gambar ketiga menunjukkan tumpukan tisu toilet, dan gambar keempat menunjukkan laut yang gelap dan berangin.

    Semua gambar ini terkait dengan perjalanan karena semuanya adalah hal yang dibutuhkan atau digunakan orang saat bepergian. Gambar pertama menunjukkan seseorang yang sedang mengepak koper, yang merupakan hal yang dilakukan orang saat mereka akan melakukan perjalanan. Gambar kedua menunjukkan lorong kosong di pusat perbelanjaan, yang merupakan tempat yang sering dikunjungi orang untuk membeli barang untuk perjalanan mereka. Gambar ketiga menunjukkan tumpukan tisu toilet, yang merupakan sesuatu yang sering digunakan orang saat bepergian. Gambar keempat menunjukkan laut yang gelap dan berangin, yang sering kali ditemui orang saat bepergian.

    Tips yang sama berlaku untuk output materi iklan dari gambar. Dalam contoh berikut dengan kelinci, meminta model secara eksplisit untuk menyertakan aspek dari gambar dapat meningkatkan output.

    Perintah Respons model

    Bisakah Anda menuliskan puisi tentang gambar ini?

    Kelinci kecil, sangat lembut dan berwarna cokelat,
    Melompat-lompat di padang rumput, ke atas dan ke bawah.
    Telinga Anda panjang, ekor Anda kecil,
    Anda adalah makhluk paling lucu di antara semuanya.

    Kamu menggigit rumput, yang begitu hijau dan manis,
    Lalu melompat pergi saat melihatku.
    Tapi aku akan selalu menjadi temanmu,
    Kelinci kecil, sampai akhir.

    Perintah yang diperbarui Respons yang lebih baik

    Dapatkah Anda menuliskan puisi deskriptif dan dramatis tentang gambar ini dan menyertakan lokasinya?

    Kelinci kecil di padang rumput,
    Telinganya panjang, sangat tajam.
    Apa yang Anda lihat di luar sana,
    Di kejauhan, tempat Anda menatap?

    Apakah itu biru laut,
    Berkilau dalam nuansa matahari?
    Atau ombak yang bergulung dan bergemuruh,
    Ritme yang Anda sukai?

    Kelinci kecil, katakan yang sebenarnya,
    Apa yang menarik perhatianmu?
    Apakah angin laut yang asin,
    Atau kicau burung camar yang menyenangkan?

    Mungkin karena luasnya,
    Dunia yang begitu besar dan kecil.
    Tempat impian dapat berkeliaran,
    Dan petualangan dapat ditanam.

    Kelinci kecil, apa yang kamu impikan,
    Saat kamu duduk di rumput, begitu tenang.
    Apakah Anda ingin menjelajahi kedalaman,
    Atau tetap di darat, tempat Anda dapat melompat?

    Apa pun itu, kelinci kecil,
    Jaga agar percikan keingintahuan itu tetap menyala terang.
    Karena dalam mimpi dan aspirasi Anda,
    Terdapat dunia yang menunggu kreasi Anda.

    Memecahkan masalah bagian perintah yang gagal

    Sulit untuk mengetahui apakah perintah gagal karena model tidak memahami gambar sejak awal, atau jika model memahami gambar tetapi tidak melakukan langkah penalaran yang benar setelahnya. Untuk membedakan antara alasan tersebut, minta model untuk menjelaskan apa yang ada dalam gambar.

    Pada contoh berikut, jika model merespons dengan camilan yang tampak mengejutkan saat dipadukan dengan teh (misalnya, popcorn), Anda dapat memecahkan masalah terlebih dahulu untuk menentukan apakah model mengenali dengan benar bahwa gambar berisi teh.

    Perintah Permintaan untuk pemecahan masalah

    Apa camilan yang dapat saya buat dalam 1 menit yang cocok dengan ini?

    Jelaskan apa yang ada dalam gambar ini.

    Strategi lainnya adalah meminta model untuk menjelaskan penalarannya. Hal ini dapat membantu Anda mempersempit bagian penalaran yang mengalami gangguan, jika ada.

    Perintah Permintaan untuk pemecahan masalah

    Apa camilan yang dapat saya buat dalam 1 menit yang cocok dengan ini?

    Apa camilan yang dapat saya buat dalam 1 menit yang cocok dengan ini? Harap jelaskan alasannya.

    Langkah berikutnya

    • Coba tulis perintah multimodal Anda sendiri menggunakan Google AI Studio.
    • Untuk informasi tentang cara menggunakan Gemini Files API untuk mengupload file media dan menyertakannya dalam perintah Anda, lihat panduan Vision, Audio, dan Pemrosesan dokumen.
    • Untuk panduan selengkapnya tentang desain perintah, seperti menyesuaikan parameter sampling, lihat halaman Strategi perintah.