Pular para o conteúdo principal

Apresentamos a API do Google Gemini: Descubra o poder dos novos modelos de IA do Gemini

Saiba como usar a API em Python do Gemini e suas várias funções para criar aplicativos habilitados para IA gratuitamente.
Actualizado 15 de jun. de 2024  · 13 min de leitura

O Google Bard tem enfrentado uma concorrência cada vez maior do ChatGPT, mas com o lançamento dos seus modelos de IA do Gemini mais recentes, eles esperam recuperar sua posição no mercado. Em um esforço para melhorar a experiência do usuário, o Google reformulou recentemente a assistência de IA do Bard com os modelos Gemini Pro, tornando-a mais acessível para os usuários que desejam inserir texto e imagens para receber respostas precisas e naturais.

Neste tutorial, exploraremos a API do Google Gemini, que permite criar aplicativos avançados baseados em IA. Ao aproveitar seus recursos avançados, você pode incorporar facilmente entradas de texto e imagem para gerar resultados precisos e contextualmente relevantes. A API Python do Gemini simplifica a integração em seus projetos existentes, permitindo a implementação perfeita de recursos de inteligência artificial de ponta.

O que é Gemini AI?

O Gemini AI é um modelo de inteligência artificial (IA) de ponta criado por meio de um esforço conjunto de várias equipes do Google, como o Google Research e o Google DeepMind. Projetado para ser multifuncional, o Gemini AI pode compreender e processar várias formas de dados, incluindo texto, código, áudio, imagens e vídeos.

A busca do Google DeepMind pela inteligência artificial há muito tempo é motivada pela esperança de usar seus recursos para o benefício coletivo da humanidade. Com isso, o Gemini AI fez avanços significativos na criação de uma nova geração de modelos de IA inspirados na forma como os seres humanos percebem e interagem com o mundo.

Como o maior e mais sofisticado modelo de IA produzido pelo Google até o momento, o Gemini AI foi projetado para ser altamente flexível e lidar com diversos tipos de informações. Sua versatilidade permite que ele seja executado com eficiência em uma variedade de sistemas, desde servidores de data center avançados até dispositivos móveis.

Aqui estão três versões dos modelos Gemini treinados para casos de uso específicos:

  1. Gemini Ultra: A versão mais avançada, capaz de lidar com tarefas complexas.
  2. Gemini Pro: Uma opção bem equilibrada que oferece bom desempenho e escalabilidade.
  3. Gemini Nano: Otimizado para dispositivos móveis, proporcionando o máximo de eficiência.

Gemini Ultra vs GPT4

Fonte da imagem

Entre essas variantes, o Gemini Ultra apresentou um desempenho excepcional, superando o GPT-4 em vários critérios. É o primeiro modelo a superar o desempenho de especialistas humanos no benchmark Massive Multitask Language Understanding, que avalia conhecimentos sobre o mundo e habilidades de resolução de problemas em 57 áreas temáticas. Essa conquista demonstra a capacidade superior de compreensão e solução de problemas do Gemini Ultra.

Se você é iniciante em inteligência artificial, explore o programa de competências Fundamentos de IA. Ele aborda tópicos populares de IA, como ChatGPT, grandes modelos de linguagem e IA generativa.

Configuração do ambiente

Antes de começarmos a usar a API, precisamos obter a chave de API do Google AI for Developers.

1. Clique no botão "Get an API key" (Obter uma chave de API).

image1.png

2. Depois disso, crie o projeto e gere a chave de API.

image16.png

3. Copie a chave da API e adicione uma variável de ambiente chamada "Gemini_API_KEY" em seu sistema. Para criar uma variável de ambiente segura no Kaggle, acesse "Add-ons" e selecione "Secrets". Em seguida, clique no botão "Add a new secret" (Adicionar um novo segredo) para adicionar um rótulo e seu valor correspondente, e salve-o.

image6.png

4. Instale o pacote Gemini Python API usando o pip.

%pip install google-generativeai

5. Configure a API do Gemini adicionando a chave da API. Para acessar o segredo, é necessário criar o objeto UserSecretsClient e, em seguida, fornecer a ele o rótulo.

import google.generativeai as genai
from kaggle_secrets import UserSecretsClient

user_secrets = UserSecretsClient()
gemini_key = user_secrets.get_secret("GEMINI_API_KEY")

genai.configure(api_key = gemini_key)

Gerando a resposta

Nesta seção, aprenderemos a gerar respostas usando o modelo Gemini Pro. Se estiver enfrentando problemas ao executar o código por conta própria, você pode seguir o Kaggle Notebook da API do Gemini.

Agora, verificaremos o acesso ao modelo disponível com a API gratuita. Para isso, execute o código abaixo. Ele exibirá os modelos de geração compatíveis usando a função list_models.

for m in genai.list_models():
    if 'generateContent' in m.supported_generation_methods:
        print(m.name)

Parece que temos acesso a apenas dois modelos, "gemini-pro" e "gemini-pro-vision".

models/gemini-pro
models/gemini-pro-vision

Vamos acessar o modelo "Gemini Pro" e gerar uma resposta fornecendo um prompt simples.

model = genai.GenerativeModel('gemini-pro')

response = model.generate_content("Please provide a list of the most influential people in the world.")

print(response.text)

Conseguimos gerar uma resposta altamente precisa com apenas algumas linhas de código.

image2.png

O Gemini AI pode produzir várias respostas chamadas de candidatas para um prompt, permitindo que você selecione a mais adequada. No entanto, a versão gratuita da API oferece apenas uma opção de candidato.

response.candidates

image7.png

Nosso resultado está no formato Markdown. Vamos corrigir isso usando a ferramenta IPython Markdown. Agora pediremos ao Gemini para gerar código Python.

from IPython.display import Markdown

response = model.generate_content("Build a simple Python web application.")

Markdown(response.text)

O modelo fez um ótimo trabalho. Ele gerou um guia passo a passo com uma explicação de como criar e executar um aplicativo web simples usando o Flask.

image11.png

Streaming

É importante usar o streaming para aumentar a velocidade percebida do aplicativo. Ao ativar o argumento "stream", a resposta será gerada e exibida assim que estiver disponível. Nossa saída será gerada em blocos, portanto, temos que iterar sobre a resposta.

from IPython.display import display

model = genai.GenerativeModel("gemini-pro")
response = model.generate_content(
    "How can I make authentic Italian pasta?", stream=True
)

for chunk in response:
    display(Markdown(chunk.text))
    display(Markdown("_" * 80))

Cada bloco é separado por uma linha tracejada. Como podemos ver abaixo, nosso conteúdo é gerado em blocos. O streaming na API do Gemini é semelhante ao da API da OpenAI e da Anthropic.

image5.png

Ajuste fino da resposta

Podemos ajustar a resposta gerada para atender às nossas necessidades.

No exemplo a seguir, estamos gerando um candidato com um máximo de 1.000 tokens e uma temperatura de 0,7. Além disso, definimos uma sequência de parada, de modo que, quando a palavra "time" aparecer no texto gerado, o processo de geração será automaticamente interrompido.

response = model.generate_content(
    'How to be productive during a burnout stage.',
    generation_config=genai.types.GenerationConfig(
        candidate_count=1,
        stop_sequences=['time'],
        max_output_tokens=1000,
        temperature=0.7)
)

Markdown(response.text)

image10.png

Experimentando o Gemini Pro Vision

Nesta seção, usaremos o Gemini Pro Vision para acessar a multimodalidade do Gemini AI.

Faremos o download da foto de Mayumi Maciel do site pexel.com usando a ferramenta curl.

!curl -o landscape.jpg "https://images.pexels.com/photos/18776367/pexels-photo-18776367/free-photo-of-colorful-houses-line-the-canal-in-burano-italy.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2"

image3.png

Para carregar e visualizar a imagem no Kaggle Notebook, usaremos o pacote Pillow Python.

import PIL.Image

img = PIL.Image.open('landscape.jpg')
display(img)

image15.jpg

Para entender o conteúdo dessa imagem, primeiro precisamos carregar o modelo "gemini-pro-vision" e fornecer a ele um objeto de imagem.

model = genai.GenerativeModel('gemini-pro-vision')

response = model.generate_content(img)

Markdown(response.text)

Ele identificou com precisão o local na imagem e forneceu uma descrição.

A beautiful day in Burano, Italy. The colorful houses and the calm water make this a perfect place to relax and enjoy the scenery.

Vamos alimentar o texto do prompt e o objeto de imagem com a nossa função de geração para fazer a pergunta ao nosso modelo sobre a imagem.

response = model.generate_content(
    ["Can you provide the exact location with coordinates?", img]
)

Markdown(response.text)
45.4408° N, 12.3150° E

Ele forneceu com precisão as coordenadas do local, e nós também verificamos isso adicionando as coordenadas ao Google Maps.

image13.png

Conversas de bate-papo

É possível ter uma conversa com o modelo de IA que mantém o contexto do bate-papo usando o histórico das conversas anteriores. Dessa forma, o modelo pode se lembrar do conteúdo da conversa e fornecer respostas adequadas com base nas interações anteriores.

Basta criar um objeto de bate-papo usando o model.start_chat e fornecê-lo com a primeira mensagem.

model = genai.GenerativeModel('gemini-pro')

chat = model.start_chat(history=[])

chat.send_message("Who created the Mona Lisa?")

for message in chat.history:
    display(Markdown(f'**{message.role}**: {message.parts[0].text}'))

image8.png

Vamos fazer outra pergunta e exibir a resposta no formato de bate-papo.

chat.send_message("What else he created?")

for message in chat.history:
    display(Markdown(f'**{message.role}**: {message.parts[0].text}'))

O modelo se lembrou do contexto e forneceu uma resposta adequada.

image9.png

Incorporações

A API oferece acesso aos modelos de incorporação, uma ferramenta popular para aplicativos com reconhecimento de contexto. Com a simples função em Python, os usuários podem converter seu prompt ou conteúdo em incorporação, permitindo que eles representem palavras, frases ou documentos inteiros como vetores densos que codificam o significado semântico.

Forneceremos à função embed_content o nome do modelo, o conteúdo, o tipo de tarefa e o título.

result = genai.embed_content(
    model="models/embedding-001",
    content="Who created the Mona Lisa?",
    task_type="retrieval_document",
    title="Mona Lisa Research")

print(result['embedding'][:10])
[0.086675204, -0.027617611, -0.015689207, -0.00445945, 0.07286186, 0.00017529335, 0.07243656, -0.018299067, 0.018799499, 0.028495966]

Para converter vários conteúdos na incorporação, você precisa fornecer uma lista de cadeias de caracteres (strings) para o argumento "content".

result = genai.embed_content(
    model="models/embedding-001",
    content=[
        "Who created the Mona Lisa?",
        "What else he created?",
        "When did he died?"
    ],
    task_type="retrieval_document",
    title="Mona Lisa Research 2")

for emb in result['embedding']:
    print(emb[:10],"\n")
[0.07942627, -0.032543894, -0.010346633, -0.0039942865, 0.071596086, -0.0016670177, 0.07821064, -0.011955016, 0.019478166, 0.03784406] 

[0.027897138, -0.030693276, -0.0012639443, 0.0018902065, 0.07171923, -0.011544562, 0.04235154, -0.024570161, 0.013215181, 0.03026724] 

[0.04341321, 0.013262799, -0.0152797215, -0.009688456, 0.07342798, 0.0033503908, 0.05274988, -0.010907041, 0.05933596, 0.019402765]

Inscreva-se no curso Introdução a Incorporações com a API da OpenAI para saber mais sobre modelos de incorporação para aplicativos avançados de IA, como pesquisa semântica e mecanismos de recomendação.

Casos de uso avançados

Para aproveitar todo o potencial da API do Gemini, os desenvolvedores talvez precisem se aprofundar em recursos avançados, como configurações de segurança e API de baixo nível.

  • As configurações de segurança permitem que os usuários configurem o bloqueio de conteúdo e a permissão em prompts e respostas, garantindo a conformidade com as diretrizes da comunidade.
  • A API de baixo nível oferece maior flexibilidade para personalização.
  • As conversas em vários turnospodem ser estendidas usando a classe GenaiChatSession, aprimorando as experiências de conversação.

O uso de recursos avançados permite que os desenvolvedores criem aplicativos mais eficientes e abre novas possibilidades de interação com o usuário.

Conclusão

A API do Gemini abre possibilidades interessantes para os desenvolvedores criarem aplicativos avançados de IA usando entradas visuais e de texto. Seus modelos de última geração, como o Gemini Ultra, ultrapassam os limites do que os sistemas de IA podem compreender e gerar.

O Google tornou a integração da IA aos aplicativos mais simples com o acesso conveniente fornecido por meio de uma API em Python. A API do Gemini oferece uma série de recursos, como geração de conteúdo, incorporação e conversas em vários turnos, tornando a IA mais acessível. O Gemini AI representa um grande avanço na compreensão multifuncional.

Se quiser saber mais, comece sua jornada de desenvolvimento de aplicativos com tecnologia de IA com a API da OpenAI inscrevendo-se no breve curso Trabalhando com a API da OpenAI. Descubra a funcionalidade por trás de aplicativos populares de IA, como o ChatGPT e o DataLab, o notebook de dados habilitado para IA do DataCamp.

Se você é um profissional e não precisa do curso prático, pode explorar a API do OpenAI em Python com nossa folha de dicas.

Temas

Comece sua jornada de IA hoje mesmo!

curso

Generative AI Concepts

2 hr
31.9K
Discover how to begin responsibly leveraging generative AI. Learn how generative AI models are developed and how they will impact society moving forward.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

Python no setor de saúde: Aplicativos de IA em hospitais

Saiba como os aplicativos baseados em python estão transformando o setor de saúde.

Armstrong Asenavi

18 min

tutorial

Guia para iniciantes no uso da API do ChatGPT

Este guia o orienta sobre os conceitos básicos da API ChatGPT, demonstrando seu potencial no processamento de linguagem natural e na comunicação orientada por IA.
Moez Ali's photo

Moez Ali

11 min

tutorial

Tutorial de chamada de função do OpenAI

Saiba como o novo recurso de Chamada de Função da OpenAI permite que os modelos GPT gerem saída JSON estruturada, resolvendo problemas comuns de desenvolvimento causados por saídas irregulares.
Abid Ali Awan's photo

Abid Ali Awan

12 min

tutorial

Introdução ao Text Embeddings com a API OpenAI

Explore nosso guia sobre como usar a API OpenAI para criar incorporações de texto. Descubra suas aplicações na classificação de textos, recuperação de informações e detecção de similaridade semântica.
Zoumana Keita 's photo

Zoumana Keita

7 min

tutorial

Tutorial da API de assistentes da OpenAI

Uma visão geral abrangente da API Assistants com nosso artigo, que oferece uma análise aprofundada de seus recursos, usos no setor, orientação de configuração e práticas recomendadas para maximizar seu potencial em vários aplicativos de negócios.
Zoumana Keita 's photo

Zoumana Keita

14 min

tutorial

Primeiros passos com o Claude 3 e a API do Claude 3

Saiba mais sobre os modelos Claude 3, benchmarks de desempenho detalhados e como acessá-los. Além disso, descubra a nova API Python do Claude 3 para geração de texto, acesso a recursos de visão e streaming.
Abid Ali Awan's photo

Abid Ali Awan

Ver maisVer mais