Con Gemini API puoi creare conversazioni in formato libero su più turni. L'SDK Vertex AI in Firebase semplifica la procedura gestendo
lo stato della conversazione, quindi, a differenza di quanto accade con generateContentStream()
o
generateContent()
, non devi memorizzare autonomamente la cronologia delle conversazioni.
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 gli SDK client Google AI Studio e 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, Genkit o Firebase Extensions per Gemini API.
Prima di iniziare
Se non l'hai ancora fatto, consulta la
guida introduttiva, che descrive come configurare il progetto Firebase, collegare l'app a Firebase, aggiungere l'SDK, inizializzare il servizio Vertex AI e creare un'istanza GenerativeModel
.
Inviare una richiesta di prompt di chat
Per creare una conversazione con più turni (ad esempio una chat), inizia con l'inizializzazione della chat chiamando startChat()
. Quindi, utilizza
sendMessageStream()
(o sendMessage()
) per inviare un nuovo messaggio dell'utente, che
aggiungerà anche il messaggio e la risposta alla cronologia della chat.
Esistono due possibili opzioni per role
associate ai contenuti di una conversazione:
user
: il ruolo che fornisce i prompt. Questo valore è predefinito per le chiamate asendMessageStream()
(osendMessage()
) e la funzione genera un'eccezione se viene passato un ruolo diverso.model
: il ruolo che fornisce le risposte. Questo ruolo può essere utilizzato quando si chiamastartChat()
conhistory
esistente.
Scegli se vuoi riprodurre la risposta in streaming (sendMessageStream
) o attendere la risposta fino a quando non viene generato l'intero risultato (sendMessage
).
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
startChat()
e
sendMessageStream()
per riprodurre in streaming le risposte del modello:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Create a `GenerativeModel` instance with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
// Optionally specify existing chat history
let history = [
ModelContent(role: "user", parts: "Hello, I have 2 dogs in my house."),
ModelContent(role: "model", parts: "Great to meet you. What would you like to know?"),
]
// Initialize the chat with optional chat history
let chat = model.startChat(history: history)
// To stream generated text output, call sendMessageStream and pass in the message
let contentStream = try chat.sendMessageStream("How many paws are in my house?")
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
startChat()
e
sendMessage()
per inviare un messaggio a un nuovo utente:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Create a `GenerativeModel` instance with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
// Optionally specify existing chat history
let history = [
ModelContent(role: "user", parts: "Hello, I have 2 dogs in my house."),
ModelContent(role: "model", parts: "Great to meet you. What would you like to know?"),
]
// Initialize the chat with optional chat history
let chat = model.startChat(history: history)
// To generate text output, call sendMessage and pass in the message
let response = try await chat.sendMessage("How many paws are in my house?")
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.
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à
- Genera testo da prompt di solo testo.
- Genera testo da prompt multimodali (inclusi testo, immagini, PDF, video e audio).
- Genera output strutturato (come JSON) da prompt di testo e multimodali.
- Genera immagini da prompt di testo.
- 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 le best practice, le strategie e i 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