Gemini 2.0 (experimental)

O Gemini 2.0 Flash agora está disponível como uma versão de visualização experimental na API Gemini Developer e no Google AI Studio. O modelo apresenta novos recursos e recursos principais aprimorados:

  • API Multimodal Live:essa nova API ajuda a criar aplicativos de streaming de visão e áudio em tempo real com o uso de ferramentas.
  • Velocidade e desempenho:o Gemini 2.0 tem um tempo para o primeiro token (TTFT, na sigla em inglês) significativamente melhor do que o 1.5 Flash.
  • Qualidade:o modelo mantém uma qualidade comparável a modelos maiores, como o Gemini 1.5 Pro.
  • Melhoria nos recursos de agentes:o Gemini 2.0 oferece melhorias no entendimento multimodal, na programação, no acompanhamento de instruções complexas e na chamada de função. Essas melhorias funcionam juntas para oferecer experiências melhores.
  • Novas modalidades:o Gemini 2.0 apresenta a geração de imagens nativas e recursos controláveis de conversão de texto em fala, permitindo a edição de imagens, a criação de artes localizadas e a narrativa expressiva.

Para oferecer suporte ao novo modelo, também estamos lançando um novo SDK.

Para detalhes técnicos do Gemini 2.0, consulte Modelos do Gemini.

SDK da Google Gen AI (experimental)

O novo SDK Google Gen AI oferece uma interface unificada para o Gemini 2.0 usando a API Gemini para desenvolvedores e a API Gemini na Vertex AI. Com poucas exceções, o código que é executado em uma plataforma será executado nas duas. Isso significa que você pode criar protótipos de um aplicativo usando a API Developer e migrar o aplicativo para a Vertex AI sem precisar reescrever o código.

O SDK da IA generativa também oferece suporte aos modelos do Gemini 1.5.

O novo SDK está disponível em Python e Go, e Java e JavaScript serão lançados em breve.

Você pode começar a usar o SDK, conforme mostrado abaixo.

  1. Instale o novo SDK: pip install google-genai
  2. Em seguida, importe a biblioteca, inicialize um cliente e gere conteúdo:
from google import genai

client = genai.Client(
    vertexai=False,
    api_key="YOUR_API_KEY"
)
response = client.models.generate_content(
    model='gemini-2.0-flash-experimental', contents='How does AI work?'
)
print(response.text)

(Opcional) Definir variáveis de ambiente

Como alternativa, é possível inicializar o cliente usando variáveis de ambiente. Primeiro, defina os valores apropriados e exporte as variáveis:

# Replace `YOUR_API_KEY` with your API key.
export GOOGLE_API_KEY=YOUR_API_KEY
export GOOGLE_GENAI_USE_VERTEXAI=False

Em seguida, inicialize o cliente sem argumentos:

client = genai.Client()

Os desenvolvedores de Python também podem testar o notebook "Introdução" no Cookbook.

API Multimodal Live

A API Multimodal Live permite interações de voz e vídeo bidirecionais de baixa latência com o Gemini. Com a API Multimodal Live, você pode oferecer aos usuários finais a experiência de conversas por voz naturais e humanas, além de interromper as respostas do modelo usando comandos de voz. O modelo pode processar entradas de texto, áudio e vídeo e fornecer saídas de texto e áudio.

A API Multimodal Live está disponível na API Gemini como o método BidiGenerateContent e é baseada em WebSockets.

Confira um exemplo simples de conversão de texto em texto para ajudar você a começar a usar a API Multimodal Live:

MODEL = "models/gemini-2.0-flash-exp"
CONFIG = {"generation_config": {"response_modalities": ["TEXT"]}}

async with client.aio.live.connect(model=MODEL, config=CONFIG) as session:
  message = "Hello? Gemini, are you there?"
  print("> ", message, "\n")
  await session.send(message, end_of_turn=True)

  # For text responses, when the model's turn is complete it breaks out of the loop.
  async for response in session.receive():
    print("- ", response.text)

Principais recursos:

  • Multimodalidade:o modelo pode ver, ouvir e falar.
  • Interação em tempo real com baixa latência:oferece respostas rápidas.
  • Memória de sessão:o modelo retém a memória de todas as interações em uma única sessão, recuperando informações ouvidas ou vistas anteriormente.
  • Suporte para chamada de função, execução de código e pesquisa como ferramenta:permite a integração com serviços e fontes de dados externos.
  • Detecção automática de atividade de voz (VAD, na sigla em inglês): o modelo pode reconhecer com precisão quando o usuário começa e para de falar. Isso permite interações naturais de conversa e permite que os usuários interrompam o modelo a qualquer momento.

Language:

  • Somente em inglês

Limitações:

  • As entradas e saídas de áudio afetam negativamente a capacidade do modelo de usar chamadas de função.

Para saber mais sobre os recursos e as limitações da API, consulte o guia de referência da API Multimodal Live.

Você pode testar a API Multimodal Live no Google AI Studio. Para começar a desenvolver, tente usar o console da Web (escrito em React). Para desenvolvedores Python, teste o código inicializador (notebook e arquivo.py). Talvez seja mais fácil começar com o notebook, mas a API ao vivo funciona melhor quando é executada no terminal.

Pesquisa como ferramenta

Ao usar o embasamento com a Pesquisa Google, você pode melhorar a precisão e a recência das respostas do modelo. A partir do Gemini 2.0, a Pesquisa Google está disponível como uma ferramenta. Isso significa que o modelo pode decidir quando usar a Pesquisa Google. O exemplo a seguir mostra como configurar a Pesquisa como uma ferramenta.

from google import genai
from google.genai.types import Tool, GenerateContentConfig, GoogleSearch

client = genai.Client()
model_id = "gemini-2.0-flash-exp"

google_search_tool = Tool(
    google_search = GoogleSearch()
)

response = client.models.generate_content(
    model=model_id,
    contents="When is the next total solar eclipse in the United States?",
    config=GenerateContentConfig(
        tools=[google_search_tool],
        response_modalities=["TEXT"],
    )
)

for each in response.candidates[0].content.parts:
    print(each.text)
# Example response:
# The next total solar eclipse visible in the contiguous United States will be on ...

# To get grounding metadata as web content.
print(response.candidates[0].grounding_metadata.search_entry_point.rendered_content)

A funcionalidade de pesquisa como ferramenta também permite pesquisas com várias etapas e consultas com várias ferramentas (por exemplo, combinar o Grounding com a Pesquisa Google e a execução de código).

A pesquisa como ferramenta permite comandos e fluxos de trabalho complexos que exigem planejamento, raciocínio e pensamento:

  • Embasamento para melhorar a precisão e a atualidade e fornecer respostas mais precisas
  • Recuperar artefatos da Web para fazer outras análises em
  • Encontrar imagens, vídeos ou outras mídias relevantes para ajudar em tarefas de raciocínio ou geração multimodais
  • Programação, solução de problemas técnicos e outras tarefas especializadas
  • Encontrar informações específicas da região ou ajudar a traduzir conteúdo com precisão
  • Encontrar sites relevantes para navegar

Para começar, teste o notebook da ferramenta de pesquisa.

Ferramentas aprimoradas

O Gemini 2.0 apresenta melhorias nas chamadas de função e ferramentas que oferecem melhor suporte a experiências de agentes.

Chamada de função com composição

O Gemini 2.0 oferece suporte a um novo recurso de chamada de função: chamada de função combinável. A chamada de função com composição permite que a API Gemini invoque várias funções definidas pelo usuário automaticamente no processo de geração de uma resposta. Por exemplo, para responder ao comando "Get the temperature in my current location", a API Gemini pode invocar uma função get_current_location() e uma função get_weather() que usa o local como parâmetro.

A chamada de função com execução de código requer streaming bidirecional e só é compatível com a nova API Multimodal Live. Confira um exemplo que mostra como usar a chamada de função com composição, a execução de código e a API Multimodal Live juntas:

turn_on_the_lights_schema = {'name': 'turn_on_the_lights'}
turn_off_the_lights_schema = {'name': 'turn_off_the_lights'}

prompt = """
  Hey, can you write run some python code to turn on the lights, wait 10s and then turn off the lights?
  """

tools = [
    {'code_execution': {}},
    {'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]

await run(prompt, tools=tools, modality="AUDIO")

Os desenvolvedores de Python podem testar isso no notebook de uso da ferramenta API Live.

Uso da multiferramenta

Com o Gemini 2.0, você pode ativar várias ferramentas ao mesmo tempo, e o modelo vai decidir quando chamar elas. Confira um exemplo que ativa duas ferramentas, Grounding com a Pesquisa Google e a execução de código, em uma solicitação usando a API Multimodal Live.

prompt = """
  Hey, I need you to do three things for me.

  1. Turn on the lights.
  2. Then compute the largest prime palindrome under 100000.
  3. Then use Google Search to look up information about the largest earthquake in California the week of Dec 5 2024.

  Thanks!
  """

tools = [
    {'google_search': {}},
    {'code_execution': {}},
    {'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]

await run(prompt, tools=tools, modality="AUDIO")

Os desenvolvedores de Python podem testar isso no notebook de uso da ferramenta API Live.

Detecção de caixa delimitadora

Neste lançamento experimental, oferecemos aos desenvolvedores uma ferramenta poderosa para detecção e localização de objetos em imagens e vídeos. Ao identificar e delimitar objetos com caixas delimitadoras, os desenvolvedores podem desbloquear uma ampla gama de aplicativos e melhorar a inteligência dos projetos.

Principais benefícios:

  • Simples:integre recursos de detecção de objetos aos seus aplicativos com facilidade, independentemente da sua experiência em visão computacional.
  • Personalizável:produz caixas delimitadoras com base em instruções personalizadas (por exemplo, "Quero ver caixas delimitadoras de todos os objetos verdes nesta imagem"), sem precisar treinar um modelo personalizado.

Detalhes técnicos:

  • Entrada:seu comando e as imagens ou frames de vídeo associados.
  • Saída:caixas delimitadoras no formato [y_min, x_min, y_max, x_max]. O canto superior esquerdo é a origem. Os eixos x e y vão horizontalmente e verticalmente, respectivamente. Os valores de coordenadas são normalizados de 0 a 1.000 para cada imagem.
  • Visualização:os usuários do AI Studio vão ver as caixas delimitadoras plotadas na interface. Os usuários da Vertex AI precisam visualizar as caixas delimitadoras usando um código de visualização personalizado.

Para desenvolvedores Python, use o notebook de compreensão espacial 2D ou o notebook experimental de ponteiro 3D.

Geração de voz (acesso antecipado/lista de permissões)

O Gemini 2.0 oferece suporte a um novo recurso de geração multimodais: texto para fala. Usando o recurso de conversão de texto em fala, você pode solicitar que o modelo gere uma saída de áudio de alta qualidade que soe como uma voz humana (say "hi everyone") e pode refinar ainda mais a saída direcionando a voz.

Geração de imagens (acesso antecipado/lista de permissões)

O Gemini 2.0 oferece suporte à capacidade de gerar texto com imagens inline. Isso permite usar o Gemini para editar imagens em conversas ou gerar saídas multimodais, por exemplo, uma postagem de blog com texto e imagens em uma única vez. Antes, isso exigia a união de vários modelos.

A geração de imagens está disponível como uma versão experimental privada. Ele oferece suporte às seguintes modalidades e recursos:

  • Texto para imagem
    • Exemplo de comando: "Gerencie uma imagem da Torre Eiffel com fogos de artifício em segundo plano".
  • Texto para imagens e texto (intercalado)
    • Exemplo de instrução: "Gerencie uma receita ilustrada de paella."
  • Imagens e texto para imagens e texto (intercalados)
    • Exemplo de comando: (com uma imagem de um cômodo mobiliado) "Que outras cores de sofás funcionariam no meu espaço? Você pode atualizar a imagem?"
  • Edição de imagens (texto e imagem para imagem)
    • Exemplo de instrução: "Edite esta imagem para que ela pareça um desenho animado"
    • Exemplo de comando: [imagem de um gato] + [imagem de um travessseiro] + "Crie um ponto cruzado do meu gato neste travesseiro".
  • Edição de imagens com vários turnos (chat)
    • Exemplos de comandos: [faça upload de uma imagem de um carro azul.] "Transforme este carro em um conversível". "Agora mude a cor para amarelo."
  • Marca-d'água (synthID)

Limitações:

  • A geração de pessoas e a edição de imagens enviadas de pessoas não são permitidas.
  • A geração de imagens só é compatível com os seguintes idiomas: EN, es-MX, ja-JP, zh-CN e hi-IN.
  • A geração de imagens não tem suporte para entradas de áudio ou vídeo.
  • A geração de imagens nem sempre aciona:
    • O modelo só pode gerar texto. Peça explicitamente as saídas de imagem (por exemplo, "gerar uma imagem", "fornecer imagens conforme você avança", "atualizar a imagem").
    • O modelo pode parar de gerar no meio do processo. Tente de novo ou use outro comando.