Enviar solicitações personalizadas com acesso direto ao modelo do Gemini Nano

Com o acesso direto ao modelo do Kit de ML (com.google.mlkit:genai-prompt), é possível enviar solicitações personalizadas de linguagem natural no dispositivo para o modelo de fundação Gemini Nano usando a classe GenerativeModel. O acesso direto ao modelo aceita entradas de texto ou multimodais (imagem e texto), oferece suporte a conversas de vários turnos gerenciadas pelo cliente (List<Content> com papéis USER e MODEL e sessionId) e emite saída de texto ou saída estruturada digitada.

É possível usar o acesso direto ao modelo para vários casos de uso, incluindo os seguintes:

Caso de uso

Exemplo

Compreensão de imagens

Analisar fotos para classificação, como "animais de estimação", "comida" ou "viagem".

Traduções curtas

Tradução de mensagens curtas entre um motorista de entrega e um cliente.

Resumo guiado

Resumir as avaliações de um restaurante com base no interesse específico de um usuário.

Extração de entidade

Extrair detalhes importantes sobre um evento futuro de uma conversa por e-mail.

Inspiração para geração de conteúdo

Sugestão de comandos para uma entrada no diário.

Digitalização inteligente de documentos

Extrair e categorizar itens de uma imagem de recibo.

Classificação de texto

Classificar as avaliações dos clientes em uma categoria positiva, neutra ou negativa.

Acesso direto ao modelo versus APIs específicas para tarefas

Além do acesso direto ao modelo de fundação Gemini Nano para comandos personalizados, o Kit de ML oferece APIs pré-configuradas para tarefas dedicadas de fala, imagem e texto: Reconhecimento de fala, Descrição de imagens, Resumo, Revisão, Reescrita e muito mais. As API Tasks de texto e imagem usam tipos de recursos específicos de tarefas e adaptadores LoRA ajustados sobre o modelo base compartilhado. A tabela a seguir descreve os benefícios de cada abordagem:

Consideração

Acesso direto ao modelo (GenerativeModel)

APIs de tarefas de texto e imagem

Esforço de integração

Alto.

Exige mais esforço para implementar, devido à engenharia de comandos e ao controle de qualidade.

Que nada.

Exige menos esforço, já que essas APIs usam tipos de recursos específicos para tarefas e adaptadores LoRA ajustados sobre o modelo de base. Não é necessário trabalhar diretamente com o LLM.

Flexibilidade

Mais flexibilidade, já que é possível personalizar comandos, gerenciar contextos de várias interações, aplicar esquemas estruturados tipados ou criar fluxos de trabalho de agentes (AgentRunner) de nível superior com base em GenerativeModel.

Menos flexibilidade. Cada API específica de tarefa tem um ajuste fino de LoRA fixo e um comando integrado com as seguintes características:

  • A descrição da imagem é genérica e curta.
  • Os resumos só podem ter de 1 a 3 marcadores.
  • A reescrita só aceita estilos predefinidos.

Como regra geral, use o acesso direto ao modelo quando precisar de mais personalização e flexibilidade, e use as APIs específicas para tarefas padrão que não exigem lógica personalizada.

Exemplo de código