MODULO 3.3

🔌 Gemini API

Autenticacao, endpoints, SDKs oficiais e integracao programatica com a API do Gemini.

6
Topicos
40
Minutos
Intermed.
Nivel
Pratico
Tipo
1

🔑 Autenticacao

Existem dois metodos principais de autenticacao para a Gemini API: API Key para uso simples e OAuth/Service Account para enterprise.

🔑 API Key

Simples e rapido

  • • Ideal para desenvolvimento
  • • Configuracao em minutos
  • • Passada no header ou query
  • • Limitacoes de seguranca

🔐 Service Account

Enterprise e producao

  • • IAM granular
  • • Audit logs
  • • Rotacao automatica
  • • VPC support

Configurando API Key em Python

import google.generativeai as genai
import os

# Via variavel de ambiente (recomendado)
genai.configure(api_key=os.environ["GOOGLE_API_KEY"])

# Ou direto (apenas para testes)
genai.configure(api_key="AIza...")
2

🐍 Python SDK

O SDK google-generativeai e a forma mais simples de integrar Gemini em aplicacoes Python.

Instalacao e Uso Basico

# Instalacao
pip install google-generativeai

# Uso basico
import google.generativeai as genai

genai.configure(api_key="YOUR_API_KEY")

model = genai.GenerativeModel('gemini-pro')
response = model.generate_content("Explique quantum computing")
print(response.text)

💡 Dica

Use model.count_tokens() para verificar o tamanho do prompt antes de enviar, evitando erros de limite.

3

🟨 JavaScript/Node SDK

Para aplicacoes web e backends Node.js, use o pacote @google/generative-ai.

Uso em Node.js

// Instalacao: npm install @google/generative-ai

const { GoogleGenerativeAI } = require("@google/generative-ai");

const genAI = new GoogleGenerativeAI(process.env.GOOGLE_API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-pro" });

async function run() {
  const result = await model.generateContent("Escreva um haiku");
  console.log(result.response.text());
}
run();
4

🌐 REST API

Para linguagens sem SDK oficial ou integracao direta, use a REST API com cURL ou qualquer HTTP client.

Exemplo cURL

curl -X POST \
  "https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent?key=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [{"text": "Explique machine learning em 3 frases"}]
    }]
  }'
5

🔄 Streaming Responses

Streaming permite receber tokens conforme sao gerados, melhorando a experiencia do usuario.

Streaming em Python

response = model.generate_content(
    "Escreva uma historia longa",
    stream=True
)

for chunk in response:
    print(chunk.text, end="", flush=True)
6

⚠️ Error Handling

APIs falham. Tratar erros corretamente e essencial para aplicacoes robustas.

Erros Comuns

  • 429: Rate limit exceeded
  • 400: Invalid request
  • 403: API key invalid
  • 500: Server error

Estrategias

  • • Retry com exponential backoff
  • • Circuit breaker pattern
  • • Fallback para cache
  • • Logging detalhado

Tratamento Robusto

import time

def generate_with_retry(prompt, max_retries=3):
    for attempt in range(max_retries):
        try:
            return model.generate_content(prompt)
        except Exception as e:
            if "429" in str(e):
                time.sleep(2 ** attempt)  # Exponential backoff
            else:
                raise
    raise Exception("Max retries exceeded")

📚 Resumo do Modulo

Autenticacao - API Key para dev, Service Account para producao
Python SDK - google-generativeai para integracao simples
JavaScript SDK - @google/generative-ai para web e Node
REST API - Acesso direto via HTTP para qualquer linguagem
Streaming - Respostas em tempo real para melhor UX
Error Handling - Retry, backoff e fallbacks para robustez

Proximo Modulo:

3.4 - Function Calling