Se você é desenvolvedor, engenheiro de DevOps ou SRE, provavelmente já usou o Gemini (ou outro LLM) para tirar dúvidas, gerar um comando kubectl ou até mesmo para “debugar” um código.
Mas há uma grande diferença entre usar o chat e construir com o modelo por trás dele.
O verdadeiro poder para nós, desenvolvedores, está na API do Gemini. Ela permite que você integre o poder da IA generativa diretamente em seus aplicativos, scripts de automação e pipelines de CI/CD.
Neste guia prático, vamos parar de conversar com a interface web e começar a “dar ordens” via código. Vamos construir.
O que vamos cobrir:
- API vs. Chat: A diferença crucial.
- O Ambiente: Como obter sua chave de API gratuita no Google AI Studio.
- O “Hello, World!”: Sua primeira chamada de API com Python (prompt de texto).
- O “UAU!” da Multimodalidade: Fazer perguntas sobre imagens (ex: screenshots de erros).
Vamos focar no Google AI Studio, que é a forma mais rápida e direta de começar (e possui um free tier generoso). Deixaremos o Vertex AI (a plataforma enterprise) para outro dia.
1. Preparando o Ambiente: Sua Chave para a IA
Antes de escrever qualquer código, você precisa de uma chave de API.
- Acesse o Google AI Studio: Vá para aistudio.google.com.
- Faça login com sua conta Google.
- Obtenha sua Chave: No menu à esquerda, clique em “Get API key“.
- Crie uma Chave: Clique em “Create API key in new project“. Copie a chave gerada.
⚠️ Alerta de Segurança: NUNCA “hardcode” sua chave! Não coloque a chave direto no seu código. A melhor prática é usar variáveis de ambiente.
Em seu terminal (Linux/macOS), faça:
Bash
export GOOGLE_API_KEY='SUA_CHAVE_API_AQUI'(No Windows, use
set GOOGLE_API_KEY=SUA_CHAVE_API_AQUI)
Agora, vamos instalar o SDK do Google para Python:
Bash
pip install google-generativeai
2. “Hello, World!” com Gemini (Prompt de Texto)
Vamos fazer nossa primeira requisição. Crie um arquivo chamado app_texto.py.
Este script vai carregar sua chave de API do ambiente, se conectar ao modelo gemini-pro (ótimo para tarefas de texto) e fazer uma pergunta.
app_texto.py
Python
import google.generativeai as genai
import os
# Configura a API Key - Pega da variável de ambiente
try:
genai.configure(api_key=os.environ["GOOGLE_API_KEY"])
except KeyError:
print("Erro: A variável de ambiente GOOGLE_API_KEY não foi definida.")
exit(1)
# Inicializa o modelo
# Usamos 'gemini-pro' para prompts de texto simples
model = genai.GenerativeModel('gemini-pro')
# Pergunta que queremos fazer
prompt = "Qual comando 'kubectl' lista todos os pods em todos os namespaces?"
# Envia o prompt para o modelo
response = model.generate_content(prompt)
# Imprime a resposta
print("Sua pergunta:")
print(prompt)
print("-" * 30)
print("Resposta do Gemini:")
print(response.text)
Para rodar:
Bash
python app_texto.py
Resultado esperado:
Sua pergunta:
Qual comando 'kubectl' lista todos os pods em todos os namespaces?
------------------------------
Resposta do Gemini:
`kubectl get pods --all-namespaces`
ou
`kubectl get pods -A`
Simples assim! Você acabou de executar sua primeira integração. O objeto response contém outros metadados, mas response.text é o que queremos na maioria das vezes.
3. O Poder da Multimodalidade: Mais que Palavras
O grande diferencial do Gemini é ser multimodal. Ele entende texto, imagens, áudio e vídeo em um único prompt.
Vamos usar o modelo gemini-pro-vision para enviar uma imagem (como um screenshot de erro ou um gráfico) e fazer uma pergunta sobre ela.
Primeiro, instale a biblioteca Pillow para ajudar a manipular imagens:
Bash
pip install pillow
Agora, pegue uma imagem (ex: grafico.png ou erro.jpg) e coloque na mesma pasta. Crie o arquivo app_imagem.py.
app_imagem.py
Python
import google.generativeai as genai
import os
import PIL.Image # Importa a biblioteca Pillow
# Configura a API Key
try:
genai.configure(api_key=os.environ["GOOGLE_API_KEY"])
except KeyError:
print("Erro: A variável de ambiente GOOGLE_API_KEY não foi definida.")
exit(1)
# Carrega a imagem do disco
try:
img = PIL.Image.open('sua-imagem.jpg') # <-- TROQUE O NOME AQUI
except FileNotFoundError:
print("Erro: Arquivo 'sua-imagem.jpg' não encontrado.")
exit(1)
# Inicializa o modelo 'gemini-pro-vision'
model = genai.GenerativeModel('gemini-pro-vision')
# O prompt agora é uma LISTA:
# contendo o texto e a imagem
prompt_parts = [
"O que este screenshot de erro está me dizendo? Seja técnico.",
img,
]
# Envia o prompt multimodal
response = model.generate_content(prompt_parts)
print("Resposta do Gemini Vision:")
print(response.text)
Para rodar (depois de salvar uma imagem como sua-imagem.jpg):
Bash
python app_imagem.py
Imagine as possibilidades:
- Enviar um screenshot de um dashboard do Grafana e perguntar: “Quais métricas estão anômalas?”
- Enviar um log de erro e perguntar: “Qual a causa raiz provável?”
- Enviar um diagrama de arquitetura e pedir: “Gere um template de Terraform para esta infra.”
4. Casos de Uso Práticos para Devs e DevOps
Agora que você sabe o como, aqui estão algumas ideias para o porquê. Você pode usar essa API para:
- Automação de Ops: Criar um bot de Slack que recebe um log de erro, envia para a API do Gemini e responde com a sugestão de correção.
- Geração de Configs: “Gere um
Dockerfileotimizado para uma aplicação Flask.” - Geração de Testes: “Dado este bloco de código Python, escreva os testes unitários (pytest) para ele.”
- Revisão de Código (PRs): Integrar com um GitHub Action para fazer um “primeiro review” em um Pull Request, buscando por bugs comuns ou código “smells”.
- Análise de Logs: “Dado este log de 500 linhas do Nginx, resuma os 3 erros mais comuns.”
Conclusão: Qual o Próximo Passo?
Hoje, você foi de um usuário do Gemini para um desenvolvedor com o Gemini.
Você aprendeu a configurar seu ambiente, obter uma chave de API, fazer um prompt de texto simples e, o mais importante, usar o poder da multimodalidade para analisar imagens.
O próximo passo é pegar um problema real do seu dia a dia. Aquela tarefa manual chata? Aquele log que você nunca entende de primeira? Tente automatizá-lo ou analisá-lo com a API.
O que você vai construir? Deixe nos comentários!