Dosyalar API'si

Gemini yapay zeka (AI) modeli ailesi; metin, resim ve ses gibi çeşitli giriş veri türlerini işlemek için tasarlanmıştır. Bu modeller birden fazla veri türü veya modu işleyebildiğinden Gemini modelleri çok modlu modeller olarak adlandırılır ya da çok modlu özelliklere sahip olarak açıklanır.

Bu kılavuzda, Files API'yi kullanarak medya dosyalarıyla nasıl çalışacağınız gösterilmektedir. Temel işlemler; ses dosyaları, resimler, videolar, dokümanlar ve desteklenen diğer dosya türleri için aynıdır.

Dosya istemi hakkında bilgi edinmek için Dosya istemi kılavuzu bölümüne göz atın.

Dosya yükleyin

Medya dosyası yüklemek için Files API'yi kullanabilirsiniz. Toplam istek boyutu (dosyalar, metin istemi, sistem talimatları vb. dahil) 20 MB'tan büyük olduğunda her zaman Files API'yi kullanın.

Aşağıdaki kod, bir dosyayı yükler ve ardından dosyayı generateContent çağrısında kullanır.

Python

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)

JavaScript

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();

Go

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)

REST

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

Bir dosyanın meta verilerini alma

API'nin yüklenen dosyayı başarıyla depoladığını doğrulamak ve files.get çağrısını yaparak meta verilerini almak için:

Python

myfile = client.files.upload(file='path/to/sample.mp3')
file_name = myfile.name
myfile = client.files.get(name=file_name)
print(myfile)

JavaScript

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);

Go

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)

REST

# 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

Yüklenen dosyaları listeleme

Files API'yi kullanarak birden fazla dosya yükleyebilirsiniz. Aşağıdaki kod, yüklenen tüm dosyaların listesini alır:

Python

print('My files:')
for f in client.files.list():
    print(' ', f.name)

JavaScript

const listResponse = await ai.files.list({ config: { pageSize: 10 } });
for await (const file of listResponse) {
  console.log(file.name);
}

Go

iter := client.ListFiles(ctx)
for {
    ifile, err := iter.Next()
    if err == iterator.Done {
        break
    }
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(ifile.Name)
}

REST

echo "My files: "

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

Yüklenen dosyaları silme

Dosyalar 48 saat sonra otomatik olarak silinir. Yüklenen bir dosyayı manuel olarak da silebilirsiniz:

Python

myfile = client.files.upload(file='path/to/sample.mp3')
client.files.delete(name=myfile.name)

JavaScript

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 });

Go

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

REST

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

Kullanım bilgileri

Medya dosyalarını yüklemek ve bunlarla etkileşim kurmak için Files API'yi kullanabilirsiniz. Files API, proje başına 20 GB'a kadar dosya depolamanızı sağlar. Dosya başına maksimum boyut 2 GB'tır. Dosyalar 48 saat boyunca saklanır. Bu süre zarfında, dosyalarla ilgili meta verileri almak için API'yi kullanabilirsiniz ancak dosyaları indiremezsiniz. Files API, Gemini API'nin kullanılabildiği tüm bölgelerde ücretsiz olarak kullanılabilir.

Dosya istemi stratejileri

Bu bölümde, Gemini API'si için istemlerle medya dosyalarını kullanmayla ilgili kılavuzlar ve en iyi uygulamalar yer almaktadır.

İstemlerinizde çeşitli veri türlerini kullanabilmek, Gemini API ile hangi görevleri üstlenebileceğiniz konusunda daha fazla esneklik sağlar. Örneğin, modele lezzetli bir yemeğin fotoğrafını gönderip yemek hakkında kısa bir blog yazmasını isteyebilirsiniz.

İstem Yanıt

Bu resme dayalı kısa ve ilgi çekici bir blog yayını yazın. Fotoğraftaki yemeğin açıklamasını içermeli ve yemek hazırlama deneyimimden bahsetmelidir.


Çerezler

Yemek hazırlamak, zaman ve para tasarrufu yapmanın yanı sıra daha sağlıklı beslenmenize de yardımcı olabilir. Bu yemek, önceden kolayca hazırlanabilen sağlıklı ve lezzetli bir yemeğin mükemmel bir örneğidir.

Bu yemekte kahverengi pirinç, kavrulmuş sebzeler ve teriyaki tavuk bulunur. Kahverengi pirinç, uzun süreli enerji veren sağlıklı ve karmaşık bir karbonhidrattır. Kavrulmuş sebzeler, günlük vitamin ve mineral ihtiyacınızı karşılamak için mükemmel bir seçenektir. Teriyaki tavuk ise lezzetli ve protein açısından zengin bir alternatiftir.

Bu yemeğin hazırlanması da çok kolaydır. Kahverengi pirinci pişirin, sebzeleri ızgara yapın ve tavuk teriyakiyi pişirin. Her şey piştikten sonra bunları yemek hazırlama kaplarına bölün ve buzdolabında saklayın. Ardından, bir kap alıp yoğun sabahlara hazırlanabilirsiniz.

Önceden kolayca hazırlanabilen sağlıklı ve lezzetli bir yemek arıyorsanız bu yemek mükemmel bir seçenektir. Besin değeri ve lezzeti yüksek olan bu yemek, kendinizi tok ve memnun hissetmenizi sağlar.

Sağlıklı ve lezzetli yemekler hazırlamanız dileğiyle.

Medya dosyalarını kullanan istemlerden istediğiniz çıktıyı alma konusunda sorun yaşıyorsanız istediğiniz sonuçları elde etmenize yardımcı olabilecek bazı stratejiler vardır. Aşağıdaki bölümlerde, çoklu giriş kullanan istemleri iyileştirmeye yönelik tasarım yaklaşımları ve sorun giderme ipuçları verilmiştir.

Aşağıdaki en iyi uygulamaları izleyerek çoklu modal istemlerinizi iyileştirebilirsiniz:

  • İstem tasarımıyla ilgili temel bilgiler

    • Talimatlarınızda net olun: Yanlış anlaşılmaya çok az yer bırakan net ve kısa talimatlar oluşturun.
    • İsteminize birkaç örnek ekleyin: Ne elde etmek istediğinizi göstermek için gerçekçi birkaç örnek kullanın.
    • Adım adım ayrıntılı olarak inceleyin: Karmaşık görevleri yönetilebilir alt hedeflere ayırarak modele süreçte yol gösterin.
    • Çıkış biçimini belirtin: İsteminizde, çıkışın markdown, JSON, HTML gibi istediğiniz biçimde olmasını isteyin.
    • Tek resim içeren istemler için resminizi önceye koyun: Gemini, resim ve metin girişlerini herhangi bir sırada işleyebilir. Ancak tek resim içeren istemlerde, söz konusu resim (veya video) metin isteminden önce yerleştirilirse daha iyi performans elde edilebilir. Ancak, anlamlı olması için resimlerin metinlerle yoğun şekilde iç içe geçmesini gerektiren istemlerde en doğal sırayı kullanın.
  • Çoklu modal isteminizle ilgili sorunları giderme

    • Model, resmin ilgili kısmından bilgi almıyorsa: İstemin bilgi almasını istediğiniz resmin hangi yönlerini belirtecek ipuçları bırakın.
    • Model çıkışı çok genelse (giriş resmine/videosuna yeterince uyarlanmamışsa): İstemin başında, görev talimatlarını vermeden önce modelden resimleri veya videoyu açıklamasını ya da resimdeki öğelere değinmesini istemeyi deneyin.
    • Hangi kısmın başarısız olduğunu gidermek için: Modelin ilk anlayışını ölçmek amacıyla modelden resmi açıklamasını veya nedenini açıklamasını isteyin.
    • İsteminiz halüsinasyon içeren içeriklerle sonuçlanıyorsa: Ek ayrıntılar tahmin etme olasılığının daha düşük olması için sıcaklık ayarını düşürmeyi veya modelden daha kısa açıklamalar istemeyi deneyin.
    • Örnekleme parametrelerini ayarlama: Modelin yaratıcılığına göre ayar yapmak için farklı sıcaklık ayarlarını ve en iyi k seçimlerini deneyin.

Talimatlarınızda net olun

İstemler en başarılı sonuçları net ve ayrıntılı olduklarında verir. Belirli bir çıktıyı hedefliyorsanız istediğiniz çıktıyı alabilmeniz için bu koşulu isteminize eklemeniz daha iyidir.

Bir havaalanı tabelasının yer aldığı bu resimde modelden yalnızca "bu resmi tanımlamasını" istemek genel bir açıklama oluşturabilir. Modelin resimdeki saati ve şehri ayrıştırması gerekiyorsa bu isteği doğrudan isteminize ekleyebilirsiniz.

İstem Model yanıtı

Bu resmi tanımla.

Resimde bir havalimanının gelen ve giden uçuşlar tabelası gösteriliyor.

Güncellenen istem İyileştirilmiş yanıt
Seyahat tarifesi

Bu resimde gösterilen havaalanı panosunda yer alan saati ve şehri bir listeye ayırın.

  • 10:50 Moskova
  • 11:05 Edinburgh
  • 11:05 Londra
  • 11:10 Bükreş
  • 11:30 Kiev
  • 11:35 Dublin
  • 11:45 East Midlands
  • 12:15 Sofya
  • 12:30 Londra
  • 12:30 Newcastle
  • 12:40 St Petersburg
  • 12:40 Londra
  • 12:45 Manchester
  • Birkaç örnek ekleyin

    Gemini modeli, istediğiniz çıktıyı anlamak için örnek olarak kullanabileceği birden fazla girişi kabul edebilir. Bu örnekleri eklemek, modelin kalıpları belirlemesine ve verilen resimler ile yanıtlar arasındaki ilişkiyi yeni örneğe uygulamasına yardımcı olabilir. Buna "az sayıda örnekle" öğrenme de denir.

    Aşağıdaki örnekte, ilk çıkış cümle biçiminde yazılmıştır ve ülkeyi (Brezilya) da içerir. Çıktının farklı bir biçimde veya tarzda olmasını ve ülkenin değil, yalnızca şehrin gösterilmesini istediğinizi varsayalım. İsteminize birkaç örnek eklemek, modelin istediğiniz şekilde yanıt vermesini sağlayabilir.

    İstem Model yanıtı
    Seyahat tarifesi

    Simge yapıyla birlikte şehri belirleyin.

    Bu simge, Brezilya'nın Rio de Janeiro kentindeki Kurtarıcı İsa heykeli.

    Güncellenen istem İyileştirilmiş yanıt

    Simge yapıyla birlikte şehri belirleyin.

    Kolezyum

    şehir: Roma, simge yapı: Kolezyum.

    Yasak Şehir

    şehir: Pekin, simge yapı: Yasak Şehir

    forbidden-city

    şehir: Rio de Janeiro, simge yapı: Kurtarıcı İsa heykeli

    Adım adım açıklama

    Hem görsel anlama hem de akıl yürütme gerektiren karmaşık görevler için görevi daha küçük ve daha basit adımlara bölmek yararlı olabilir. Alternatif olarak, isteminizde modelden doğrudan "adım adım düşünmesini" istemeniz de etkili olabilir.

    İstem Model yanıtı

    When will I run out of toilet paper?

    Yakında yalnızca 3 rulonuz kalacak.

    Güncellenen istem İyileştirilmiş yanıt

      1. Öncelikle bu resimde kaç tane tuvalet kağıdı rulosu olduğunu sayın.
      2. Ardından, ortalama bir kişinin günde ne kadar tuvalet kağıdı kullandığını belirleyin.
      3. Bu tuvalet kağıdı rulolarının ne kadar süre dayanacağını hesaplayın.

      1. Bu resimde 3 rulo tuvalet kağıdı var.
      2. Ortalama bir kişi günde yaklaşık 20 rulo tuvalet kağıdı kullanır.
      3. Her rulo 200 yaprak içeriyorsa her rulo yaklaşık 10 gün sürer. Bu nedenle, 3 rulo yaklaşık bir ay dayanır.

    Matematik problemleri veya diğer sözel problem türleri, modelden adım adım düşünmesini istemek için mükemmel adaylardır.

    İstem Yanıt

    Dizinin 4. terimi nedir?

    -135

    Modelden gelen yanıt yanlış. Bu sorunu iyileştirmenin bazı yolları, modelden isteği yanıtlamadan önce sorunu ayrıştırmasını istemektir.

    İstem Yanıt

    Öncelikle resimdeki formülü ayrıştırın.

    Ardından, formüle göre "sıralıdaki 4. terim nedir?" sorusunu yanıtlayın.

    Sonucu genişletmek için tıklayın

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

    \( b(1) = 15 \)

    1. Formüle n = 4 değerini yerine koyun:
    2. \( b(4) = b(4-1) * (-3) \)

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

    3. b(3) değerini bilmediğimiz için formüle n = 3 değerini koyarız:
    4. \( b(3) = b(3-1) * (-3) \)

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

    5. b(2) değerini bilmediğimiz için formüle n = 2 değerini yerleştiririz:
    6. \( b(2) = b(2-1) * (-3) \)

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

    7. b(1) değerinin 15 olduğunu biliyoruz. Bu değeri formüle yerleştirelim:
    8. \( b(2) = 15 * (-3) \)

      \( b(2) = -45 \)

    9. b(2) değerini bildiğimize göre bunu b(3) formülüne yerleştirin:
    10. \( b(3) = b(2) * (-3) \)

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

      \( b(3) = 135 \)

    11. b(3) değerini bildiğimize göre bunu b(4) formülüne yerleştirin:
    12. \( b(4) = b(3) * (-3) \)

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

      \( b(4) = -405 \)

    Bu nedenle, dizinin 4. terimi -405'tir.

    Bu model yanıtı doğrudur. Yanıtı daha da basitleştirmek için modelden adım adım düşünmesini isteyebilirsiniz.

    Güncellenen istem İyileştirilmiş yanıt

    Dizinin 4. terimi nedir? Adım adım düşünün.

    İlk terim 15'tir.

    İkinci terim b(1) * (-3) = 15 * (-3) = -45'tir.

    Üçüncü terim b(2) * (-3) = -45 * (-3) = 135'tir.

    Dördüncü terim b(3) * (-3) = 135 * (-3) = -405'tir.

    Çıkış biçimini belirtin

    Özellikle model çıktısının bir yayın sonrası görev tarafından işlenmesi gerekiyorsa model çıktısının belirli bir biçimde (ör. Markdown, JSON, HTML) olması gerektiği yaygın bir sorundur. İstemde modele bu şekilde çıkış yapmasını talimat vererek bu biçimde çıkış elde etmeyi deneyebilirsiniz. Aşağıda iki örnek verilmiştir:

    İstem Model yanıtı

    Bu resimdeki tabloyu Markdown biçiminde ayrıştırma

    | Konu | Durum | Zaman | Başlangıç tarihi | Son tarih |

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

    | Matematik | Tamamlandı | 1,5 saat | 29/11/2023 | 1/12/2023 |

    | Coğrafya | Tamamlandı | 30 dk | 2.12.2023 | 4.12.2023 |

    | Fizik | Devam ediyor | 2 saat | 3/12/2023 | 5/12/2023 |

    | Biyoloji | Başlanmadı | 6 saat | 2/11/2016 | 6/12/2023 |

    İstem Model yanıtı

    Aşağıdaki tüm özelliklerin listesini sağlayın:

    JSON biçiminde malzemeler, yemek türü, vejetaryen olup olmadığı

    ```json```

    {

    "ingredients": [

    "rice",

    "shrimp",

    "clams",

    "mussels",

    "peas",

    "tomatoes",

    "onions",

    "garlic",

    "olive oil",

    "paprika",

    "salt",

    "pepper"

    ],

    "type of cuisine": "Spanish",

    "vegetarian": false

    Tek resimli istemler için resminizi öne çıkarın

    Gemini, bir istemdeki resim ve metni herhangi bir sırada yorumlayabilir. Ancak metin isteminden önce tek bir resim yerleştirmek daha iyi sonuçlara yol açabilir. Aşağıdaki örneklerde, her istemde metinden önce resmin geldiğini fark edeceksiniz.

    Çoklu formatlı isteminizle ilgili sorunları giderme

    Yararlı bir yanıt alamıyorsanız isteminizle ilgili sorunları gidermeniz gerekebilir. Deneyebileceğiniz birkaç stratejiyi aşağıda bulabilirsiniz.

    Model, resmin ilgili kısmından bilgi almıyorsa

    Daha ayrıntılı bir yanıt almak için istemin yanıtını belirlerken görüntünün hangi özelliklerinden bilgi almasını istediğinizi belirtebilirsiniz.

    İstem Model yanıtı

    Bu bez bir bebek için kaç gün dayanır?

    Bezler 198 gün boyunca yeter.

    Güncellenen istem İyileştirilmiş yanıt

    Bu bezlerden ne kadar süre boyunca kullanabilirim?

    Çocuğun yaşını belirlemek için kutuda gösterilen ağırlığı ve kutudaki toplam bebek bezi sayısını kullanın.

    Toplam sayıyı çocuğun günde kaç bez kullandığına bölün.

    Kutuda 198 bebek bezi var. Kutuda, bebek bezinin 10-17 kg ağırlığındaki çocuklar için olduğu belirtiliyor.

    Bu ağırlık aralığındaki ortalama çocuk muhtemelen 1-2 yaşlarındadır.

    2 yaşındaki bir çocuk genellikle günde 6 bez kullanır. Bu nedenle, bez yaklaşık 33 gün (198/6) sürer.

    Model çıkışı çok genelse ve resim girişine yeterince uygun değilse

    Modelin yanıtını resimlere göre uyarlamasına yardımcı olmak için mantık yürütme görevini gerçekleştirmeden önce resimleri açıklamasını isteyin.

    İstem Model yanıtı

    Bu resimlerin ortak noktası nedir?

    Dört resim de manzara fotoğrafı örneğidir.

    Güncellenen istem İyileştirilmiş yanıt

    Öncelikle her bir resimde ne olduğunu ayrıntılı bir şekilde açıklayın. Bu resimler arasında ne gibi benzerlikler var?

    İlk resimde, bavulunu toplayan bir kişi gösterilmektedir. İkinci resimde, bir alışveriş merkezindeki boş bir koridor gösterilmektedir. Üçüncü resimde bir rulo tuvalet kağıdı gösterilmektedir. Dördüncü resimde karanlık ve fırtınalı bir deniz gösteriliyor.

    Bu resimlerin ortak noktası, hepsinin geçiş alanlarına örnek olmasıdır. Liminal alanlar, iki yer veya durum arasında kalan yerler ya da durumlara verilen addır. Bu tür içerikler genellikle belirsizlik veya muğlaklık hissiyle karakterize edilir.

    İlk resimde, kişinin evde ve seyahatte olduğu gösteriliyor. İkinci resimde, iki mağaza arasındaki koridor gösterilmektedir. Üçüncü resimde, banyoyu temsil edebilecek bir tuvalet kağıdı var. Banyolar, özel ve kamusal alanlar arasında geçiş alanıdır. Dış dünyaya girmeye veya dış dünyadan çıkmaya hazırlandığımız bir yerdir.

    Dördüncü resimde, denizin sakin ve fırtınalı olduğu durumlar gösterilmektedir.

    Liminal alanlar hem heyecan verici hem de rahatsız edici olabilir. Yeni başlangıçların veya sonların yeri olabilir. Bu yerler, düşünmek veya harekete geçmek için ideal olabilir.

    Modelden, resimdeki öğeleri referans olarak kullanmasını açıkça istemeyi de deneyebilirsiniz.

    Güncellenen istem İyileştirilmiş yanıt

    Bu resimlerin ortak noktası nedir? Yanıtınızda resimlerde görünen öğelere referans verin.

    Resimlerin tümü seyahatle ilgilidir. İlk resimde bavulunu toplayan bir kişi, ikinci resimde bir alışveriş merkezindeki boş bir koridor, üçüncü resimde bir tomar tuvalet kağıdı ve dördüncü resimde karanlık ve fırtınalı bir deniz gösterilmektedir.

    Bu görsellerin tümü seyahatle ilgilidir çünkü kullanıcıların seyahat ederken ihtiyaç duyduğu veya kullandığı şeylerdir. İlk resimde, seyahate çıkan bir kişinin bavulunu topladığı görülüyor. İkinci resimde, insanların genellikle seyahatleri için alışveriş yaptıkları bir alışveriş merkezindeki boş bir koridor gösteriliyor. Üçüncü resimde, insanların seyahat ederken sıklıkla kullandığı bir ürün olan bir tomar tuvalet kağıdı gösterilmektedir. Dördüncü resimde, seyahat edenlerin sıklıkla karşılaştığı karanlık ve fırtınalı bir deniz gösteriliyor.

    Resimlerden oluşturulan reklam öğeleri için de aynı ipuçları geçerlidir. Aşağıdaki tavşan örneğinde, modelden resme ait unsurları dahil etmesini açıkça istemek çıktıyı iyileştirebilir.

    İstem Model yanıtı

    Bana bu resimle ilgili bir şiir yazabilir misin?

    Küçük tavşan, çok yumuşak ve kahverengi,
    Tarlada yukarı ve aşağı zıplıyor.
    Kulakları uzun, kuyruğu kısa,
    En sevimli yaratıksın.

    Yeşil ve tatlı otları kemirirsin,
    Beni görünce de zıplayarak uzaklaşırsın.
    Ama her zaman senin arkadaşın olacağım,
    Küçük tavşan, sonuna kadar.

    Güncellenen istem İyileştirilmiş yanıt

    Bana bu resimle ilgili açıklayıcı ve dramatik bir şiir yazabilir ve konumu ekleyebilir misiniz?

    Yeşil çimenlikteki küçük tavşan,
    Kulakları uzun ve çok hassas.
    Ne görüyorsun orada,
    Uzakta, baktığın yerde?

    Is it the ocean blue,
    Sparkling in the sun's hue?
    Yoksa dalgaların gürleyerek çarpması,
    Sevdiğiniz bir ritim?

    Küçük tavşan, doğruyu söyle,
    Ne seni bu kadar ilgilendiriyor?
    Tuzlu esinti mi,
    Yoksa martı sesleri mi sizi memnun ediyor?

    Belki de her şeyin büyüklüğündendir,
    Hem büyük hem de küçük bir dünya.
    Hayallerin uçuştuğu,
    Maceraların filizlendiği bir yer.

    Küçük tavşan, ne hayal ediyorsun acaba?
    Çimenlerin üzerinde sakince oturuyorsun.
    Derinlikleri keşfetmek mi istiyorsunuz?
    Yoksa sıçrayabildiğiniz karada mı kalmak istiyorsunuz?

    Ne olursa olsun küçük tavşan,
    Merak ateşini söndürme.
    Hayalleriniz ve umutlarınızda,
    Yaratmanızı bekleyen bir dünya vardır.

    İstemdeki hangi kısmın başarısız olduğuyla ilgili sorunları giderme

    Bir istemin başarısız olmasının nedeni modelin başta resmi anlamaması mı yoksa resmi anlamış olmasına rağmen doğru mantık adımlarını uygulamaması mı olduğunu anlamak zor olabilir. Bu nedenler arasından hangisinin geçerli olduğunu öğrenmek için modelden resimdeki öğeleri açıklamasını isteyin.

    Aşağıdaki örnekte model, çayla birlikte tüketildiğinde şaşırtıcı görünen bir atıştırmayla (ör. patlamış mısır) yanıt verirse modelin, resmin çay içerdiğini doğru şekilde algılayıp algılamadığını belirlemek için önce sorun giderme adımlarını uygulayabilirsiniz.

    İstem Sorun giderme istemi

    1 dakikada hazırlayabileceğim ve bu yemeğin yanına yakışacak bir atıştırmalık nedir?

    Bu resimde ne olduğunu açıklayın.

    Diğer bir strateji de modelden gerekçesini açıklamasını istemektir. Bu, mantığın hangi kısmında (varsa) sorun olduğunu belirlemenize yardımcı olabilir.

    İstem Sorun giderme istemi

    1 dakikada hazırlayabileceğim ve bu yemeğin yanına yakışacak bir atıştırmalık nedir?

    1 dakikada hazırlayabileceğim ve bu yemeğin yanına yakışacak bir atıştırmalık nedir? Lütfen nedeniyle birlikte açıklayın.

    Sırada ne var?

    • Google AI Studio'yu kullanarak kendi çoklu formatlı istemlerinizi yazmayı deneyin.
    • Medya dosyalarını yüklemek ve istemlerinize dahil etmek için Gemini Files API'yi kullanma hakkında bilgi edinmek üzere Görsel, Ses ve Belge işleme kılavuzlarına bakın.
    • Sana Özel stratejileri tasarlama hakkında daha fazla bilgi için İstem stratejileri sayfasına bakın.