Erste Schritte mit der Gemini API unter Verwendung der Vertex AI SDKs für Firebase


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.

    Beispiel-App herunterladen

    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

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

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

So steuern Sie die Inhaltsgenerierung

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