API Files

Gemini può gestire contemporaneamente vari tipi di dati di input, tra cui testo, immagini e audio.

Questa guida mostra come utilizzare i file multimediali con l'API Files. Le operazioni di base sono le stesse per file audio, immagini, video, documenti e altri tipi di file supportati.

Per indicazioni sui prompt dei file, consulta la sezione Guida ai prompt dei file.

Carica un file

Puoi utilizzare l'API Files per caricare un file multimediale. Utilizza sempre l'API Files quando le dimensioni totali della richiesta (inclusi i file, il prompt testuale, le istruzioni di sistema e così via) sono superiori a 100 MB. Per i file PDF, il limite è 50 MB.

Il seguente codice carica un file e poi lo utilizza in una chiamata a interactions.create.

Python

from google import genai

client = genai.Client()

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

interaction = client.interactions.create(
    model="gemini-3.8-flash",
    input=[
        {"type": "text", "text": "Describe this audio clip"},
        {"type": "audio", "uri": myfile.uri, "mime_type": myfile.mime_type}
    ]
)

print(interaction.output_text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({});

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

  const interaction = await client.interactions.create({
    model: "gemini-3.8-flash",
    input: [
      { type: "text", text: "Describe this audio clip" },
      { type: "audio", uri: myfile.uri, mime_type: myfile.mimeType }
    ]
  });
  console.log(interaction.output_text);
}

await main();

Java

import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.AudioContent;
import com.google.genai.gaos.models.interactions.AudioContentMimeType;
import com.google.genai.gaos.models.interactions.Content;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.Interaction;
import com.google.genai.gaos.models.interactions.InteractionsInput;
import com.google.genai.gaos.models.interactions.Model;
import com.google.genai.gaos.models.interactions.TextContent;
import com.google.genai.gaos.models.operations.CreateInteractionRequestBody;
import com.google.genai.types.File;
import com.google.genai.types.UploadFileConfig;
import java.util.Arrays;
import java.util.List;

Client client = new Client();

File myFile =
    client.files.upload(
        new java.io.File("path/to/sample.mp3"),
        UploadFileConfig.builder().mimeType("audio/mp3").build());

Content textContent = TextContent.builder().text("Describe this audio clip").build();
Content audioContent =
    AudioContent.builder()
        .uri(myFile.uri().orElse(""))
        .mimeType(AudioContentMimeType.of(myFile.mimeType().orElse("audio/mp3")))
        .build();

List<Content> contents = Arrays.asList(textContent, audioContent);

CreateModelInteraction params =
    CreateModelInteraction.builder()
        .model(Model.of("gemini-3.8-flash"))
        .input(InteractionsInput.ofContent(contents))
        .build();

Interaction interaction =
    client.interactions.create(CreateInteractionRequestBody.of(params)).interaction().get();

System.out.println(interaction.outputText().orElse(""));

Go

package main

import (
    "context"
    "fmt"
    "log"

    "google.golang.org/genai"
    "google.golang.org/genai/interactions/models/interactions"
    "google.golang.org/genai/interactions/models/operations"
)

func main() {
    ctx := context.Background()
    client, err := genai.NewClient(ctx, nil)
    if err != nil {
        log.Fatal(err)
    }

    myFile, err := client.Files.UploadFromPath(ctx, "path/to/sample.mp3", &genai.UploadFileConfig{
        MIMEType: "audio/mp3",
    })
    if err != nil {
        log.Fatal(err)
    }

    res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
        Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
            Model: interactions.Model("gemini-3.8-flash"),
            Input: interactions.NewInteractionsInput([]interactions.Content{
                interactions.NewContent(interactions.TextContent{
                    Text: "Describe this audio clip",
                }),
                interactions.NewContent(interactions.AudioContent{
                    URI:      genai.Ptr(myFile.URI),
                    MimeType: interactions.AudioContentMimeType(myFile.MIMEType).ToPointer(),
                }),
            }),
        }),
    })
    if err != nil {
        log.Fatal(err)
    }
    if res.Interaction.OutputText != nil {
        fmt.Println(*res.Interaction.OutputText)
    }
}

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" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -D "${tmp_header_file}" \
  -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 create an interaction using the Interactions API
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
    -H "x-goog-api-key: $GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -d '{
      "model": "gemini-3.8-flash",
      "input": [
        {"type": "text", "text": "Describe this audio clip"},
        {"type": "audio", "uri": '$file_uri', "mime_type": "'${MIME_TYPE}'"}
      ]
    }' 2> /dev/null > response.json

cat response.json
echo

jq ".outputs[] | select(.type == \"text\") | .text" response.json

Ottieni i metadati di un file

Puoi verificare che l'API abbia archiviato correttamente il file caricato e recuperare i relativi metadati chiamando files.get.

Python

from google import genai

client = genai.Client()

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

JavaScript

import {
  GoogleGenAI,
} from "@google/genai";

const client = new GoogleGenAI({});

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

  const fileName = myfile.name;
  const fetchedFile = await client.files.get({ name: fileName });
  console.log(fetchedFile);
}

await main();

Java

import com.google.genai.Client;
import com.google.genai.types.File;
import com.google.genai.types.UploadFileConfig;

Client client = new Client();

File myFile =
    client.files.upload(
        new java.io.File("path/to/sample.mp3"),
        UploadFileConfig.builder().mimeType("audio/mp3").build());

String fileName = myFile.name().orElse("");
File fileMetadata = client.files.get(fileName, null);
System.out.println(fileMetadata);

Go

package main

import (
    "context"
    "fmt"
    "log"

    "google.golang.org/genai"
)

func main() {
    ctx := context.Background()
    client, err := genai.NewClient(ctx, nil)
    if err != nil {
        log.Fatal(err)
    }

    myFile, err := client.Files.UploadFromPath(ctx, "path/to/sample.mp3", &genai.UploadFileConfig{
        MIMEType: "audio/mp3",
    })
    if err != nil {
        log.Fatal(err)
    }

    fileMetadata, err := client.Files.Get(ctx, myFile.Name, nil)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(fileMetadata)
}

REST

# file_info.json was created in the upload example
name=$(jq -r ".file.name" file_info.json)
# Get the file of interest to check state
curl https://generativelanguage.googleapis.com/v1beta/$name \
-H "x-goog-api-key: $GEMINI_API_KEY" > file_info.json
# Print some information about the file you got
name=$(jq -r ".name" file_info.json)
echo name=$name
file_uri=$(jq -r ".uri" file_info.json)
echo file_uri=$file_uri

Elenca i file caricati

Il seguente codice recupera un elenco di tutti i file caricati:

Python

from google import genai

client = genai.Client()

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

JavaScript

import {
  GoogleGenAI,
} from "@google/genai";

const client = new GoogleGenAI({});

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

await main();

Java

import com.google.genai.Client;
import com.google.genai.types.File;

Client client = new Client();

System.out.println("My files:");
for (File f : client.files.list(null)) {
  System.out.println("  " + f.name().orElse(""));
}

Go

package main

import (
    "context"
    "fmt"
    "log"

    "google.golang.org/genai"
)

func main() {
    ctx := context.Background()
    client, err := genai.NewClient(ctx, nil)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println("My files:")
    for f, err := range client.Files.All(ctx) {
        if err != nil {
            log.Fatal(err)
        }
        fmt.Println(" ", f.Name)
    }
}

REST

echo "My files: "

curl "https://generativelanguage.googleapis.com/v1beta/files" \
  -H "x-goog-api-key: $GEMINI_API_KEY"

Elimina i file caricati

I file vengono eliminati automaticamente dopo 48 ore. Puoi anche eliminare manualmente un file caricato:

Python

from google import genai

client = genai.Client()

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

JavaScript

import {
  GoogleGenAI,
} from "@google/genai";

const client = new GoogleGenAI({});

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

  const fileName = myfile.name;
  await client.files.delete({ name: fileName });
}

await main();

Java

import com.google.genai.Client;
import com.google.genai.types.File;
import com.google.genai.types.UploadFileConfig;

Client client = new Client();

File myFile =
    client.files.upload(
        new java.io.File("path/to/sample.mp3"),
        UploadFileConfig.builder().mimeType("audio/mp3").build());

client.files.delete(myFile.name().orElse(""), null);

Go

package main

import (
    "context"
    "log"

    "google.golang.org/genai"
)

func main() {
    ctx := context.Background()
    client, err := genai.NewClient(ctx, nil)
    if err != nil {
        log.Fatal(err)
    }

    myFile, err := client.Files.UploadFromPath(ctx, "path/to/sample.mp3", &genai.UploadFileConfig{
        MIMEType: "audio/mp3",
    })
    if err != nil {
        log.Fatal(err)
    }

    if _, err := client.Files.Delete(ctx, myFile.Name, nil); err != nil {
        log.Fatal(err)
    }
}

REST

curl --request "DELETE" https://generativelanguage.googleapis.com/v1beta/$name \
  -H "x-goog-api-key: $GEMINI_API_KEY"

Informazioni sull'utilizzo

Puoi utilizzare l'API Files per caricare e interagire con i file multimediali. L'API Files ti consente di archiviare fino a 20 GB di file per progetto, con una dimensione massima di 2 GB per file. I file vengono archiviati per 48 ore.

Durante questo periodo, puoi utilizzare l'API per ottenere i metadati relativi ai file. Tuttavia, non puoi scaricare i file caricati dagli utenti. Puoi scaricare i file generati dai modelli, ad esempio i video, utilizzando il metodo files.download. L'API Files è disponibile senza costi in tutte le regioni in cui è disponibile l'API Gemini.

Strategie di prompt dei file

Questa sezione fornisce indicazioni e best practice per l'utilizzo di file multimediali con i prompt per l'API Gemini.

La possibilità di utilizzare vari tipi di dati nei prompt ti offre una maggiore flessibilità in termini di attività che puoi affrontare con l'API Gemini. Ad esempio, puoi inviare al modello la foto di un pasto delizioso e chiedergli di scrivere un breve blog sul pasto.

Prompt Risposta

Scrivi un breve blog post coinvolgente basato su questa immagine. Deve includere una descrizione del pasto nella foto e parlare del mio percorso di preparazione dei pasti.


Cookie

La preparazione dei pasti è un ottimo modo per risparmiare tempo e denaro e può anche aiutarti a mangiare in modo più sano. Questo pasto è un ottimo esempio di pasto sano e delizioso che può essere preparato in anticipo.

Questo pasto include riso integrale, verdure arrosto e pollo teriyaki. Il riso integrale è un carboidrato sano e complesso che ti darà energia prolungata. Le verdure arrosto sono un ottimo modo per assumere la dose giornaliera di vitamine e minerali, mentre il pollo teriyaki è un'opzione deliziosa e ricca di proteine.

Questo pasto è anche semplice da preparare. Basta cuocere il riso integrale, arrostire le verdure e cuocere il pollo teriyaki. Una volta cotto tutto, dividi il cibo in contenitori per la preparazione dei pasti e conservali in frigorifero. Poi, nelle mattine più impegnative, ti basterà prendere un contenitore e uscire.

Se stai cercando un pasto sano e delizioso che possa essere preparato in anticipo, questo pasto è un'ottima opzione. È ricco di sostanze nutritive e sapore e ti farà sentire sicuramente sazio e soddisfatto.

Brindiamo alla preparazione di pasti sani e deliziosi.

Se hai difficoltà a ottenere l'output che vuoi dai prompt che utilizzano file multimediali, esistono alcune strategie che possono aiutarti a ottenere i risultati che vuoi. Le sezioni seguenti forniscono approcci di progettazione e suggerimenti per la risoluzione dei problemi per migliorare i prompt che utilizzano l'input multimodale.

Puoi migliorare i prompt multimodali seguendo queste best practice:

  • Nozioni di base sulla progettazione dei prompt

    • Fornisci istruzioni specifiche: crea istruzioni chiare e concise che lascino poco spazio a interpretazioni errate.
    • Aggiungi alcuni esempi al prompt: utilizza esempi realistici di few-shot per illustrare ciò che vuoi ottenere.
    • Suddividi il problema in passaggi: dividi le attività complesse in obiettivi secondari gestibili, guidando il modello attraverso il processo.
    • Specifica il formato di output: nel prompt, chiedi che l'output sia nel formato che preferisci, ad esempio Markdown, JSON, HTML e altri.
    • Metti l'immagine all'inizio per i prompt con una singola immagine: sebbene Gemini possa gestire input di immagini e testo in qualsiasi ordine, per i prompt contenenti una singola immagine, potrebbe funzionare meglio se l'immagine (o il video) viene posizionata prima del prompt testuale. Tuttavia, per i prompt che richiedono che le immagini siano altamente intercalate con i testi per avere senso, utilizza l'ordine più naturale.
  • Risoluzione dei problemi relativi al prompt multimodale

    • Se il modello non trae informazioni dalla parte pertinente dell'immagine: fornisci suggerimenti sugli aspetti dell'immagine da cui vuoi che il prompt tragga informazioni.
    • Se l'output del modello è troppo generico (non abbastanza personalizzato in base all'input di immagini/video): all'inizio del prompt, prova a chiedere al modello di descrivere le immagini o il video prima di fornire l'istruzione dell'attività oppure prova a chiedere al modello di fare riferimento a ciò che è presente nell'immagine.
    • Per risolvere i problemi relativi alla parte che non ha funzionato: chiedi al modello di descrivere l'immagine o di spiegare il suo ragionamento per valutare la comprensione iniziale del modello.
    • Se il prompt genera contenuti con allucinazioni: prova a ridurre l'impostazione della temperatura o a chiedere al modello descrizioni più brevi, in modo che sia meno probabile che estrapoli dettagli aggiuntivi.
    • Ottimizzazione dei parametri di campionamento: sperimenta diverse impostazioni di temperatura e selezioni top-k per regolare la creatività del modello.

Fornisci istruzioni specifiche

I prompt hanno più successo quando sono chiari e dettagliati. Se hai in mente un output specifico, è meglio includere questo requisito nel prompt per assicurarti di ottenere l'output che desideri.

Per questa immagine di un tabellone aeroportuale, chiedere al modello di "descrivere questa immagine" potrebbe generare una descrizione generica. Se hai bisogno che il modello analizzi l'ora e la città dall'immagine, puoi includere questa richiesta direttamente nel prompt.

Prompt Risposta del modello

Descrivi questa immagine.

L'immagine mostra un tabellone di arrivi e partenze di un aeroporto.

Prompt aggiornato Risposta migliorata
Orario di viaggio

Analizza l'ora e la città dal tabellone dell'aeroporto mostrato in questa immagine e inseriscile in un elenco.

  • 10:50 Mosca
  • 11:05 Edimburgo
  • 11:05 Londra
  • 11:10 Bucarest
  • 11:30 Kiev
  • 11:35 Dublino
  • 11:45 East Midlands
  • 12:15 Sofia
  • 12:30 Londra
  • 12:30 Newcastle
  • 12:40 San Pietroburgo
  • 12:40 Londra
  • 12:45 Manchester
  • Aggiungi alcuni esempi

    Il modello Gemini può accettare più input che può utilizzare come esempi per comprendere l'output che vuoi. L'aggiunta di questi esempi può aiutare il modello a identificare i pattern e ad applicare la relazione tra le immagini e le risposte fornite al nuovo esempio. Questo è anche chiamato apprendimento "few-shot".

    Nell'esempio seguente, l'output iniziale è scritto sotto forma di frase e contiene anche il paese (Brasile). Supponiamo che tu voglia l'output in un formato o uno stile diverso e che tu voglia solo la città, non il paese. L'aggiunta di esempi few-shot al prompt può indirizzare il modello a rispondere nel modo che preferisci.

    Prompt Risposta del modello
    Orario di viaggio

    Determina la città insieme al punto di riferimento.

    Il punto di riferimento è la statua del Cristo Redentore a Rio de Janeiro, in Brasile.

    Prompt aggiornato Risposta migliorata

    Determina la città insieme al punto di riferimento.

    colosseo

    città: Roma, punto di riferimento: il Colosseo.

    Città proibita

    city: Beijing, landmark: Forbidden City

    forbidden-city

    città: Rio de Janeiro, punto di riferimento: statua del Cristo Redentore

    Analizza passo passo

    Per attività complesse come quelle che richiedono sia la comprensione visiva che il ragionamento, può essere utile suddividere l'attività in passaggi più piccoli e semplici. In alternativa, potrebbe essere efficace anche chiedere direttamente al modello di "pensare passo dopo passo" nel prompt.

    Prompt Risposta del modello

    Quando finirò la carta igienica?

    Presto ti rimarranno solo 3 tiri.

    Prompt aggiornato Risposta migliorata
    1. Innanzitutto, conta quanti rotoli di carta igienica ci sono in questa immagine.
    2. Poi, determina la quantità di carta igienica che una persona tipica utilizza al giorno.
    3. Calcola quanto dureranno questi rotoli di carta igienica.
    1. In questa immagine sono presenti 3 rotoli di carta igienica.
    2. Una persona media utilizza circa 20 fogli di carta igienica al giorno.
    3. Se ogni rotolo contiene 200 fogli, ogni rotolo durerà circa 10 giorni. Pertanto, i 3 rotoli dureranno circa un mese.

    I problemi di matematica o altri tipi di problemi con enunciato sono ottimi candidati per chiedere al modello di pensare passo dopo passo.

    Prompt Risposta

    Qual è il quarto termine della sequenza?

    -135

    La risposta del modello non è corretta. Alcuni modi per migliorare questo aspetto consistono nel chiedere al modello di analizzare il problema prima di rispondere al prompt.

    Prompt Risposta

    Analizza prima la formula nell'immagine.

    Poi, in base alla formula, rispondi alla domanda "Qual è il quarto termine della sequenza?".

    Fai clic per espandere il risultato

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

    $$ b(1) = 15 $$

    1. Sostituisci n = 4 nella formula:

      $$ b(4) = b(4-1) * (-3) $$

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

    2. Non conosciamo il valore di b(3), quindi sostituiamo n = 3 nella formula:

      $$ b(3) = b(3-1) * (-3) $$

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

    3. Non conosciamo il valore di b(2), quindi sostituiamo n = 2 nella formula:

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

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

    4. Sappiamo che il valore di b(1) è 15, quindi sostituiscilo nella formula:

      $$ b(2) = 15 * (-3) $$

      $$ b(2) = -45 $$

    5. Ora che conosciamo il valore di b(2), sostituiscilo nella formula per b(3):

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

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

      $$ b(3) = 135 $$

    6. Ora che conosciamo il valore di b(3), sostituiscilo nella formula per b(4):

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

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

      $$ b(4) = -405 $$

    Pertanto, il quarto termine della sequenza è -405.

    La risposta del modello è corretta. Ora, per renderla ancora più semplificata, puoi chiedere al modello di pensare passo dopo passo.

    Prompt aggiornato Risposta migliorata

    Qual è il quarto termine della sequenza? Pensa passo dopo passo.

    Il primo termine è 15.

    Il secondo termine è b(1) * (-3) = 15 * (-3) = -45.

    Il terzo termine è b(2) * (-3) = -45 * (-3) = 135.

    Il quarto termine è b(3) * (-3) = 135 * (-3) = -405.

    Specifica il formato di output

    Un problema comune è la necessità che l'output del modello sia in un determinato formato (ad es. Markdown, JSON, HTML), soprattutto se l'output del modello deve essere importato da un'attività downstream. Puoi provare a generare l'output in questo formato indicando al modello di farlo all'interno del prompt. Ecco due esempi:

    Prompt Risposta del modello

    Analizza la tabella in questa immagine in formato Markdown

    ```none | Subject | Status | Time | Start date | Due on | | ------- | ------ | ---- | ---------- | ------ | | Math | Done | 1.5 hrs | 11/29/2023 | 12/1/2023 | | Geography | Done | 30 min | 12/2/2023 | 12/4/2023 | | Physics | In progress | 2 hrs | 12/3/2023 | 12/5/2023 | | Biology | Not started | 6 hrs | 11/2/2016 | 12/6/2023 | ```
    Prompt Risposta del modello

    Fornisci un elenco di tutti i seguenti attributi:

    ingredienti, tipo di cucina, vegetariano o meno, in formato JSON

    ```json { "ingredients": [ "rice", "shrimp", "clams", "mussels", "peas", "tomatoes", "onions", "garlic", "olive oil", "paprika", "salt", "pepper" ], "type of cuisine": "Spanish", "vegetarian": false } ```

    Metti l'immagine all'inizio per i prompt con una sola immagine

    Sebbene Gemini possa interpretare immagini e testo in qualsiasi ordine all'interno di un prompt, posizionare una singola immagine prima del prompt testuale potrebbe portare a risultati migliori. Negli esempi seguenti, noterai che l'immagine precede il testo in ogni prompt.

    Risoluzione dei problemi relativi al prompt multimodale

    Se non ricevi una risposta utile, potresti dover risolvere i problemi relativi al prompt. Ecco alcune strategie che potresti provare.

    Se il modello non trae informazioni dalla parte pertinente dell'immagine

    Per ottenere una risposta più specifica, puoi indicare quali aspetti dell'immagine vuoi che il prompt utilizzi per generare la risposta.

    Prompt Risposta del modello

    Quanti giorni dureranno questi pannolini per un bambino?

    I pannolini dureranno 198 giorni prima di esaurirsi.

    Prompt aggiornato Risposta migliorata

    Quanto dureranno questi pannolini prima che finiscano?

    Utilizza il peso indicato sulla confezione per determinare l'età del bambino e utilizza il numero totale di pannolini nella confezione.

    Dividi il numero totale per il numero di pannolini che il bambino consuma al giorno.

    La confezione contiene 198 pannolini. Sulla confezione è indicato che i pannolini sono per un bambino di peso compreso tra 10 e 17 kg.

    In media, un bambino in questa fascia di peso ha un'età compresa tra 1 e 2 anni.

    Un bambino di 2 anni consuma in genere 6 pannolini al giorno, quindi i pannolini dureranno circa 33 giorni (198/6).

    Se l'output del modello è troppo generico e non è abbastanza personalizzato in base all'input dell'immagine

    Per aiutare il modello a personalizzare la risposta in base alle immagini, prova a chiedergli di descrivere le immagini prima di eseguire l'attività di ragionamento.

    Prompt Risposta del modello

    What is in common between these images?

    Tutte e quattro le immagini sono esempi di fotografia di paesaggi.

    Prompt aggiornato Risposta migliorata

    Innanzitutto, descrivi in dettaglio i contenuti di ogni immagine. Cosa hanno in comune queste immagini?

    La prima immagine mostra una persona che prepara una valigia. La seconda immagine mostra un corridoio vuoto in un centro commerciale. La terza immagine mostra un rotolo di carta igienica. La quarta immagine mostra un mare scuro e in tempesta.

    La caratteristica comune di queste immagini è che sono tutti esempi di spazi liminali. Gli spazi liminali sono luoghi o situazioni che si trovano tra altri due luoghi o situazioni. Spesso sono caratterizzati da un senso di incertezza o ambiguità.

    La prima immagine mostra la persona tra casa e un viaggio. La seconda immagine mostra il corridoio tra due negozi. La terza immagine è di carta igienica, che può rappresentare un bagno. Il bagno è uno spazio di transizione tra la sfera privata e quella pubblica. È un luogo in cui ci prepariamo a entrare o uscire dal mondo esterno.

    La quarta immagine mostra il mare in una condizione intermedia tra calmo e in tempesta.

    Gli spazi liminali possono essere sia entusiasmanti che inquietanti. Possono essere un luogo di nuovi inizi o di conclusioni. Possono essere un luogo di riflessione o un luogo di azione.

    Puoi anche provare a chiedere esplicitamente al modello di fare riferimento ai contenuti dell'immagine.

    Prompt aggiornato Risposta migliorata

    What is in common between these images? Fai riferimento ai contenuti delle immagini nella tua risposta.

    Tutte le immagini sono correlate ai viaggi. La prima immagine mostra una persona che prepara una valigia, la seconda mostra un corridoio vuoto in un centro commerciale, la terza mostra una pila di carta igienica e la quarta mostra un mare scuro e in tempesta.

    Queste immagini sono tutte correlate ai viaggi perché rappresentano tutte cose di cui le persone hanno bisogno o che utilizzano quando viaggiano. La prima immagine mostra una persona che prepara una valigia, un'azione che le persone compiono quando stanno per partire per un viaggio. La seconda immagine mostra un corridoio vuoto in un centro commerciale, un luogo in cui le persone si recano spesso per acquistare articoli per i loro viaggi. La terza immagine mostra una pila di carta igienica, un oggetto che le persone usano spesso quando viaggiano. La quarta immagine mostra un mare scuro e in tempesta, che è qualcosa che le persone incontrano spesso quando viaggiano.

    Gli stessi suggerimenti valgono per l'output creativo delle immagini. Nel seguente esempio con il coniglio, chiedere esplicitamente al modello di includere aspetti dell'immagine può migliorare l'output.

    Prompt Risposta del modello

    Puoi scrivermi una poesia su questa immagine?

    Piccolo coniglietto, così morbido e marrone,
    Saltella nel campo, su e giù.
    Orecchie lunghe, coda piccola,
    sei la creatura più carina di tutte.

    Mangi l'erba, così verde e dolce,
    E scappi via quando mi vedi.
    Ma sarò sempre tuo amico,
    coniglietto, fino alla fine.

    Prompt aggiornato Risposta migliorata

    Puoi scrivermi una poesia descrittiva e drammatica su questa immagine e includere la località?

    Coniglietto sul prato,
    Orecchie lunghe, udito affinato.
    Cosa vedi là fuori,
    In lontananza, dove guardi?

    È il blu dell'oceano,
    che brilla alla luce del sole?
    O le onde che si infrangono e ruggiscono,
    Un ritmo che adori?

    Coniglietto, dimmi la verità,
    cosa cattura la tua attenzione?
    È la brezza salata,
    O il grido dei gabbiani che piace?

    Forse è la vastità di tutto questo,
    un mondo così grande e piccolo.
    Un luogo dove i sogni possono vagare,
    E le avventure possono essere seminate.

    Coniglietto, mi chiedo cosa sogni,
    mentre siedi sull'erba, così sereno.
    Vuoi esplorare le profondità del mare
    O restare sulla terraferma per saltare?

    Qualunque cosa sia, coniglietto,
    mantieni viva quella scintilla di meraviglia.
    Perché nei tuoi sogni e nelle tue aspirazioni,
    Si nasconde un mondo che aspetta la tua creazione.

    Risoluzione dei problemi relativi alla parte del prompt che ha generato l'errore

    Può essere difficile capire se un prompt non è riuscito perché il modello non ha compreso l'immagine fin dall'inizio o se ha compreso l'immagine, ma non ha eseguito i passaggi di ragionamento corretti in seguito. Per chiarire questi motivi, chiedi al modello di descrivere i contenuti dell'immagine.

    Nell'esempio seguente, se il modello risponde con uno snack che sembra sorprendente se abbinato al tè (ad es. popcorn), puoi prima risolvere i problemi per determinare se il modello ha riconosciuto correttamente che l'immagine contiene tè.

    Prompt Prompt per la risoluzione dei problemi

    Qual è uno snack che posso preparare in 1 minuto che si abbina bene a questo?

    Descrivi i contenuti di questa immagine.

    Un'altra strategia consiste nel chiedere al modello di spiegare il suo ragionamento. In questo modo puoi restringere il campo per capire quale parte del ragionamento non ha funzionato, se presente.

    Prompt Prompt per la risoluzione dei problemi

    Qual è uno snack che posso preparare in 1 minuto che si abbina bene a questo?

    Qual è uno snack che posso preparare in 1 minuto che si abbina bene a questo? Spiega perché.

    Passaggi successivi

    • Prova a scrivere i tuoi prompt multimodali utilizzando Google AI Studio.
    • Per informazioni sull'utilizzo dell'API Gemini Files per caricare file multimediali e includerli nei prompt, consulta le guide Vision, Audio ed Elaborazione dei documenti.
    • Per ulteriori indicazioni sulla progettazione dei prompt, ad esempio sull'ottimizzazione dei parametri di campionamento, consulta la pagina Strategie per i prompt.