🔑 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...")
🐍 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.
🟨 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();
🌐 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"}]
}]
}'
🔄 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)
⚠️ 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
Proximo Modulo:
3.4 - Function Calling