Создавайте гибридные приложения 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 и подключите ваше приложение к Firebase.

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

  2. В консоли Firebase перейдите в раздел AI Services > AI Logic .

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

  4. Настройте свой проект для использования поставщика " Gemini API ".

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

    Для доступа к Gemini Developer API консоль активирует необходимые API и создаст ключ Gemini API в вашем проекте.
    Не добавляйте этот API-ключ Gemini в код вашего приложения. Узнайте больше.

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

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

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

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

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

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

  1. В Xcode, открыв проект приложения, перейдите в меню File > Add Package Dependencies .

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

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

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

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

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

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

Перед отправкой запроса модели выполните следующие действия.

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

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

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

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

Создание текста из текстового ввода.

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

Чтобы сгенерировать текст из запроса, содержащего текст, используйте 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 или облачных моделей поддерживаются.

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

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

    • Генерация текста из мультимодальных входных данных, таких как изображения, аудио, видео и документы (PDF).

    • Создание медиаконтента, такого как изображения, аудио или видео.

    • Отправка запросов, превышающих 4096 токенов (или приблизительно 3000 английских слов).

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

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

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

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

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

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


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