Создавайте гибридные приложения для устройств Apple с помощью моделей, размещенных на устройстве и в облаке

Вы можете создавать приложения и функции для устройств Apple на основе ИИ с гибридным выводом, используя Firebase AI Logic. Гибридный вывод позволяет выполнять вывод с помощью локальных моделей (в частности, фреймворка Foundation Models от Apple), если они доступны, и автоматически переключаться на облачные модели Google (и наоборот).

На этой странице описано, как начать работу с клиентским SDK, а также показаны дополнительные параметры конфигурации и возможности, такие как температура.

Обратите внимание, что вывод на устройстве с помощью Firebase AI Logic поддерживается для приложений Apple, использующих Firebase AI Logic SDK версии 12.13.0 или более поздней и работающих на устройствах с включенной функцией Apple Intelligence. Она регулируется требованиями к допустимому использованию фреймворка Foundation Models от Apple.

Рекомендуемые варианты использования

  • Локальная модель для логического вывода позволяет:

    • Повышенная конфиденциальность
    • Бесплатный вывод
    • Функции офлайн
  • Используя функцию гибридных предложений, вы можете:

    • Обеспечить одинаковое удобство использования приложения для всех клиентов независимо от их устройств.
    • Улучшить доступность функций на основе генеративного ИИ независимо от подключения к интернету, ограничений квот и возможностей устройства.

Поддерживаемые функции, API и устройства

Прежде чем внедрять гибридный и встроенный вывод с помощью Firebase AI Logic, ознакомьтесь с информацией в этом разделе, чтобы узнать, что поддерживается в приложениях Apple.

Поддерживаемые возможности и функции для локального вывода

На устройстве поддерживается только генерация текста, в частности следующие функции:

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

Поддерживаемые API и устройства

Начать

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

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

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

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

  2. В консоли Firebase выберите AI Services (Сервисы ИИ) > AI Logic (Логика ИИ).

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

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

  5. Когда вам будет предложено выбрать поставщика Gemini API, рекомендуем выбрать Gemini Developer API. Это позволит вам быстро начать работу без дополнительных затрат.

    Вы можете в любой момент настроить Agent Platform Gemini API (formerly Vertex AI) (и требование к платежным данным).

  6. Продолжите настройку необходимых API и связанных сервисов для Firebase AI Logic.

    С начала июля 2026 года на этом этапе рабочего процесса автоматически включается Firebase App Check для AI Logic. Это критически важный сервис, который помогает защитить Gemini API при прямом доступе из приложения. В рамках подготовки (см. шаги ниже) вам нужно будет настроить отладочный поставщик App Check для локальной разработки, когда App Check включен.

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

Шаг 2. Добавьте все необходимые SDK.

Для установки зависимостей Xcode и управления ими используйте Swift Package Manager (SPM). Гибридный режим поддерживается только при использовании SPM.

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

Если вы уже используете Firebase, убедитесь, что версия пакета Firebase не ниже 12.13.0.

  1. Откройте проект приложения в Xcode и перейдите в меню File (Файл) > Add Package Dependencies (Добавить зависимости пакетов).

  2. Когда появится запрос, добавьте хранилище Firebase SDK для платформ Apple:

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

  4. Выберите библиотеки FirebaseAILogic и FirebaseAppCheck.

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

Шаг 3. Настройте отладочный поставщик App Check для локальной разработки

С начала июля 2026 года в рамках пошаговой настройки AI Logic в консоли будет автоматически применяться Firebase App Check для защиты Gemini API. Для локальной разработки необходимо настроить App Check отладочный поставщик, чтобы обойти проверку, сохраняя при этом принудительное применение App Check.

Вот как использовать отладочный поставщик при интерактивном запуске приложения в симуляторе (например, во время локальной разработки):

  1. В проекте Xcode импортируйте FirebaseAppCheck и инициализируйте App Check с помощью фабрики поставщика отладки до настройки Firebase.

    import SwiftUI
    import FirebaseCore
    import FirebaseAppCheck
    
    @main
    struct YourApp: App {
      init() {
        let providerFactory = AppCheckDebugProviderFactory()
        AppCheck.setAppCheckProviderFactory(providerFactory)
        FirebaseApp.configure()
      }
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
    
  2. Получите токен отладки:

    1. Запустите приложение в симуляторе или на тестовом устройстве.

    2. Откройте консоль Xcode и найдите токен отладки App Check. Пример:

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. Скопируйте токен (например, 123a4567-b89c-12d3-e456-789012345678).

  3. Зарегистрируйте токен отладки в App Check:

    1. В консоли Firebase перейдите на вкладку Приложения в разделе Безопасность > App Check.

    2. Найдите свое приложение, нажмите на значок дополнительного меню () и выберите Управление токенами отладки.

    3. Следуйте инструкциям на экране, чтобы зарегистрировать токен отладки.

Подробнее о поставщике отладки (в том числе о том, как получить новый токен отладки) можно узнать в официальной документации App Check.

Шаг 4. Инициализируйте сервис и создайте экземпляр сеанса модели

Нажмите на название своего поставщика Gemini API, чтобы посмотреть контент и код, относящиеся к нему.

Прежде чем отправлять запрос модели, настройте следующее:

  1. Инициализируйте сервис для выбранного поставщика Gemini API.

  2. Создайте экземпляр GenerativeModelSession с HybridModel.

  3. Выберите модели primary и secondary. Вы можете задать порядок, в котором будут выполняться попытки вывода:

    • Сначала попытаться выполнить вывод на устройстве, но разрешить резервный вариант в облаке. Задайте для primary системную модель, а для secondary – облачную.

    • Сначала попытаться выполнить вывод в облаке, но разрешить переход на устройство: задайте для primary облачную модель, а для secondary – системную модель.

    Обратите внимание, что SDK поддерживает настройку только одного model. Это означает, что SDK будет пытаться выполнить вывод только на устройстве или в облаке. Однако для гибридного режима необходимо создать HybridModel и задать модели primary и secondary.

    Подробнее о том, как работают режимы вывода (порядок попыток вывода), можно узнать в разделе Варианты конфигурации.

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

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

// Initialize a cloud model that supports your use case.
let cloudModel = ai.geminiModel(name: "GEMINI_MODEL_NAME")
// Initialize an on-device model that supports your use case.
let systemModel = FirebaseAI.SystemLanguageModel.default

// Create a Hybrid Model.
// Provide your preferred model as `primary` and your fallback model as `secondary`.
// In this example, attempt to use on-device model; otherwise, fall back to cloud.
let hybridModel = HybridModel(
  primary: systemModel,
  secondary: cloudModel
)

// Create a GenerativeModelSession with the HybridModel created earlier.
let session = firebaseAI.generativeModelSession(
  model: hybridModel,
)

Шаг 5. Отправьте запрос модели

В этом разделе рассказывается, как:

Как генерировать текст на основе текстового запроса

Прежде чем использовать этот пример, убедитесь, что вы выполнили все инструкции из раздела Начало работы.

Чтобы сгенерировать текст на основе текстового запроса, используйте respond(to:) следующим образом:

// Imports + initialization of Gemini API backend service + creation of model session

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

// To generate text output, call `respond(to:)` with the text input
let response = try await session.respond(to: prompt)
print(response.content)

Потоковая передача текста из текстовых входных данных

Прежде чем использовать этот пример, убедитесь, что вы выполнили все инструкции из раздела Начало работы.

Чтобы ускорить взаимодействие, вы можете не ждать, пока модель сгенерирует весь результат, а использовать потоковую передачу для обработки частичных результатов. Чтобы транслировать сгенерированный текст из запроса, содержащего текст, используйте streamResponse(to:), как показано ниже.

// Imports + initialization of Gemini API backend service + creation of model session

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

// To stream generated text output, call `streamResponse(to:)` with the text input
let stream = session.streamResponse(to: prompt)
for try await snapshot in stream {
  print(snapshot.content)
}

Что ещё ты умеешь делать?

Для гибридных решений можно использовать различные дополнительные настройки и возможности:

Функции, которые пока не поддерживаются для гибридного вывода и вывода на устройстве

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

  • Для гибридных реализаций и реализаций на устройстве не поддерживаются шаблоны запросов Gemini Live API и шаблоны запросов на сервере. Кроме того, не следует полагаться на подсчет токенов, поскольку он будет различаться для облачных и локальных моделей, поэтому интуитивно понятного резервного варианта нет.

  • Следующие функции пока не поддерживаются для инференса на устройстве: Если вы хотите использовать какие-либо из этих функций, рекомендуем использовать только модель, размещенную в облаке, чтобы обеспечить более стабильную работу.

    • создавать текст на основе мультимодальных входных данных, таких как изображения, аудио, видео и документы (PDF-файлы);

    • создавать медиаконтент, например изображения, аудио- и видеозаписи;

    • Отправка запросов, содержащих более 4096 токенов (примерно 3000 слов на английском языке).

    • Предоставление модели на устройстве встроенных инструментов, которые помогают ей генерировать ответы (например, выполнение кода, URL-контекст и обоснование с Google Поиском).

  • Инструмент мониторинга ИИ в консоли Firebase не показывает данные о выводе на устройстве (в том числе журналы устройства). Однако любой вывод, в котором используется модель, размещенная в облаке, можно отслеживать так же, как и другие выводы, с помощью Firebase AI Logic.

Дополнительные ограничения

Помимо перечисленного выше, у локального инференса есть следующие ограничения:


Оставить отзыв о работе с Firebase AI Logic