# Tutorial de API da OpenAI para Iniciantes - URL Original: https://www.techbriefing.com.br/artigos/api-openai-tutorial-iniciantes/ - Data: 2026-04-25 - Autor: Lucas Andrade - Categoria: IA Prática - Tags: OpenAI, API, Tutorial, Desenvolvimento - Resumo: Guia prático para programadores e não-programadores conectarem a API do ChatGPT aos seus sistemas. O passo a passo para gerar suas primeiras chaves e requisições. --- ## Por que aprender a usar a API da OpenAI? ![Ilustração visual para: Tutorial de API da OpenAI para Iniciantes](https://images.unsplash.com/photo-1526374965328-7f61d4dc18c5?auto=format&fit=crop&q=80&w=1200) A interface do ChatGPT é ótima para uso pessoal, mas quando você quer integrar IA nos seus sistemas, automatizar processos ou criar produtos com IA, você precisa da API. A API permite: - Chamar os modelos programaticamente dos seus sistemas - Processar grandes volumes de dados automaticamente - Personalizar completamente o comportamento do modelo - Integrar IA em qualquer linguagem de programação - Controlar custos com precisão Este tutorial cobre tudo que você precisa para começar a usar a API da OpenAI, do zero. ## Passo 1: Configurar sua conta e obter a API key **1. Crie uma conta na OpenAI**: Acesse platform.openai.com e crie uma conta. **2. Adicione créditos**: A API não tem plano gratuito permanente, mas novos usuários recebem créditos iniciais. Para uso contínuo, adicione um cartão de crédito e compre créditos. **3. Crie sua API key**: - Vá em "API keys" no menu lateral - Clique em "Create new secret key" - Dê um nome descritivo (ex: "Projeto-X-Desenvolvimento") - Copie e guarde em local seguro — ela não será exibida novamente **Importante sobre segurança**: Nunca coloque sua API key diretamente no código. Use variáveis de ambiente. ## Passo 2: Instalação e configuração ### Para Python (recomendado para iniciantes) ```bash pip install openai python-dotenv ``` Crie um arquivo `.env` na raiz do projeto: ``` OPENAI_API_KEY=sk-proj-sua-chave-aqui ``` Adicione `.env` ao `.gitignore` para não expor a chave. ### Estrutura básica em Python ```python from openai import OpenAI from dotenv import load_dotenv import os load_dotenv() client = OpenAI(api_key=os.getenv("OPENAI_API_KEY")) ``` ### Para JavaScript/Node.js ```bash npm install openai dotenv ``` ```javascript import OpenAI from 'openai'; import * as dotenv from 'dotenv'; dotenv.config(); const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY }); ``` ## Passo 3: Sua primeira chamada à API ### Chat Completions — o endpoint mais usado ```python response = client.chat.completions.create( model="gpt-4o-mini", # modelo mais econômico para testes messages=[ {"role": "system", "content": "Você é um assistente útil que responde em português."}, {"role": "user", "content": "O que é inteligência artificial em 3 frases?"} ] ) print(response.choices[0].message.content) ``` **Entendendo a estrutura de mensagens**: - `system`: Instruções sobre o comportamento do modelo (o "prompt de sistema") - `user`: A mensagem do usuário - `assistant`: Respostas anteriores do modelo (para manter o histórico de conversa) ### Mantendo uma conversa com histórico ```python conversa = [ {"role": "system", "content": "Você é um assistente de vendas da empresa X."} ] while True: entrada = input("Você: ") if entrada.lower() == "sair": break conversa.append({"role": "user", "content": entrada}) response = client.chat.completions.create( model="gpt-4o-mini", messages=conversa ) resposta = response.choices[0].message.content conversa.append({"role": "assistant", "content": resposta}) print(f"Assistente: {resposta}\n") ``` ## Passo 4: Parâmetros importantes ### Model — escolha o modelo certo | Modelo | Uso recomendado | Custo relativo | |---|---|---| | gpt-4o-mini | Tarefas simples, alto volume | Baixo | | gpt-4o | Tarefas complexas, qualidade alta | Médio | | o3-mini | Raciocínio matemático/lógico | Médio | | o3 | Raciocínio avançado máximo | Alto | Para aprender e testar, use sempre `gpt-4o-mini` — é muito mais barato. ### Temperature — controle de criatividade ```python response = client.chat.completions.create( model="gpt-4o-mini", messages=[{"role": "user", "content": "Escreva um slogan criativo"}], temperature=0.9 # 0 = determinístico, 2 = máximo de variação ) ``` - **0 a 0.3**: Respostas consistentes e previsíveis (ideal para análise, extração de dados) - **0.7 a 1**: Respostas mais criativas e variadas (ideal para escrita criativa) - **Acima de 1**: Muito criativo, pode ser incoerente ### Max tokens — limite o tamanho da resposta ```python response = client.chat.completions.create( model="gpt-4o-mini", messages=[{"role": "user", "content": "Explique machine learning"}], max_tokens=200 # limita a resposta a ~150 palavras ) ``` ### Response format — JSON garantido ```python response = client.chat.completions.create( model="gpt-4o-mini", messages=[ {"role": "system", "content": "Extraia dados do texto e retorne JSON."}, {"role": "user", "content": "João Silva, 35 anos, vendedor em São Paulo"} ], response_format={"type": "json_object"} ) import json dados = json.loads(response.choices[0].message.content) print(dados) # {'nome': 'João Silva', 'idade': 35, 'cargo': 'vendedor', 'cidade': 'São Paulo'} ``` ## Passo 5: Embeddings — busca semântica Embeddings transformam texto em vetores numéricos que capturam o significado semântico. São fundamentais para implementar RAG, busca semântica e sistemas de recomendação. ```python def gerar_embedding(texto): response = client.embeddings.create( model="text-embedding-3-small", # modelo de embedding mais econômico input=texto ) return response.data[0].embedding # Gerar embeddings embedding_produto = gerar_embedding("Notebook Dell XPS 15, 32GB RAM, i9") embedding_busca = gerar_embedding("computador portátil de alta performance") # Calcular similaridade (cosine similarity) import numpy as np def similaridade(vec1, vec2): return np.dot(vec1, vec2) / (np.linalg.norm(vec1) * np.linalg.norm(vec2)) score = similaridade(embedding_produto, embedding_busca) print(f"Similaridade: {score:.3f}") # Próximo de 1 = muito similar ``` ## Passo 6: Function calling — ferramentas para o modelo Function calling permite que o modelo "chame" funções do seu código para buscar dados ou executar ações. ```python import json # Define as ferramentas disponíveis tools = [ { "type": "function", "function": { "name": "buscar_status_pedido", "description": "Busca o status de um pedido pelo número", "parameters": { "type": "object", "properties": { "numero_pedido": { "type": "string", "description": "O número do pedido" } }, "required": ["numero_pedido"] } } } ] # Função real que busca dados def buscar_status_pedido(numero_pedido): # Aqui você consultaria seu banco de dados real return {"status": "Em trânsito", "previsao": "2026-04-28", "transportadora": "Correios"} # Primeira chamada — o modelo decide se precisa usar a ferramenta response = client.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": "Qual o status do pedido 12345?"}], tools=tools, tool_choice="auto" ) # Verificar se o modelo quer usar uma ferramenta if response.choices[0].finish_reason == "tool_calls": tool_call = response.choices[0].message.tool_calls[0] args = json.loads(tool_call.function.arguments) # Executar a função resultado = buscar_status_pedido(args["numero_pedido"]) # Segunda chamada com o resultado da função response_final = client.chat.completions.create( model="gpt-4o", messages=[ {"role": "user", "content": "Qual o status do pedido 12345?"}, response.choices[0].message, {"role": "tool", "tool_call_id": tool_call.id, "content": json.dumps(resultado)} ] ) print(response_final.choices[0].message.content) ``` ## Passo 7: Processamento em batch para alto volume Para processar centenas ou milhares de itens, use o Batch API que é 50% mais barato: ```python import json # Preparar as requisições em formato JSONL requisicoes = [] textos = ["Texto 1 para classificar", "Texto 2 para classificar", ...] # até 50.000 for i, texto in enumerate(textos): requisicoes.append({ "custom_id": f"req-{i}", "method": "POST", "url": "/v1/chat/completions", "body": { "model": "gpt-4o-mini", "messages": [{"role": "user", "content": f"Classifique o sentimento: {texto}"}], "max_tokens": 10 } }) # Salvar arquivo JSONL e submeter batch with open("batch_input.jsonl", "w") as f: for req in requisicoes: f.write(json.dumps(req) + "\n") # Upload do arquivo with open("batch_input.jsonl", "rb") as f: batch_file = client.files.create(file=f, purpose="batch") # Criar o batch batch = client.batches.create( input_file_id=batch_file.id, endpoint="/v1/chat/completions", completion_window="24h" ) print(f"Batch ID: {batch.id}") # Salve para verificar o status depois ``` ## Monitoramento de custos Nunca deixe custos saírem do controle: **1. Configure limites de uso**: Em platform.openai.com > Billing > Usage limits, configure um limite mensal. **2. Monitore no código**: ```python response = client.chat.completions.create(...) # Tokens usados nesta chamada print(f"Tokens usados: {response.usage.total_tokens}") print(f"Custo estimado: ${response.usage.total_tokens * 0.00000015:.6f}") ``` **3. Use o modelo certo**: gpt-4o-mini custa ~20x menos que gpt-4o. Use o menor modelo que resolve seu problema. ## Erros comuns e como resolver **`AuthenticationError`**: API key inválida ou não configurada. Verifique se o `.env` está carregado corretamente. **`RateLimitError`**: Você excedeu os limites de taxa. Implemente exponential backoff: ```python import time def chamar_com_retry(prompt, max_tentativas=3): for tentativa in range(max_tentativas): try: return client.chat.completions.create( model="gpt-4o-mini", messages=[{"role": "user", "content": prompt}] ) except Exception as e: if tentativa == max_tentativas - 1: raise time.sleep(2 ** tentativa) # 1s, 2s, 4s ``` **`ContextLengthExceededError`**: O prompt + histórico excede o limite de tokens do modelo. Reduza o histórico ou use um modelo com janela maior. ### Conclusão Este é o básico para integrar modelos de IA a aplicações tradicionais. Se antes precisávamos ter doutorado em machine learning, hoje só precisamos fazer um POST para a URL correta com nosso token de autenticação. *Esse é o verdadeiro poder da IA nas mãos dos construtores.*
Consultar Glossário de Inteligência Artificial → Você agora tem o conhecimento fundamental para usar a API da OpenAI em projetos reais. Os próximos passos naturais são: 1. **Experimente com casos de uso reais** do seu negócio — encontre um problema e resolva com a API 2. **Explore outros endpoints**: Vision (análise de imagens), TTS/STT (voz) 3. **Estude LangChain ou LlamaIndex** para construir aplicações mais complexas em cima da API 4. **Monitore custos desde o início** — é fácil escalar inadvertidamente A documentação oficial em platform.openai.com/docs é excelente e está constantemente atualizada com novos recursos.