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

С помощью Firebase AI Logic можно создавать приложения и функции Apple на основе ИИ с гибридным выводом. Гибридный вывод позволяет выполнять вывод с помощью локальных моделей (в частности, фреймворка 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 выберите Сервисы ИИ > Логика ИИ.

  3. Нажмите Get started (Начать), чтобы запустить пошаговый процесс настройки необходимых 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.

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

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

  • Конечный пользователь вашего приложения должен использовать устройство с поддержкой Apple Intelligence.

  • Приложение может выполнять вывод на устройстве, только когда оно находится на переднем плане.


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