In diesem Leitfaden erfahren Sie, wie Sie mit dem Vertex AI SDK for Firebase Aufrufe an die Gemini API direkt aus Ihrer App senden.
Voraussetzungen
In diesem Leitfaden wird davon ausgegangen, dass Sie mit Android Studio vertraut sind, um Apps für Android zu entwickeln.
Deine Entwicklungsumgebung und Android-App müssen die folgenden Anforderungen erfüllen:
- Android Studio (neueste Version)
- Deine Android-App muss auf API-Level 21 oder höher ausgerichtet sein.
(Optional) Sehen Sie sich die Beispiel-App an.
Sie können das SDK schnell testen, sich eine vollständige Implementierung verschiedener Anwendungsfälle ansehen oder die Beispiel-App verwenden, wenn Sie keine eigene Android-App haben. Wenn Sie die Beispiel-App verwenden möchten, müssen Sie sie mit einem Firebase-Projekt verbinden.
Schritt 1: Firebase-Projekt einrichten und App mit Firebase verknüpfen
Wenn Sie bereits ein Firebase-Projekt und eine App haben, die mit Firebase verbunden sind
Rufen Sie in der Firebase Console die Seite Build with Gemini auf und klicken Sie auf die zweite Karte, um einen Workflow zu starten, der Sie bei den folgenden Aufgaben unterstützt. Wenn Sie kein Kartenlayout sehen, sind diese Aufgaben abgeschlossen.
Führen Sie ein Upgrade Ihres Projekts durch, um das „Blaze“-Preismodell („Pay as you go“) zu verwenden.
Aktivieren Sie die folgenden beiden APIs für Ihr Projekt:
aiplatform.googleapis.com
undfirebaseml.googleapis.com
.
Fahren Sie mit dem nächsten Schritt in dieser Anleitung fort, um Ihrer App das SDK hinzuzufügen.
Wenn Sie noch kein Firebase-Projekt und eine App mit Firebase verknüpft haben
Schritt 2: SDK hinzufügen
Wenn Ihr Firebase-Projekt eingerichtet und Ihre App mit Firebase verbunden ist (siehe vorherigen Schritt), können Sie Ihrer App jetzt das Vertex AI SDK for Firebase hinzufügen.
Das Vertex AI SDK for Android (firebase-vertexai
) bietet Zugriff auf die Gemini API.
Fügen Sie in der Gradle-Konfigurationsdatei des Moduls (auf App-Ebene) (z. B. <project>/<app-module>/build.gradle.kts
) die Abhängigkeit für das Vertex AI SDK for Android hinzu:
Kotlin+KTX
dependencies {
// ... other androidx dependencies
// add the dependency for the Vertex AI SDK for Android
implementation("com.google.firebase:firebase-vertexai:16.0.0-alpha02")
}
Java
Für Java müssen Sie zwei weitere Bibliotheken hinzufügen.
dependencies {
// ... other androidx dependencies
// add the dependency for the Vertex AI SDK for Android
implementation("com.google.firebase:firebase-vertexai:16.0.0-alpha02")
// Required for one-shot operations (to use `ListenableFuture` from Guava Android)
implementation("com.google.guava:guava:31.0.1-android")
// Required for streaming operations (to use `Publisher` from Reactive Streams)
implementation("org.reactivestreams:reactive-streams:1.0.4")
}
Schritt 3: Vertex AI-Dienst und generatives Modell initialisieren
Bevor Sie API-Aufrufe ausführen können, müssen Sie den Vertex AI-Dienst und das generative Modell initialisieren.
Kotlin+KTX
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
val generativeModel = Firebase.vertexAI.generativeModel("gemini-1.5-pro-preview-0409")
Für Kotlin sind die Methoden in diesem SDK Sperrfunktionen, die aus einem Koroutine-Bereich aufgerufen werden müssen. Wenn Sie mit Coroutinen nicht vertraut sind, lesen Sie den Artikel Kotlin-Coroutinen unter Android.Java
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
GenerativeModel gm = FirebaseVertexAI.getInstance()
.generativeModel("gemini-1.5-pro-preview-0409");
// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
Bei Java geben die Streamingmethoden in diesem SDK einen Publisher
-Typ aus der Reactive Streams-Bibliothek zurück.Wenn Sie den Startleitfaden abgeschlossen haben, erfahren Sie, wie Sie ein für Ihren Anwendungsfall geeignetes Gemini-Modell auswählen.
Schritt 4: Gemini API aufrufen
Nachdem Sie Ihre App mit Firebase verbunden, das SDK hinzugefügt und den Vertex AI-Dienst sowie das generative Modell initialisiert haben, können Sie die Gemini API aufrufen.
Legen Sie fest, ob Sie die Antwort streamen (generateContentStream
) oder auf die Antwort warten möchten, bis das gesamte Ergebnis generiert ist (generateContent
).
Streaming
Standardmäßig gibt das Modell eine Antwort zurück, nachdem der gesamte Generierungsprozess abgeschlossen ist. Sie können jedoch schnellere Interaktionen erzielen, wenn Sie nicht auf das gesamte Ergebnis warten und stattdessen Streaming verwenden, um Teilergebnisse zu verarbeiten.
Sie können generateContentStream()
verwenden, um generierten Text aus einer Prompt-Anfrage zu streamen, die nur Text enthält:
Kotlin+KTX
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
val generativeModel = Firebase.vertexAI.generativeModel("gemini-1.5-pro-preview-0409")
// Provide a prompt that includes only text
val prompt = "Write a story about a magic backpack."
// To stream generated text output, call generateContentStream and pass in the prompt
var response = ""
generativeModel.generateContentStream(prompt).collect { chunk ->
print(chunk.text)
response += chunk.text
}
Für Kotlin sind die Methoden in diesem SDK Sperrfunktionen, die aus einem Koroutine-Bereich aufgerufen werden müssen. Wenn Sie mit Coroutinen nicht vertraut sind, lesen Sie den Artikel Kotlin-Coroutinen unter Android.Java
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
GenerativeModel gm = FirebaseVertexAI.getInstance()
.generativeModel("gemini-1.5-pro-preview-0409");
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
// Provide a prompt that contains text
Content prompt = new Content.Builder()
.addText("Write a story about a magic backpack.")
.build();
// To stream generated text output, call generateContentStream with the text input
Publisher<GenerateContentResponse> streamingResponse =
model.generateContentStream(prompt);
// Subscribe to partial results from the response
final String[] fullResponse = {""};
streamingResponse.subscribe(new Subscriber<GenerateContentResponse>() {
@Override
public void onNext(GenerateContentResponse generateContentResponse) {
String chunk = generateContentResponse.getText();
fullResponse[0] += chunk;
}
@Override
public void onComplete() {
System.out.println(fullResponse[0]);
}
@Override
public void onError(Throwable t) {
t.printStackTrace();
}
@Override
public void onSubscribe(Subscription s) { }
});
Bei Java geben die Streamingmethoden in diesem SDK einen Publisher
-Typ aus der Reactive Streams-Bibliothek zurück.Ohne Streaming
Alternativ können Sie das gesamte Ergebnis abwarten, anstatt zu streamen. Das Ergebnis wird erst zurückgegeben, nachdem das Modell den gesamten Generierungsprozess abgeschlossen hat.
Sie können generateContent()
verwenden, um Text aus einer Eingabeaufforderung zu generieren, die nur Text enthält:
Kotlin+KTX
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
val generativeModel = Firebase.vertexAI.generativeModel("gemini-1.5-pro-preview-0409")
// Provide a prompt that contains text
val prompt = "Write a story about a magic backpack."
// To generate text output, call generateContent with the text input
val response = generativeModel.generateContent(prompt)
print(response.text)
Für Kotlin sind die Methoden in diesem SDK Sperrfunktionen, die aus einem Koroutine-Bereich aufgerufen werden müssen. Wenn Sie mit Coroutinen nicht vertraut sind, lesen Sie den Artikel Kotlin-Coroutinen unter Android.Java
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
GenerativeModel gm = FirebaseVertexAI.getInstance()
.generativeModel("gemini-1.5-pro-preview-0409");
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
// Provide a prompt that contains text
Content prompt = new Content.Builder()
.addText("Write a story about a magic backpack.")
.build();
// To generate text output, call generateContent with the text input
ListenableFuture<GenerateContentResponse> response = model.generateContent(prompt);
Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
@Override
public void onSuccess(GenerateContentResponse result) {
String resultText = result.getText();
System.out.println(resultText);
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
}, executor);
Bei Java geben die Methoden in diesem SDK ein ListenableFuture
zurück.
Wenn Sie mit dieser API nicht vertraut sind, lesen Sie die Android-Dokumentation zur Verwendung eines ListenableFuture
.Was kannst du sonst noch tun?
Weitere Informationen zu den Gemini-Modellen
Für verschiedene Anwendungsfälle verfügbare Modelle und deren Kontingente und Preise kennenlernen
Weitere Funktionen der Gemini API testen
- Weitere Informationen zum Senden von reinen Text-Prompts
- Senden Sie multimodale Aufforderungsanfragen mit Text- und Medien-Prompts (einschließlich Bildern, PDFs, Videos und Audio).
- Multi-Turn-Unterhaltungen (Chat) erstellen.
So steuern Sie die Inhaltsgenerierung
- Prompt-Entwurf verstehen, einschließlich Best Practices, Strategien und Beispiel-Prompts
- Konfigurieren Sie Modellparameter wie Temperatur und maximale Ausgabetokens.
- Nutzen Sie die Sicherheitseinstellungen, um die Wahrscheinlichkeit anzupassen, dass Sie Antworten erhalten, die als schädlich eingestuft werden können.
Sie können auch mit Vertex AI Studio mit Prompts und Modellkonfigurationen experimentieren.
Feedback zu Ihren Erfahrungen mit den Vertex AI SDKs for Firebase geben