Quando chiami Gemini API dalla tua app utilizzando un SDK Vertex AI in Firebase, puoi chiedere al modello Gemini di generare del testo in base a un input multimodale. I prompt multimodali possono includere più modalità (o tipi di input), come testo, immagini, PDF, file di testo normale, video e audio.
In ogni richiesta multimodale devi sempre fornire quanto segue:
Il file è
mimeType
. Scopri i tipi MIME supportati di ciascun file di input.Il file. Puoi fornire il file come dati in linea (come mostrato in questa pagina) o utilizzando il relativo URL o URI.
Per testare e eseguire l'iterazione sui prompt multimodali, ti consigliamo di utilizzare Vertex AI Studio.
Altre opzioni per lavorare con Gemini API
Facoltativamente, puoi provare una versione alternativa "Google AI" di Gemini API
per ottenere l'accesso senza costi (entro i limiti e se disponibile) utilizzando Google AI Studio e gli SDK client Google AI. Questi SDK devono essere utilizzati solo per la creazione di prototipi nelle app mobile e web.Dopo aver acquisito familiarità con il funzionamento di un Gemini API, esegui la migrazione ai nostri SDK Vertex AI in Firebase (questa documentazione), che offrono molte funzionalità aggiuntive importanti per le app mobile e web, come la protezione dell'API da usi impropri tramite Firebase App Check e il supporto per file multimediali di grandi dimensioni nelle richieste.
Se vuoi, chiama Vertex AI Gemini API lato server (ad esempio con Python, Node.js o Go)
Utilizza gli SDK Vertex AI lato server, Firebase Genkit o Firebase Extensions per Gemini API.
Prima di iniziare
Se non l'hai ancora fatto, consulta la guida introduttiva agli SDK Vertex AI in Firebase. Assicurati di aver eseguito tutte le seguenti operazioni:
Configura un progetto Firebase nuovo o esistente, ad esempio utilizzando il piano di prezzi Blaze e attivando le API richieste.
Connetti la tua app a Firebase, inclusa la registrazione e l'aggiunta della configurazione Firebase.
Aggiungi l'SDK e inizializza il servizio Vertex AI e il modello generativo nella tua app.
Dopo aver collegato l'app a Firebase, aggiunto l'SDK e inizializzato il servizio Vertex AI e il modello generativo, puoi chiamare Gemini API.
Genera testo da testo e una singola immagine Genera testo da testo e più immagini Genera testo da testo e un video
File multimediali di esempio
Se non hai già file multimediali, puoi utilizzare i seguenti file disponibili pubblicamente. Poiché questi file sono archiviati in bucket che non si trovano nel tuo progetto Firebase, devi utilizzare il formato https://storage.googleapis.com/BUCKET_NAME/PATH/TO/FILE
per l'URL.
Immagine:
https://storage.googleapis.com/cloud-samples-data/generative-ai/image/scones.jpg
con un tipo MIMEimage/jpeg
. Visualizza o scarica questa immagine.PDF:
https://storage.googleapis.com/cloud-samples-data/generative-ai/pdf/2403.05530.pdf
con un tipo MIMEapplication/pdf
. Visualizza o scarica questo PDF.Video:
https://storage.googleapis.com/cloud-samples-data/video/animals.mp4
con un tipo MIMEvideo/mp4
. Visualizza o scarica questo video.Audio:
https://storage.googleapis.com/cloud-samples-data/generative-ai/audio/pixel.mp3
con un tipo MIMEaudio/mp3
. Ascolta o scarica questo audio.
Genera testo da testo e una singola immagine
Prima di provare questo esempio, assicurati di aver completato la sezione Prima di iniziare di questa guida.
Puoi chiamare Gemini API con prompt multimodali che includono sia il testo sia un singolo file (ad esempio un'immagine, come mostrato in questo esempio). Per queste chiamate, devi utilizzare un modello che supporti i contenuti multimediali nei prompt (ad esempio Gemini 2.0 Flash).
Assicurati di rivedere i requisiti e i consigli per i file di input.
Scegli se vuoi riprodurre la risposta in streaming (generateContentStream
) o attendere
la risposta finché non viene generato l'intero risultato (generateContent
).
Puoi ottenere interazioni più rapide non aspettando l'intero risultato della generazione del modello, ma utilizzando lo streaming per gestire i risultati parziali.
Questo esempio mostra come utilizzare
generateContentStream()
per eseguire lo streaming del testo generato da una richiesta di prompt multimodale che include testo
e una singola immagine:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
guard let image = UIImage(systemName: "bicycle") else { fatalError() }
// Provide a text prompt to include with the image
let prompt = "What's in this picture?"
// To stream generated text output, call generateContentStream and pass in the prompt
let contentStream = try model.generateContentStream(image, prompt)
for try await chunk in contentStream {
if let text = chunk.text {
print(text)
}
}
In alternativa, puoi attendere l'intero risultato anziché lo streaming. Il risultato viene restituito solo dopo che il modello ha completato l'intero processo di generazione.
Questo esempio mostra come utilizzare
generateContent()
per generare testo da una richiesta di prompt multimodale che include testo e una singola immagine:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
guard let image = UIImage(systemName: "bicycle") else { fatalError() }
// Provide a text prompt to include with the image
let prompt = "What's in this picture?"
// To generate text output, call generateContent and pass in the prompt
let response = try await model.generateContent(image, prompt)
print(response.text ?? "No text in response.")
Scopri come scegliere un modello e, facoltativamente, una località appropriata per il tuo caso d'uso e la tua app.
Genera testo da testo e più immagini
Prima di provare questo esempio, assicurati di aver completato la sezione Prima di iniziare di questa guida.
Puoi chiamare Gemini API con prompt multimodali che includono sia testo che più file (come le immagini, come mostrato in questo esempio). Per queste chiamate, devi utilizzare un modello che supporti i contenuti multimediali nei prompt (ad esempio Gemini 2.0 Flash).
Assicurati di rivedere i requisiti e i consigli per i file di input.
Scegli se vuoi riprodurre la risposta in streaming (generateContentStream
) o attendere
la risposta finché non viene generato l'intero risultato (generateContent
).
Puoi ottenere interazioni più rapide non aspettando l'intero risultato della generazione del modello, ma utilizzando lo streaming per gestire i risultati parziali.
Questo esempio mostra come utilizzare
generateContentStream()
per riprodurre in streaming il testo generato da una richiesta di prompt multimodale che include testo
e più immagini:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
guard let image1 = UIImage(systemName: "car") else { fatalError() }
guard let image2 = UIImage(systemName: "car.2") else { fatalError() }
// Provide a text prompt to include with the images
let prompt = "What's different between these pictures?"
// To stream generated text output, call generateContentStream and pass in the prompt
let contentStream = try model.generateContentStream(image1, image2, prompt)
for try await chunk in contentStream {
if let text = chunk.text {
print(text)
}
}
In alternativa, puoi attendere l'intero risultato anziché lo streaming. Il risultato viene restituito solo al termine dell'intera procedura di generazione.
Questo esempio mostra come utilizzare
generateContent()
per generare testo da una richiesta di prompt multimodale che include testo e
più immagini:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
guard let image1 = UIImage(systemName: "car") else { fatalError() }
guard let image2 = UIImage(systemName: "car.2") else { fatalError() }
// Provide a text prompt to include with the images
let prompt = "What's different between these pictures?"
// To generate text output, call generateContent and pass in the prompt
let response = try await model.generateContent(image1, image2, prompt)
print(response.text ?? "No text in response.")
Scopri come scegliere un modello e, facoltativamente, una località appropriata per il tuo caso d'uso e la tua app.
Genera testo da testo e un video
Prima di provare questo esempio, assicurati di aver completato la sezione Prima di iniziare di questa guida.
Puoi chiamare Gemini API con prompt multimodali che includono sia file di testo che video (come mostrato in questo esempio). Per queste chiamate, devi utilizzare un modello che supporti i contenuti multimediali nei prompt (ad esempio Gemini 2.0 Flash).
Assicurati di rivedere i requisiti e i consigli per i file di input.
Scegli se vuoi riprodurre la risposta in streaming (generateContentStream
) o attendere
la risposta finché non viene generato l'intero risultato (generateContent
).
Puoi ottenere interazioni più rapide non aspettando l'intero risultato della generazione del modello, ma utilizzando lo streaming per gestire i risultati parziali.
Questo esempio mostra come utilizzare
generateContentStream()
per trasmettere il testo generato da una richiesta di prompt multimodale che include testo
e un singolo video:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
// Provide the video as `Data` with the appropriate MIME type
let video = InlineDataPart(data: try Data(contentsOf: videoURL), mimeType: "video/mp4")
// Provide a text prompt to include with the video
let prompt = "What is in the video?"
// To stream generated text output, call generateContentStream with the text and video
let contentStream = try model.generateContentStream(video, prompt)
for try await chunk in contentStream {
if let text = chunk.text {
print(text)
}
}
In alternativa, puoi attendere l'intero risultato anziché lo streaming. Il risultato viene restituito solo dopo che il modello ha completato l'intero processo di generazione.
Questo esempio mostra come utilizzare
generateContent()
per generare testo da una richiesta di prompt multimodale che include testo e un singolo video:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
// Provide the video as `Data` with the appropriate MIME type.
let video = InlineDataPart(data: try Data(contentsOf: videoURL), mimeType: "video/mp4")
// Provide a text prompt to include with the video
let prompt = "What is in the video?"
// To generate text output, call generateContent with the text and video
let response = try await model.generateContent(video, prompt)
print(response.text ?? "No text in response.")
Scopri come scegliere un modello e, facoltativamente, una località appropriata per il tuo caso d'uso e la tua app.
Requisiti e consigli per i file di input
Consulta File di input supportati e requisiti per Vertex AI Gemini API per scoprire di più su quanto segue:
- Diverse opzioni per fornire un file in una richiesta
- Tipi di file supportati
- Tipi MIME supportati e come specificarli
- Requisiti e best practice per file e richieste multimodali
Cos'altro puoi fare?
- Scopri come contare i token prima di inviare prompt lunghi al modello.
- Configura Cloud Storage for Firebase in modo da poter includere file di grandi dimensioni nelle richieste multimodali e avere una soluzione più gestita per fornire file nei prompt. I file possono includere immagini, PDF, video e audio.
- Inizia a pensare alla preparazione per la produzione, inclusa la configurazione di Firebase App Check per proteggere il Gemini API da abusi da parte di clienti non autorizzati. Inoltre, assicurati di consultare l'elenco di controllo per la produzione.
Provare altre funzionalità di Gemini API
- Crea conversazioni a più turni (chat).
- Genera testo da prompt di solo testo.
- Genera output strutturato (ad esempio JSON) da prompt di testo e multimodali.
- Utilizza le chiamate di funzione per collegare i modelli generativi a sistemi e informazioni esterni.
Scopri come controllare la generazione di contenuti
- Comprendi la progettazione dei prompt, tra cui best practice, strategie e prompt di esempio.
- Configura i parametri del modello, ad esempio la temperatura e il numero massimo di token di output (per Gemini) o le proporzioni e la generazione di persone (per Imagen).
- Utilizza le impostazioni di sicurezza per regolare la probabilità di ricevere risposte che potrebbero essere considerate dannose.
Scopri di più sui modelli supportati
Scopri i modelli disponibili per vari casi d'uso e le relative quote e prezzi.Inviare un feedback sulla tua esperienza con Vertex AI in Firebase