Consumindo Modelos de IA

APIs de LLM

Conceito de API REST, request/response, autenticação por chave e arquitetura básica de integração.

Intermediário 25 min 25 pontos Leitura 0%

Nesta aula você vai

  • Descrever endpoint, headers e body de uma API de LLM
  • Proteger API key no backend
  • Comparar provedores comuns (OpenAI, Anthropic, Google)

APIs de LLM

Objetivos

  • Entender arquitetura básica de integração
  • Nunca expor chave de API no frontend
  • Ler documentação de qualquer provedor com confiança

Anatomia de uma chamada

Padrão comum (OpenAI-compatible usado por dezenas de provedores):

POST https://api.openai.com/v1/chat/completions
Authorization: Bearer sk-...
Content-Type: application/json

{
  "model": "gpt-4o-mini",
  "messages": [
    { "role": "user", "content": "Olá" }
  ]
}

Response (200):

{
  "id": "chatcmpl-...",
  "choices": [
    {
      "message": { "role": "assistant", "content": "Olá! Como posso ajudar?" },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 8,
    "completion_tokens": 12,
    "total_tokens": 20
  }
}

Campos que seu código sempre deve tratar:

  • choices[0].message.content — texto da resposta
  • usage — billing e métricas
  • error (4xx/5xx) — mensagem e código

Provedores principais

Provedor Endpoint base Observação
OpenAI api.openai.com/v1 Referência de mercado
Anthropic api.anthropic.com/v1/messages Formato próprio, excelente em texto longo
Google Gemini generativelanguage.googleapis.com Integração Google Cloud
Groq / Together / OpenRouter Variados OpenAI-compatible, modelos open

Para este curso, exemplos usam formato OpenAI-compatible — portável entre provedores.

Onde guardar a API key

❌ Frontend (React, HTML, app mobile compilado)
❌ Repositório Git
✅ Variável de ambiente no servidor (.env, secrets CI, Vault)
✅ Cloudflare Workers secrets / AWS Parameter Store

Fluxo correto:

Browser → POST /api/chat (seu domínio)
              ↓
         Backend lê process.env.OPENAI_API_KEY
              ↓
         Chama OpenAI

Roles em messages

Role Função
system Regras fixas, persona, formato de saída
user Mensagem do usuário final
assistant Respostas anteriores do modelo (histórico)

Ordem importa: system primeiro, depois alternância user/assistant cronológica.

Headers úteis

  • Authorization: Bearer <key>
  • Content-Type: application/json
  • OpenAI-Organization (opcional, multi-org)
  • Timeout no cliente HTTP — 30–60s; LLM pode demorar

Checklist antes da primeira chamada

  1. Conta criada + billing ativo
  2. Key gerada com escopo mínimo
  3. .env no .gitignore
  4. Endpoint de teste no backend (não no Postman com key exposta em screenshot)

Resumo

  • LLM via HTTP POST + JSON — igual qualquer REST
  • Key só no backend; frontend fala com seu API
  • messages[] + model + parâmetros = contrato padrão
  • Leia usage e error em toda resposta