在 Firebase SDK 中使用 Vertex AI 開始使用 Gemini API


本指南說明如何開始使用所選平台的 Vertex AI in Firebase SDK,直接從應用程式呼叫 Vertex AI Gemini API

事前準備

本指南假設您熟悉如何使用 Android Studio 開發 Android 應用程式。

步驟 1:設定 Firebase 專案,並將應用程式連結至 Firebase

如果您已經有 Firebase 專案,且有一個應用程式連結至 Firebase

  1. Firebase 主控台中,前往「使用 Gemini 進行建構」頁面

  2. 按一下 Vertex AI in Firebase 資訊卡,即可啟動工作流程,協助您完成下列工作。(請注意,如果您在主控台中看到 Vertex AI 的索引標籤,表示這些工作已完成)。

  3. 請繼續參閱本指南的後續步驟,將 SDK 新增至應用程式。

如果您尚未有 Firebase 專案,且有一個應用程式連結至 Firebase


步驟 2:新增 SDK

Firebase 專案已設定完成,應用程式也已連結至 Firebase (請參閱上一個步驟),因此您現在可以將 Vertex AI in Firebase SDK 新增至應用程式。

Vertex AI in Firebase Android 版 SDK (firebase-vertexai) 提供 對 Vertex AI Gemini API 的存取權。

模組 (應用程式層級) Gradle 設定檔 (例如 <project>/<app-module>/build.gradle.kts) 中,新增 Vertex AI in Firebase SDK for Android 的依附元件:

Kotlin+KTX

dependencies {
  // ... other androidx dependencies

  // add the dependency for the Vertex AI in Firebase SDK for Android
  implementation("com.google.firebase:firebase-vertexai:16.0.0-beta06")
}

Java

針對 Java,您需要額外新增兩個程式庫。

dependencies {
  // ... other androidx dependencies

  // add the dependency for the Vertex AI in Firebase SDK for Android
  implementation("com.google.firebase:firebase-vertexai:16.0.0-beta06")

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

步驟 3:初始化 Vertex AI 服務和生成模型

您必須先初始化 Vertex AI,才能發出 API 呼叫 以及生成式模型

Kotlin+KTX

對於 Kotlin,這個 SDK 中的各個方法都是暫停函式,需要從 協同程式範圍中呼叫。
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
val generativeModel = Firebase.vertexAI.generativeModel("gemini-1.5-flash")

Java

如果是 Java,此 SDK 中的串流方法會傳回 Reactive Streams 程式庫Publisher 類型。
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
GenerativeModel gm = FirebaseVertexAI.getInstance()
        .generativeModel("gemini-1.5-flash");

// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(gm);

完成入門指南後,請瞭解如何選擇適合用途和應用程式的 Gemini 模型,以及 (選用) 位置

步驟 4:呼叫 Vertex AI Gemini API

您已將應用程式連結至 Firebase、新增 SDK,並初始化 Vertex AI 服務和產生模型,因此可以呼叫 Vertex AI Gemini API

您可以使用 generateContent() 根據僅限文字提示要求產生文字:

Kotlin+KTX

針對 Kotlin,這個 SDK 中的方法為暫停函式,需要呼叫 協同程式範圍中的映像檔。
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
val generativeModel = Firebase.vertexAI.generativeModel("gemini-1.5-flash")

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

Java

如果是 Java,這個 SDK 中的方法會傳回 ListenableFuture
// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
GenerativeModel gm = FirebaseVertexAI.getInstance()
        .generativeModel("gemini-1.5-flash");
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);

你還可以做些什麼?

進一步瞭解 Gemini 模型

瞭解可用於各種用途的模型,以及配額和定價

試試 Gemini API 的其他功能

瞭解如何控管內容產生

您也可以使用 Vertex AI Studio


提供意見 你使用 Vertex AI in Firebase 的感想