TutorialtutorialTier 2 · IniciadoFeature· Fácil· PT25M

API da OpenAI com Python: Do Primeiro Request ao Streaming

Tutorial prático da API OpenAI em Python: autenticação, chat completions, streaming e structured outputs.

· Atualizado em 24 de maio de 2026por Redação SWEN.AI
API da OpenAI com Python: Do Primeiro Request ao Streaming

<h2>Preparando o Ambiente</h2><p>Antes de fazer sua primeira chamada à API da OpenAI, você precisa de três coisas: Python 3.9 ou superior instalado, uma API key da OpenAI, e a biblioteca oficial. Instale com pip install openai e armazene sua chave de forma segura — nunca diretamente no código. Crie um arquivo .env com OPENAI_API_KEY=sk-... e use python-dotenv para carregar automaticamente.</p><h2>Sua Primeira Chamada à API</h2><p>Com a biblioteca instalada, uma chamada de chat completion leva cinco linhas de código. Importe o cliente OpenAI, instancie com a API key, e chame client.chat.completions.create passando o modelo (gpt-4o-mini para começar — mais barato e rápido) e uma lista de mensagens com role e content. A resposta vem em response.choices[0].message.content.</p><p>O parâmetro messages é uma lista de dicionários. O primeiro geralmente tem role system definindo o comportamento do modelo. Os seguintes alternam entre user e assistant para manter o contexto da conversa. Para uma pergunta simples, basta um system message e um user message.</p><h2>Entendendo os Parâmetros</h2><p>Os parâmetros mais importantes são temperature, max_tokens e model. Temperature controla a criatividade: 0 para respostas determinísticas e factuais, 0.7 para conteúdo criativo. Max_tokens limita o tamanho da resposta — defina sempre para evitar gastos inesperados. O modelo define custo e qualidade: gpt-4o-mini para tarefas simples, gpt-4o para raciocínio complexo.</p><h2>Implementando Streaming</h2><p>Para respostas longas, streaming mostra o texto sendo gerado em tempo real, igual ao ChatGPT. Adicione stream=True na chamada e itere sobre a resposta com um loop for. Cada chunk contém um pedaço do texto em chunk.choices[0].delta.content. Imprima com end="" e flush=True para exibir sem quebras de linha extras.</p><p>Streaming não muda o custo — os tokens são os mesmos. A vantagem é puramente de experiência: o usuário vê a resposta aparecer progressivamente em vez de esperar vários segundos por um bloco de texto completo.</p><h2>Tratamento de Erros</h2><p>A API pode falhar por diversos motivos: rate limit, chave inválida, créditos esgotados ou timeout. Importe as exceções da biblioteca — RateLimitError, AuthenticationError, APIConnectionError — e trate cada uma adequadamente. Para rate limits, implemente retry com backoff exponencial usando a biblioteca tenacity ou um simples loop com time.sleep crescente. Sempre valide que sua API key está configurada antes de fazer a primeira chamada, exibindo uma mensagem clara em vez de um traceback genérico.</p>

Salve seu progresso de aprendizado

Crie sua conta gratuita no SWEN.AI para acompanhar as aulas concluídas

Salvar meu progresso

Tutoriais relacionados

📚 Guias Completos no CF Gauss

CF Gauss por Luis Roquette — especialista em IA para empresas brasileiras