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.
- Participe do grupo do Google aicore-experimental.
- 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
- Atualize o APK do AICore:
- No canto superior direito, toque no ícone do perfil.
- Toque em Gerenciar apps e dispositivos > Gerenciar.
- Toque em Android AICore.
- Toque em Atualizar se uma atualização estiver disponível.
- Atualize o APK do serviço de computação particular:
- No canto superior direito, toque no ícone do perfil.
- Toque em Gerenciar apps e dispositivos > Gerenciar.
- Toque em Serviços de computação privados.
- Toque em Atualizar se uma atualização estiver disponível.
- Verifique a versão na guia Sobre este app e confirme se a versão do app é 1.0.release.658389993 ou mais recente.
- Reinicie o dispositivo e aguarde alguns minutos para que a inscrição para teste entre em vigor
- 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.