Integrar OpenAI e Gemini em APIs Node.js com segurança

May 14, 2026 (1d ago)

Problema

Chave no app mobile, prompt concatenado sem sanitização e ausência de timeout — fila de requests estoura custo e SLA. “IA no backend” virou script frágil.

Solução

Toda chamada a modelo atrás de serviço server-side com rate limit, quota por tenant, logging sem dados sensíveis e retries exponenciais só onde idempotente. Abstrair provedor (LLMProvider) para trocar OpenAI ↔ Gemini sem reescrever casos de uso.

Arquitetura

Client → sua API → LLMProvider → OpenAI/Gemini
              ↘ cache de respostas (opcional) + moderation

Código

export async function summarizeTicket(text: string) {
  const truncated = text.slice(0, 12_000); // política explícita
  const res = await openai.chat.completions.create({
    model: "gpt-4.1-mini",
    messages: [
      { role: "system", content: "Resuma em 5 bullets objetivos." },
      { role: "user", content: truncated },
    ],
    max_tokens: 400,
    temperature: 0.2,
  });
  return res.choices[0]?.message?.content ?? "";
}

Performance

Batch onde fizer sentido; cache semântico cuidadoso; modelos menores para triagem e grandes só para etapa final.

Melhorias futuras

Evals automatizados; tracing por trace_id; fallback multi-provedor.

Conclusão

IA em 2026 é dependência externa como pagamento ou e-mail. Tratar assim no código é o que diferencia experimento de feature de produto.