Começar a usar o acesso experimental ao Gemini Nano

O acesso experimental ao Gemini Nano foi criado para desenvolvedores que querem testar o aprimoramento dos apps com recursos de IA no dispositivo de última geração. Este guia fornece detalhes sobre como testar o Gemini Nano usando o SDK AI Edge do Google no seu app.

Baixar o app de exemplo

Se você quiser acompanhar uma demonstração preparada, confira nosso app de exemplo no GitHub.

Pré-requisitos

Para testar o Gemini Nano, você precisa de um dispositivo da série Pixel 9. Confira se você tem um antes de continuar e se fez login apenas com a conta que pretende usar para testar.

  1. Participe do grupo do Google aicore-experimental.
  2. Ative o programa de testes do Android AICore.

Depois de concluir essas etapas, o nome do app na Play Store (em "Gerenciar apps e dispositivos") vai mudar de "Android AICore" para "Android AICore (Beta)".

Atualizar APKs e fazer o download de binários

  1. Atualize o APK do AICore:
    1. No canto superior direito, toque no ícone do perfil.
    2. Toque em Gerenciar apps e dispositivos > Gerenciar.
    3. Toque em Android AICore.
    4. Toque em Atualizar se uma atualização estiver disponível.
  2. Atualize o APK do serviço de computação particular:
    1. No canto superior direito, toque no ícone do perfil.
    2. Toque em Gerenciar apps e dispositivos > Gerenciar.
    3. Toque em Serviços de computação privados.
    4. Toque em Atualizar se uma atualização estiver disponível.
    5. Verifique a versão na guia Sobre este app e confirme se a versão do app é 1.0.release.658389993 ou mais recente.
  3. Reinicie o dispositivo e aguarde alguns minutos para que a inscrição para teste entre em vigor
  4. Confira a versão do APK do AICore na Play Store (na guia "Sobre este app") para confirmar se ela começa com 0.thirdpartyeap.

Configurar o Gradle

Adicione o seguinte ao bloco de dependências na configuração build.gradle:


implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")

Na configuração build.gradle, defina o SDK mínimo de destino como 31:

defaultConfig {
    ...
    minSdk = 31
    ...
}

Instalar o AICore e executar a inferência

Crie um objeto GenerationConfig, que tem parâmetros para personalizar propriedades de como o modelo deve executar a inferência.

Os parâmetros incluem:

  • Temperatura: controla a aleatoriedade. Valores mais altos aumentam a diversidade.
  • Top K: quantos tokens dos de maior classificação serão considerados
  • Contagem de candidatos: número máximo de respostas a serem retornadas.
  • Máximo de tokens de saída: comprimento da resposta
  • Executor de workers: o ExecutorService em que as tarefas em segundo plano precisam ser executadas.
  • Executor de callback: o Executor em que os callbacks precisam ser invocados.

Kotlin

val generationConfig = generationConfig {
  context = ApplicationProvider.getApplicationContext() // required
  temperature = 0.2f
  topK = 16
  maxOutputTokens = 256
}

Java

GenerationConfig.Builder configBuilder = GenerationConfig.Companion.builder();
    configBuilder.setContext(context);
    configBuilder.setTemperature(0.2f);
    configBuilder.setTopK(16);
    configBuilder.setMaxOutputTokens(256);

Crie um downloadCallback opcional. Essa é uma função de callback usada para fazer o download do modelo. As mensagens retornadas são para fins de depuração.

Crie o objeto GenerativeModel com as configurações de geração e download opcionais que você criou anteriormente.

Kotlin

val downloadConfig = DownloadConfig(downloadCallback)
val model = GenerativeModel(
   generationConfig = generationConfig,
   downloadConfig = downloadConfig // optional
)

Java

GenerativeModel model = new GenerativeModel(
   generationConfig,
   downloadConfig = DownloadConfig(downloadCallback) // optional
);

Execute a inferência com o modelo e transmita o comando. Como GenerativeModel.generateContent() é uma função de suspensão, precisamos garantir que ela esteja no escopo correto da corrotina para ser iniciada.

Kotlin

scope.launch {
  // Single string input prompt
  val input = "I want you to act as an English proofreader. I will provide you
    texts, and I would like you to review them for any spelling, grammar, or
    punctuation errors. Once you have finished reviewing the text, provide me
    with any necessary corrections or suggestions for improving the text: These
    arent the droids your looking for."
  val response = generativeModel.generateContent(input)
  print(response.text)

  // Or multiple strings as input
  val response = generativeModel.generateContent(
  content {
    text("I want you to act as an English proofreader. I will provide you texts
      and I would like you to review them for any spelling, grammar, or
      punctuation errors.")
    text("Once you have finished reviewing the text, provide me with any
      necessary corrections or suggestions for improving the text:")
    text("These arent the droids your looking for.")
    }
  )
  print(response.text)
}

Java

Futures.addCallback(
    String input = "I want you to act as an English proofreader. I will
    provide you texts, and I would like you to review them for any
    spelling, grammar, or punctuation errors. Once you have finished
    reviewing the text, provide me with any necessary corrections or
    suggestions for improving the text:
    These aren't the droids you're looking for."
    modelFutures.generateContent(input),
    new FutureCallback<GenerateContentResponse>() {
      @Override
      public void onSuccess(GenerateContentResponse result) {
        // generation successful
      }

      @Override
      public void onFailure(Throwable t) {
        // generation failed
      }
    },
    ContextCompat.getMainExecutor(this));

Se você tiver algum feedback sobre o SDK do Google AI Edge ou qualquer outro feedback para nossa equipe, envie um tíquete.

Dicas de comando

O design de comando é o processo de criação de comandos que extraem a resposta ótima dos modelos de linguagem. Escrever comandos bem estruturados é uma parte essencial para garantir respostas precisas e de alta qualidade de um modelo de linguagem. Incluímos alguns exemplos para você começar a usar casos de uso comuns do Gemini Nano. Confira as estratégias de solicitação do Gemini para mais informações.

Para reescritas:

I want you to act as an English proofreader. I will provide you texts, and I
would like you to review them for any spelling, grammar, or punctuation errors.
Once you have finished reviewing the text, provide me with any necessary
corrections or suggestions for improving the text: These arent the droids your
looking for

Para casos de uso de Resposta inteligente:

Prompt: Predict up to 5 emojis as a response to a text chat message. The output
should only include emojis.

input: The new visual design is blowing my mind 🤯
output: ➕,💘, ❤‍🔥

input: Well that looks great regardless
output: 💗,🪄

input: Unfortunately this won't work
output: 💔,😔

input: sounds good, I'll look into that
output: 🙏,👍

input: 10hr cut of jeff goldblum laughing URL
output: 😂,💀,⚰️

input: Woo! Launch time!
Output:

Para resumos:

Summarize this text as bullet points of key information.
Text: A quantum computer exploits quantum mechanical phenomena to perform
  calculations exponentially faster than any modern traditional computer. At
  very tiny scales, physical matter acts as both particles and as waves, and
  quantum computing uses specialized hardware to leverage this behavior. The
  operating principles of quantum devices are beyond the scope of classical
  physics. When deployed at scale, quantum computers could be used in a wide
  variety of applications such as: in cybersecurity to break existing encryption
  methods while helping researchers create new ones, in meteorology to develop
  better weather forecasting etc. However, the current state-of-the-art quantum
  computers are still largely experimental and impractical.