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.
Weitere Optionen für die Arbeit mit Gemini API
Optional können Sie mit einer alternativen „Google AI“-Version der Gemini API
-Funktion „Kostenlosen Zugriff erhalten“ (im Rahmen der Limits und sofern verfügbar) experimentieren. Verwenden Sie dazu die Google AI Studio- und Google AI-Client-SDKs. Diese SDKs sollten nur für Prototypen in mobilen und Web-Apps verwendet werden.Nachdem Sie mit der Funktionsweise von Gemini API vertraut sind, können Sie auf unsere Vertex AI in Firebase SDKs umstellen (diese Dokumentation). Diese bieten viele zusätzliche Funktionen, die für mobile und Web-Apps wichtig sind, z. B. den Schutz der API vor Missbrauch mithilfe von Firebase App Check und die Unterstützung von großen Mediendateien in Anfragen.
Optional serverseitig Vertex AI Gemini API aufrufen (z. B. mit Python, Node.js oder Go)
Serverseitige Vertex AI SDKs, Firebase Genkit oder Firebase Extensions für die Gemini API verwenden
Hinweis
Lesen Sie den Einstiegsleitfaden für die Vertex AI in Firebase SDKs, falls Sie dies noch nicht getan haben. Achten Sie darauf, dass Sie Folgendes getan haben:
Richten Sie ein neues oder vorhandenes Firebase-Projekt ein. Verwenden Sie dabei den Blaze-Preisplan und aktivieren Sie die erforderlichen APIs.
Verbinden Sie Ihre App mit Firebase. Dazu müssen Sie Ihre App registrieren und die Firebase-Konfiguration hinzufügen.
Fügen Sie das SDK hinzu und initialisieren Sie den Vertex AI-Dienst und das generative Modell in Ihrer App.
Nachdem Sie Ihre App mit Firebase verbunden, das SDK hinzugefügt und den Vertex AI-Dienst und das generative Modell initialisiert haben, können Sie Gemini API aufrufen.
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 vonsendMessageStream()
(odersendMessage()
). Die Funktion wirft eine Ausnahme, wenn eine andere Rolle übergeben wird.model
: die Rolle, die die Antworten liefert. Diese Rolle kann verwendet werden, wennstartChat()
mit vorhandenenhistory
aufgerufen wird.
Wählen Sie aus, ob Sie die Antwort streamen (sendMessageStream
) oder warten möchten, bis das gesamte Ergebnis generiert wurde (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()
// 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)
}
}
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 du mit startChat()
und sendMessage()
eine Nachricht an einen neuen Nutzer sendest:
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.")
Informationen zum Auswählen eines Gemini-Modells und optional eines Standorts, der für Ihren Anwendungsfall und Ihre App geeignet ist.
Was können Sie sonst noch tun?
- Informationen zum Zählen von Tokens, bevor lange Prompts an das Modell gesendet werden
- Richten Sie Cloud Storage for Firebase ein, damit Sie große Dateien in Ihre multimodalen Anfragen aufnehmen und eine besser verwaltete Lösung für die Bereitstellung von Dateien in Prompts haben können. Dateien können Bilder, PDFs, Videos und Audiodateien enthalten.
- Überlegen Sie, wie Sie sich auf die Produktion vorbereiten können, einschließlich der Einrichtung von Firebase App Check, um die Gemini API vor Missbrauch durch nicht autorisierte Clients zu schützen.
Weitere Funktionen des Gemini API ausprobieren
- Text aus nur Text-Prompts generieren
- Text aus multimodalen Prompts generieren (einschließlich Text, Bildern, PDFs, Videos und Audio).
- Sie können sowohl aus Text- als auch aus multimodalen Prompts strukturierte Ausgabe (z. B. JSON) generieren.
- Verwenden Sie Funktionsaufrufe, um generative Modelle mit externen Systemen und Informationen zu verbinden.
Inhaltserstellung steuern
- Informationen zum Prompt-Design, einschließlich Best Practices, Strategien und Beispiel-Prompts.
- Konfigurieren Sie Modellparameter wie Temperatur und maximale Ausgabetokens.
- Mit den Sicherheitseinstellungen können Sie die Wahrscheinlichkeit anpassen, dass Sie Antworten erhalten, die als schädlich eingestuft werden könnten.
Weitere Informationen zu den Gemini-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