Unterhaltungen über mehrere Themen (Chat) mit der Gemini API erstellen


Mit der Gemini API können Sie Konversationen im freien Stil über mehrere Gesprächsrunden hinweg erstellen. Das Vertex AI in Firebase SDK vereinfacht den Prozess, da der Status der Unterhaltung verwaltet wird. Anders als bei generateContentStream() oder generateContent() müssen Sie den Unterhaltungsverlauf also nicht selbst speichern.

Hinweis

Lesen Sie den Startleitfaden, in dem beschrieben wird, wie Sie ein Firebase-Projekt einrichten, Ihre App mit Firebase verbinden, das SDK hinzufügen, den Vertex AI-Dienst initialisieren und eine GenerativeModel-Instanz erstellen.

Chat-Prompt-Anfrage senden

Wenn Sie eine Unterhaltung mit mehreren Antworten (z. B. einen Chat) erstellen möchten, müssen Sie zuerst den Chat mit startChat() initialisieren. Verwenden Sie dann sendMessageStream() (oder sendMessage()), um eine neue Nutzernachricht zu senden. Dadurch werden die Nachricht und die Antwort an den Chatverlauf angehängt.

Es gibt zwei mögliche Optionen für role, die mit den Inhalten in einer Unterhaltung verknüpft sind:

  • user: die Rolle, die die Prompts bereitstellt. Dieser Wert ist der Standardwert für Aufrufe von sendMessageStream() (oder sendMessage()). Die Funktion wirft eine Ausnahme, wenn eine andere Rolle übergeben wird.

  • model: die Rolle, die die Antworten liefert. Diese Rolle kann verwendet werden, wenn startChat() mit vorhandenen history aufgerufen wird.

Wählen Sie aus, ob Sie die Antwort streamen (sendMessageStream) oder bis zur vollständigen Generierung des Ergebnisses warten möchten (sendMessage).

Sie können schnellere Interaktionen erzielen, wenn Sie nicht auf das vollständige Ergebnis der Modellgenerierung warten, sondern stattdessen Streaming zum Verarbeiten von Teilergebnissen verwenden.

In diesem Beispiel wird gezeigt, wie mit startChat() und sendMessageStream() Antworten aus dem Modell gestreamt werden:

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)
  }
}

Alternativ können Sie auf das vollständige Ergebnis warten, anstatt es zu streamen. Das Ergebnis wird erst zurückgegeben, wenn das Modell den gesamten Generierungsprozess abgeschlossen hat.

In diesem Beispiel wird gezeigt, wie Sie mit startChat() und sendMessage() eine Nachricht an einen neuen Nutzer senden:

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.")

Hier erfahren Sie, wie Sie ein Modell und optional einen Standort für Ihren Anwendungsfall und Ihre App auswählen.

Was können Sie sonst noch tun?

Andere Funktionen ausprobieren

Inhaltserstellung steuern

Mit Vertex AI Studio können Sie auch mit Prompts und Modellkonfigurationen experimentieren.

Weitere Informationen zu den unterstützten Modellen

Hier finden Sie Informationen zu den Modellen, die für verschiedene Anwendungsfälle verfügbar sind, sowie zu ihren Kontingenten und Preisen.


Feedback zu Vertex AI in Firebase geben