Gemini può gestire contemporaneamente vari tipi di dati di input, tra cui testo, immagini e audio.
Questa guida mostra come lavorare con i file multimediali utilizzando 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 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 svolgere con l'API Gemini. Ad esempio, puoi inviare al modello la foto di un pasto delizioso e chiedergli di scrivere un breve post del 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.
|
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. Cuoci il riso integrale, arrostisci le verdure e prepara il pollo teriyaki. Una volta cotto tutto, dividi il cibo in contenitori per la preparazione dei pasti e conservali in frigorifero. Così, nelle mattine più frenetiche, potrai prendere un contenitore e andare. Se stai cercando un pasto sano e delizioso che puoi preparare in anticipo, questa è un'ottima opzione. È ricco di sostanze nutritive e sapore e ti farà sentire sazio e soddisfatto. Brindiamo alla preparazione di pasti sani e deliziosi. |
Se hai difficoltà a ottenere l'output che desideri dai prompt che utilizzano file multimediali, esistono alcune strategie che possono aiutarti a ottenere i risultati che desideri. Le sezioni seguenti forniscono approcci di progettazione e suggerimenti per la risoluzione dei problemi per migliorare i prompt che utilizzano input multimodali.
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 le attività 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 un senso, utilizza l'ordine più naturale.
-
Risoluzione dei problemi relativi ai prompt multimodali
- Se il modello non estrae informazioni dalla parte pertinente dell'immagine:fornisci suggerimenti sugli aspetti dell'immagine da cui vuoi che il prompt estragga informazioni.
- Se l'output del modello è troppo generico (non abbastanza personalizzato per l'input di immagine/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 di allucinazione:prova a ridurre l'impostazione della temperatura o a chiedere al modello descrizioni più brevi, in modo che sia meno probabile che estrapoli ulteriori dettagli.
- 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 degli arrivi e delle partenze di un aeroporto. |
| Prompt aggiornato | Risposta migliorata |
|---|---|
![]() Analizza l'ora e la città dal tabellone dell'aeroporto mostrato in questa immagine e inseriscile in un elenco. |
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 applicare la relazione tra le immagini e le risposte fornite al nuovo esempio. Questa tecnica è anche chiamata 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 |
|---|---|
![]() 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.
|
città: Roma, punto di riferimento: il Colosseo. |
|
city: Beijing, landmark: 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 rotoli. |
| Prompt aggiornato | Risposta migliorata |
|---|---|
|
|
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 $$
Pertanto, il quarto termine della sequenza è -405. |
La risposta del modello è corretta. Per renderla ancora più snella, puoi chiedere al modello di procedere 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 } ``` |
Inserisci prima l'immagine per i prompt con immagine singola
Sebbene Gemini possa interpretare immagini e testo in qualsiasi ordine all'interno di un prompt, inserire 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.
Risolvi i 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 estrae informazioni dalla parte pertinente dell'immagine
Per ottenere una risposta più specifica, puoi indicare gli aspetti dell'immagine da cui vuoi che il prompt estragga le informazioni per elaborare la risposta.
| Prompt | Risposta del modello |
|---|---|
Per 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 usa al giorno. |
La confezione contiene 198 pannolini. La confezione indica che i pannolini sono adatti a un bambino di peso compreso tra 10 e 17 kg. Il bambino medio in questa fascia di peso ha probabilmente un'età compresa tra 1 e 2 anni. Un bambino di 2 anni in genere usa 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 |
|---|---|
Che cosa hanno in comune queste immagini? |
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 tempestoso. Il punto in comune tra queste immagini è che sono tutte esempi di spazi liminali. Gli spazi liminali sono luoghi o situazioni che si trovano tra due altri luoghi o situazioni. Spesso sono caratterizzati da un senso di incertezza o ambiguità. La prima immagine mostra la persona tra la casa e il 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 di azione. |
Puoi anche provare a chiedere esplicitamente al modello di fare riferimento a ciò che è presente nell'immagine.
| Prompt aggiornato | Risposta migliorata |
|---|---|
Cosa hanno in comune queste immagini? Fai riferimento al contenuto delle immagini nella 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é sono tutte cose che le persone hanno bisogno o usano quando viaggiano. La prima immagine mostra una persona che prepara una valigia, un'attività che si svolge prima di un viaggio. La seconda immagine mostra un corridoio vuoto in un centro commerciale, un luogo in cui le persone vanno spesso per comprare cose 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? |
Coniglietto, così morbido e marrone, Mangi l'erba, così verde e dolce, |
| Prompt aggiornato | Risposta migliorata |
|---|---|
Puoi scrivermi una poesia descrittiva e drammatica su questa immagine e includere la località? |
Coniglietto sul prato verde, È il blu dell'oceano, Coniglietto, dimmi la verità, Forse è la vastità di tutto, Coniglietto, mi chiedo cosa sogni, Qualunque cosa sia, coniglietto, |
Risoluzione dei problemi relativi alla parte del prompt che ha generato l'errore
Può essere difficile sapere 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 distinguere tra questi motivi, chiedi al modello di descrivere il contenuto 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 | Richiesta di risoluzione dei problemi |
|---|---|
Qual è uno snack che posso preparare in 1 minuto e 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 e capire quale parte del ragionamento non ha funzionato, se presente.
| Prompt | Richiesta di risoluzione dei problemi |
|---|---|
Qual è uno snack che posso preparare in 1 minuto e che si abbini bene a questo? |
Qual è uno snack che posso preparare in 1 minuto e che si abbini 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 sulla regolazione dei parametri di campionamento, consulta la pagina Strategie per i prompt.
