Creare conversazioni in più passaggi (chat) con l'API Gemini


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 generateContentStream() o generateContent(), non devi memorizzare autonomamente la cronologia delle conversazioni.

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:

  1. Configura un progetto Firebase nuovo o esistente, ad esempio utilizzando il piano di prezzi Blaze e attivando le API richieste.

  2. Connetti la tua app a Firebase, inclusa la registrazione e l'aggiunta della configurazione Firebase.

  3. 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.

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 a sendMessageStream() (o sendMessage()) 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 chiama startChat() con history esistente.

Scegli se vuoi riprodurre la risposta in streaming (sendMessageStream) o attendere la risposta finché 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()

// Initialize the generative model 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()

// Initialize the generative model 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?

Provare altre funzionalità di Gemini API

Scopri come controllare la generazione di contenuti

Puoi anche sperimentare con i prompt e le configurazioni del modello utilizzando Vertex AI Studio.

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