Начните работу с API Gemini с помощью SDK Firebase AI Logic

В этом руководстве показано, как начать совершать вызовы API Gemini непосредственно из вашего приложения, используя клиентские SDK Firebase AI Logic для выбранной вами платформы.

Вы также можете использовать это руководство, чтобы начать работу с моделями Imagen с помощью Firebase AI Logic SDK.

Предпосылки

Быстрый

В этом руководстве предполагается, что вы знакомы с использованием Xcode для разработки приложений для платформ Apple (например, iOS).

  • Убедитесь, что ваша среда разработки и приложение для платформы Apple соответствуют следующим требованиям:

    • Xcode 16.2 или выше
    • Ваше приложение предназначено для iOS 15 или выше, или macOS 12 или выше.
  • (Необязательно) Ознакомьтесь с примером приложения.

    Загрузите приложение быстрого старта

    Вы можете быстро опробовать SDK, увидеть полную реализацию различных вариантов использования или использовать пример приложения, если у вас нет собственного приложения для платформ Apple. Чтобы использовать пример приложения, вам нужно будет подключить его к проекту Firebase .

Kotlin

В этом руководстве предполагается, что вы знакомы с использованием Android Studio для разработки приложений для Android.

  • Убедитесь, что ваша среда разработки и приложение Android соответствуют следующим требованиям:

    • Android Studio (последняя версия)
    • Ваше приложение рассчитано на API уровня 21 или выше.
  • (Необязательно) Ознакомьтесь с примером приложения.

    Загрузите пример приложения

    Вы можете быстро опробовать SDK, увидеть полную реализацию различных вариантов использования или использовать пример приложения, если у вас нет собственного приложения для Android. Чтобы использовать пример приложения, вам нужно будет подключить его к проекту Firebase .

Java

В этом руководстве предполагается, что вы знакомы с использованием Android Studio для разработки приложений для Android.

  • Убедитесь, что ваша среда разработки и приложение Android соответствуют следующим требованиям:

    • Android Studio (последняя версия)
    • Ваше приложение рассчитано на API уровня 21 или выше.
  • (Необязательно) Ознакомьтесь с примером приложения.

    Загрузите пример приложения

    Вы можете быстро опробовать SDK, увидеть полную реализацию различных вариантов использования или использовать пример приложения, если у вас нет собственного приложения для Android. Чтобы использовать пример приложения, вам нужно будет подключить его к проекту Firebase .

Web

Это руководство предполагает, что вы знакомы с использованием JavaScript для разработки веб-приложений. Это руководство не зависит от фреймворка.

  • Убедитесь, что ваша среда разработки и веб-приложение соответствуют следующим требованиям:

    • (Необязательно) Node.js
    • Современный веб-браузер
  • (Необязательно) Ознакомьтесь с примером приложения.

    Загрузите пример приложения

    Вы можете быстро опробовать SDK, увидеть полную реализацию различных вариантов использования или использовать пример приложения, если у вас нет собственного веб-приложения. Чтобы использовать пример приложения, вам нужно будет подключить его к проекту Firebase .

Dart

В этом руководстве предполагается, что вы знакомы с разработкой приложений с помощью Flutter.

  • Убедитесь, что ваша среда разработки и приложение Flutter соответствуют следующим требованиям:

    • Дарт 3.2.0+
  • (Необязательно) Ознакомьтесь с примером приложения.

    Загрузите пример приложения

    Вы можете быстро опробовать SDK, увидеть полную реализацию различных вариантов использования или использовать пример приложения, если у вас нет собственного приложения Flutter. Чтобы использовать пример приложения, вам нужно будет подключить его к проекту Firebase .

Единство

В этом руководстве предполагается, что вы знакомы с разработкой игр на Unity.

  • Убедитесь, что ваша среда разработки и игра Unity соответствуют следующим требованиям:

    • Unity Editor 2021 LTS или новее
  • (Необязательно) Ознакомьтесь с примером приложения.

    Загрузите пример приложения

    Вы можете быстро опробовать SDK, увидеть полную реализацию различных вариантов использования или использовать пример приложения, если у вас нет собственной игры Unity. Чтобы использовать пример приложения, вам нужно будет подключить его к проекту Firebase .

Шаг 1 : Настройте проект Firebase и подключите свое приложение

  1. Войдите в консоль Firebase , а затем выберите свой проект Firebase.

  2. В консоли Firebase перейдите на страницу Firebase AI Logic .

  3. Нажмите «Начать» , чтобы запустить пошаговый рабочий процесс, который поможет вам настроить необходимые API и ресурсы для вашего проекта.

  4. Выберите поставщика " Gemini API ", который вы хотите использовать с Firebase AI Logic SDK. Вы всегда можете настроить и использовать другого поставщика API позже, если захотите.

    • Gemini Developer APIоплата необязательна (доступно в бесплатном тарифном плане Spark)
      Консоль включит необходимые API и создаст ключ API Gemini в вашем проекте. Вы можете настроить выставление счетов позже, если захотите обновить свой тарифный план.

    • Vertex AI Gemini APIтребуется выставление счетов (требуется тарифный план Blaze с оплатой по факту использования)
      Консоль поможет вам настроить биллинг и включить необходимые API в вашем проекте.

  5. Если в рабочем процессе консоли появится соответствующий запрос, следуйте инструкциям на экране, чтобы зарегистрировать свое приложение и подключить его к Firebase.

  6. Перейдите к следующему шагу этого руководства, чтобы добавить SDK в свое приложение.

Шаг 2 : Добавьте SDK

После настройки проекта Firebase и подключения приложения к Firebase (см. предыдущий шаг) вы можете добавить Firebase AI Logic SDK в свое приложение.

Быстрый

Используйте Swift Package Manager для установки и управления зависимостями Firebase.

Библиотека Firebase AI Logic обеспечивает доступ к API для взаимодействия с моделями Gemini и Imagen . Библиотека включена в состав Firebase SDK для платформ Apple ( firebase-ios-sdk ).

Если вы уже используете Firebase, убедитесь, что ваш пакет Firebase — v11.13.0 или более поздней версии.

  1. В Xcode откройте проект приложения и перейдите в меню Файл > Добавить зависимости пакета .

  2. При появлении соответствующего запроса добавьте репозиторий Firebase Apple platform SDK:

    https://github.com/firebase/firebase-ios-sdk
    
  3. Выберите последнюю версию SDK.

  4. Выберите библиотеку FirebaseAI .

По завершении Xcode автоматически начнет разрешать и загружать ваши зависимости в фоновом режиме.

Kotlin

Firebase AI Logic SDK для Android ( firebase-ai ) предоставляет доступ к API для взаимодействия с моделями Gemini и Imagen .

В файле Gradle вашего модуля (уровня приложения) (например, <project>/<app-module>/build.gradle.kts ) добавьте зависимость для библиотеки Firebase AI Logic для Android. Мы рекомендуем использовать Firebase Android BoM для управления версиями библиотеки.

dependencies {
  // ... other androidx dependencies

  // Import the BoM for the Firebase platform
  implementation(platform("com.google.firebase:firebase-bom:33.13.0"))

  // Add the dependency for the Firebase AI Logic library
  // When using the BoM, you don't specify versions in Firebase library dependencies
  implementation("com.google.firebase:firebase-ai")
}

Благодаря использованию Firebase Android BoM ваше приложение всегда будет использовать совместимые версии библиотек Firebase Android.

Java

Firebase AI Logic SDK для Android ( firebase-ai ) предоставляет доступ к API для взаимодействия с моделями Gemini и Imagen .

В файле Gradle вашего модуля (уровня приложения) (например, <project>/<app-module>/build.gradle.kts ) добавьте зависимость для библиотеки Firebase AI Logic для Android. Мы рекомендуем использовать Firebase Android BoM для управления версиями библиотеки.

Для Java вам необходимо добавить две дополнительные библиотеки.

dependencies {
  // ... other androidx dependencies

  // Import the BoM for the Firebase platform
  implementation(platform("com.google.firebase:firebase-bom:33.13.0"))

  // Add the dependency for the Firebase AI Logic library
  // When using the BoM, you don't specify versions in Firebase library dependencies
  implementation("com.google.firebase:firebase-ai")

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

Благодаря использованию Firebase Android BoM ваше приложение всегда будет использовать совместимые версии библиотек Firebase Android.

Web

Библиотека Firebase AI Logic обеспечивает доступ к API для взаимодействия с моделями Gemini и Imagen . Библиотека включена в состав Firebase JavaScript SDK for Web.

  1. Установите Firebase JS SDK для Web с помощью npm:

    npm install firebase
    
  2. Инициализируйте Firebase в вашем приложении:

    import { initializeApp } from "firebase/app";
    
    // TODO(developer) Replace the following with your app's Firebase configuration
    // See: https://firebase.google.com/docs/web/learn-more#config-object
    const firebaseConfig = {
      // ...
    };
    
    // Initialize FirebaseApp
    const firebaseApp = initializeApp(firebaseConfig);
    

Dart

Плагин Firebase AI Logic для Flutter ( firebase_ai ) обеспечивает доступ к API для взаимодействия с моделями Gemini и Imagen .

  1. Из каталога проекта Flutter выполните следующую команду, чтобы установить основной плагин и плагин Firebase AI Logic :

    flutter pub add firebase_core && flutter pub add firebase_ai
    
  2. В файле lib/main.dart импортируйте основной плагин Firebase, плагин Firebase AI Logic и файл конфигурации, который вы сгенерировали ранее:

    import 'package:firebase_core/firebase_core.dart';
    import 'package:firebase_ai/firebase_ai.dart';
    import 'firebase_options.dart';
    
  3. Также в файле lib/main.dart инициализируйте Firebase с помощью объекта DefaultFirebaseOptions , экспортированного файлом конфигурации:

    await Firebase.initializeApp(
      options: DefaultFirebaseOptions.currentPlatform,
    );
    
  4. Перестройте свое приложение Flutter:

    flutter run
    

Единство

  1. Загрузите Firebase Unity SDK , затем извлеките SDK в удобное место.

    Firebase Unity SDK не привязан к какой-либо платформе.

  2. В открытом проекте Unity перейдите в раздел Assets > Import Package > Custom Package .

  3. Из извлеченного SDK выберите пакет FirebaseAI .

  4. В окне «Импорт пакета Unity» нажмите «Импорт» .

  5. Вернувшись в консоль Firebase , в рабочем процессе настройки нажмите кнопку Далее .

Шаг 3 : Инициализация службы и создание экземпляра модели.

Щелкните своего поставщика API Gemini , чтобы просмотреть специфичный для этого поставщика контент и код на этой странице.

При использовании клиентских SDK Firebase AI Logic с API разработчика Gemini вам НЕ нужно добавлять ключ API Gemini в кодовую базу вашего приложения . Подробнее.

Перед отправкой запроса модели Gemini инициализируйте службу для выбранного вами поставщика API и создайте экземпляр GenerativeModel .

Быстрый


import FirebaseAI

// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())

// Create a `GenerativeModel` instance with a model that supports your use case
let model = ai.generativeModel(modelName: "gemini-2.0-flash")

Kotlin


// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
                        .generativeModel("gemini-2.0-flash")

Java


// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
        .generativeModel("gemini-2.0-flash");

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

Web


import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend } from "firebase/ai";

// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);

// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// Create a `GenerativeModel` instance with a model that supports your use case
const model = getGenerativeModel(ai, { model: "gemini-2.0-flash" });

Dart


import 'package:firebase_ai/firebase_ai.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

// Initialize FirebaseApp
await Firebase.initializeApp(
  options: DefaultFirebaseOptions.currentPlatform,
);

// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
final model =
      FirebaseAI.googleAI().generativeModel(model: 'gemini-2.0-flash');

Единство


using Firebase;
using Firebase.AI;

// Initialize the Gemini Developer API backend service
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());

// Create a `GenerativeModel` instance with a model that supports your use case
var model = ai.GetGenerativeModel(modelName: "gemini-2.0-flash");

Обратите внимание, что в зависимости от используемой возможности вы не всегда можете создать экземпляр GenerativeModel .

Кроме того, после прочтения этого руководства по началу работы узнайте, как выбрать модель для вашего варианта использования и приложения.

Шаг 4 : Отправьте быстрый запрос модели

Теперь вы готовы отправить быстрый запрос модели Gemini .

Вы можете использовать generateContent() для генерации текста из приглашения, содержащего текст:

Быстрый


import FirebaseAI

// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())

// Create a `GenerativeModel` instance with a model that supports your use case
let model = ai.generativeModel(modelName: "gemini-2.0-flash")

// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."

// To generate text output, call generateContent with the text input
let response = try await model.generateContent(prompt)
print(response.text ?? "No text in response.")

Kotlin

Для Kotlin методы в этом SDK являются функциями приостановки и должны вызываться из области действия сопрограммы .

// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
                        .generativeModel("gemini-2.0-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 Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
        .generativeModel("gemini-2.0-flash");

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

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

Web


import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend } from "firebase/ai";

// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);

// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// Create a `GenerativeModel` instance with a model that supports your use case
const model = getGenerativeModel(ai, { model: "gemini-2.0-flash" });

// Wrap in an async function so you can use await
async function run() {
  // Provide a prompt that contains text
  const prompt = "Write a story about a magic backpack."

  // To generate text output, call generateContent with the text input
  const result = await model.generateContent(prompt);

  const response = result.response;
  const text = response.text();
  console.log(text);
}

run();

Dart


import 'package:firebase_ai/firebase_ai.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

// Initialize FirebaseApp
await Firebase.initializeApp(
  options: DefaultFirebaseOptions.currentPlatform,
);

// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
final model =
      FirebaseAI.googleAI().generativeModel(model: 'gemini-2.0-flash');

// Provide a prompt that contains text
final prompt = [Content.text('Write a story about a magic backpack.')];

// To generate text output, call generateContent with the text input
final response = await model.generateContent(prompt);
print(response.text);

Единство


using Firebase;
using Firebase.AI;

// Initialize the Gemini Developer API backend service
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());

// Create a `GenerativeModel` instance with a model that supports your use case
var model = ai.GetGenerativeModel(modelName: "gemini-2.0-flash");

// Provide a prompt that contains text
var prompt = "Write a story about a magic backpack.";

// To generate text output, call GenerateContentAsync with the text input
var response = await model.GenerateContentAsync(prompt);
UnityEngine.Debug.Log(response.Text ?? "No text in response.");

Что еще можно сделать?

Узнайте больше о поддерживаемых моделях

Узнайте о моделях, доступных для различных вариантов использования , а также об их квотах и ​​ценах .

Попробуйте другие возможности

Узнайте, как контролировать генерацию контента

Вы также можете экспериментировать с подсказками и конфигурациями моделей и даже получить сгенерированный фрагмент кода с помощью Google AI Studio .


Оставьте отзыв о своем опыте использования Firebase AI Logic