Gemini é a nova inteligência da Google lancada no início de dezembro. Ele pode ser usado sem custos através do Bard e Pixel 8. Além disso, a Gemini API está disponível para acesso direto através do Python e outras linguagens de programação. O acesso básico à Gemini API foi apresentado nesse post. Na postagem de hoje, o foco será em como usar o modelo Pro-Vision e o Chat através da Gemini API.
Para acompanhar a parte prática do post, será necessário ter uma chave de acesso para a Gemini API como explicado aqui. Também é preciso instalar a biblioteca google-generativeai.
Modelos Multimodais Disponíveis na Gemini API
Gemini é uma série de modelos de inteligência artificial generativa multimodal. Existem 3 tamanhos de modelos (Nano, Pro e Ultra). A Gemini API disponibiliza o tamanho Pro. Porém, ela possui mais de um modelo.
No post anterior, mostramos como usar um modelo que aceita texto como entrada e produz texto como saída. Neste post, demonstraremos como usar o modelo Pro-Vision para interações com prompts de textos e imagens. Também apresentaremos o Chat do modelo Gemini-Pro.
Modelo Pro-Vision: Pacotes e Key
Para interagir com o Gemini com prompts com textos e imagens, é preciso selecionar o modelo Pro-Vision. Demonstraremos como isso pode ser feito na prática.
Para acompanhar essa parte do post, crie um arquivo Python que pode se chamar gemini_vision.py. No início do arquivo, importe os pacotes requeridos e inclua sua API key como mostrado no trecho abaixo. Não se esqueça de substituir SUA_API_KEY pela sua key (linha 5).
import google.generativeai as genai
import os
from PIL import Image
os.environ['GOOGLE_API_KEY'] = "SUA_API_KEY"
genai.configure(api_key = os.environ['GOOGLE_API_KEY'])
Note que, para trabalhar com imagens, é preciso ter a biblioteca Pillow instalada. Se você ainda não tem, a instalação pode ser feita com pip:
pip install Pillow
Também é possível fazer a instalação através do conda:
conda install -c anaconda pillow
Gemini API: Modelo Pro-Vision
Dando sequência ao nosso código Python, em seguida, definimos o modelo:
vision_model = genai.GenerativeModel('gemini-pro-vision')
Com isso, já é possível interagir mediante prompts com imagens. Para o nosso primeiro exemplo, solicitaremos que o Gemini realize a descrição de uma foto. No código Python, usamos o Pillow para abrir a imagem e depois criamos um prompt com nossa solicitação. Substitua LOCALIZAÇÃO DA SUA IMAGEM pela sua foto. Use qualquer foto. A nossa imagem veio do pexels.
image = Image.open('LOCALIZAÇÃO DA SUA IMAGEM')
response = vision_model.generate_content(["Escreva um texto de cerca de 100 palavras sobre essa foto.", image])
print(response.text)
Essa é a foto que usamos.
E essa é a resposta.
A foto mostra um grupo de crianças sorridentes e felizes. Elas estão fazendo gestos de paz e vitória com as mãos. As crianças estão usando roupas simples, mas estão bem cuidadas. O fundo da foto é um muro de tijolos. A foto foi tirada em um dia ensolarado. As crianças estão felizes por estarem juntas e por poderem brincar. Elas são o futuro do mundo, e representam a esperança de um futuro melhor.
Modelo Pro-Vision para Fazer o Jantar
Em seguida, testamos uma interação um pouco mais elaborada. Nossa imagem agora mostra vários alimentos. Solicitaremos que o Gemini crie uma receita a partir dos ingredientes da foto abaixo.
O trecho de código com prompt de imagem e texto está demonstrado abaixo:
image = Image.open('LOCALIZAÇÃO DA SUA IMAGEM')
response = vision_model.generate_content(["Crie uma receita usando os ingredientes da foto", image])
print(response.text)
Essa é a receita obtida.
**Sopa de legumes**
Ingredientes:
- 1 cebola picada
- 2 dentes de alho picados
- 1 talo de aipo picado
- 1 cenoura picada
- 1 batata picada
- 1 xícara de chá de vagem picada
- 1 xícara de chá de brócolis picado
- 1 xícara de chá de couve-flor picada
- 1 xícara de chá de água
- 1 colher de sopa de azeite de oliva
- Sal e pimenta a gosto
Modo de preparo:
1. Em uma panela, aqueça o azeite de oliva e refogue a cebola, o alho, o aipo, a cenoura, a batata, a vagem, o brócolis, a couve-flor e o gengibre.
2. Adicione a água, o sal e a pimenta e deixe cozinhar por 20 minutos.
3. Sirva em seguida.
Gemini API para Chats
Gemini também pode ser usado como chatbot. Para exemplificar como isso pode ser feito, criaremos um novo código Python que pode se chamar gemini_chat.py. O início do código é parecido com o anterior. Copie o trecho abaixo.
import google.generativeai as genai
import os
os.environ['GOOGLE_API_KEY'] = "SUA_API_KEY"
genai.configure(api_key = os.environ['GOOGLE_API_KEY'])
Após esse trecho, definimos o modelo que será usado. Porém, agora é preciso especificar que queremos iniciar uma conversa (chat). Insira o trecho no seu código.
model = genai.GenerativeModel('gemini-pro')
chat = model.start_chat(history=[])
Em seguida faremos uma pequena interação para demonstrar como usar a função chat. Note que, para que sua interação seja mais dinâmica, você pode usar o Ipython ou digitar o código diretamente num terminal Python.
O trecho de código abaixo mostra a interação que testamos. Veja que usamos o comando send_message para enviar nossas mensagens. Após a segunda resposta, vamos imprimir a opção chat.history. Ela mostra toda a interação que ocorreu durante o chat até aquele momento.
response = chat.send_message("Escreva uma frase com um conselho para a vida com o nome do autor")
print(response.text)
response = chat.send_message("Quem foi o autor da frase?")
print(response.text, chat.history)
Essas são as respostas obtidas.
"Uma mente quieta é uma mente poderosa." - Dalai Lama
Dalai Lama
Dalai Lama é o título dado ao líder espiritual do budismo tibetano e ao chefe de Estado do Tibete. O atual Dalai Lama é Tenzin Gyatso, o 14º Dalai Lama.
Dalai Lama é conhecido por seus ensinamentos sobre compaixão, paz e não violência. Ele também é um defensor dos direitos humanos e da proteção do meio ambiente.
A frase "Uma mente quieta é uma mente poderosa" é um dos ensinamentos mais famosos do Dalai Lama. Ela significa que, quando nossa mente está tranquila e em paz, somos capazes de pensar com mais clareza, tomar decisões melhores e lidar com o estresse de forma mais eficaz.
Podemos alcançar uma mente quieta por meio da meditação, da ioga e de outras práticas que nos ajudam a relaxar e a nos concentrar no momento presente.
E essa é a chat.history com a história das interações.
[parts {
text: "Escreva uma frase com um conselho para a vida com o nome do autor"
}
role: "user"
, parts {
text: "\"Uma mente quieta é uma mente poderosa.\" - Dalai Lama"
}
role: "model"
, parts {
text: "Quem foi o autor da frase?"
}
role: "user"
, parts {
text: "Dalai Lama\n\nDalai Lama é o título dado ao líder espiritual do budismo tibetano e ao chefe de Estado do Tibete. O atual Dalai Lama é Tenzin Gyatso, o 14º Dalai Lama.\n\nDalai Lama é conhecido por seus ensinamentos sobre compaixão, paz e não violência. Ele também é um defensor dos direitos humanos e da proteção do meio ambiente.\n\nA frase \"Uma mente quieta é uma mente poderosa\" é um dos ensinamentos mais famosos do Dalai Lama. Ela significa que, quando nossa mente está tranquila e em paz, somos capazes de pensar com mais clareza, tomar decisões melhores e lidar com o estresse de forma mais eficaz.\n\nPodemos alcançar uma mente quieta por meio da meditação, da ioga e de outras práticas que nos ajudam a relaxar e a nos concentrar no momento presente."
}
role: "model"
]
Com esse código, você já pode iniciar um pequeno chat com o Gemini.