Отправляйте запросы напрямую в модель Gemini Nano

С помощью прямого доступа к модели ML Kit (com.google.mlkit:genai-prompt) вы можете отправлять на устройстве собственные запросы на естественном языке в базовую модель Gemini Nano через класс GenerativeModel. Прямой доступ к модели принимает текстовые или мультимодальные (изображения и текст) входные данные, поддерживает многоэтапные разговоры, управляемые клиентом (List<Content> с ролями USER и MODEL и sessionId), и выдает текстовые или типизированные структурированные выходные данные.

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

Вариант использования

Пример

Понимание изображений

Анализ фотографий для классификации, например "домашние животные", "еда" или "путешествия".

Короткие переводы

Перевод коротких сообщений между водителем службы доставки и клиентом.

Обобщение с подсказками

Обобщение отзывов о ресторане на основе конкретного интереса пользователя.

Извлечение объектов

Извлечение важных сведений о предстоящем мероприятии из цепочки писем.

Идеи для создания контента

Предложение подсказок для записи в дневнике.

Умное сканирование документов

Извлечение и классификация товаров из изображения чека.

Классификация текста

Классификация отзывов клиентов по категориям: положительные, нейтральные или отрицательные.

Прямой доступ к модели и API для конкретных задач

Помимо прямого доступа к базовой модели Gemini Nano для пользовательских запросов, ML Kit предоставляет предварительно настроенные API для специализированных задач, связанных с речью, изображениями и текстом: распознавание речи, описание изображений, краткий пересказ, проверка правописания, переписывание и т. д. Tasks API для задач с текстом и изображениями используют типы функций, характерные для конкретных задач, и точно настроенные адаптеры LoRA поверх общей базовой модели. В таблице ниже описаны преимущества каждого подхода.

готовность;

Прямой доступ к модели (GenerativeModel)

API для задач с текстом и изображениями

Трудоемкость интеграции

Высокий.

Требует больше усилий для реализации из-за составления запросов и обеспечения качества.

низкий

Требует меньше усилий, поскольку эти API используют типы функций для конкретных задач и точно настроенные адаптеры LoRA поверх базовой модели. Вам не нужно работать с LLM напрямую.

Удобнее!

Больше гибкости, поскольку вы можете создавать собственные запросы, управлять контекстом многоэтапных диалогов, применять типизированные структурированные схемы или создавать рабочие процессы на основе агентов (AgentRunner) более высокого уровня на базе GenerativeModel.

Меньше гибкости. Каждый API для конкретной задачи имеет фиксированную точную настройку LoRA и встроенную подсказку, которая имеет следующие характеристики:

  • Описание изображения слишком общее и короткое.
  • Пересказ должен состоять из 1–3 пунктов.
  • Переписывание поддерживает только предопределенные стили.

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

Образец кода