Por que usar a OpenAI API com Python?
A OpenAI API com Python é o caminho mais rápido para integrar IA em produtos reais. Com o SDK oficial, você tem acesso ao GPT-4o, DALL-E, Whisper e Embeddings com poucas linhas de código.
Instalação e setup inicial
pip install openai python-dotenv
Crie .env na raiz do projeto:
OPENAI_API_KEY=sua-chave-aqui
Passo 1 — Primeira chamada ao GPT-4o
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Explique async/await em Python em 3 linhas"}]
)
print(response.choices[0].message.content)
Passo 2 — System prompts e conversas multi-turn
history = [
{"role": "system", "content": "Você é um especialista em Python. Responda em português."}
]
history.append({"role": "user", "content": "O que é uma list comprehension?"})
response = client.chat.completions.create(model="gpt-4o", messages=history)
resposta = response.choices[0].message.content
history.append({"role": "assistant", "content": resposta})
Passo 3 — Streaming de respostas
stream = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Escreva um conto de ficção científica"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
Passo 4 — Function Calling (Tool Use)
Permite que o GPT chame funções Python reais quando necessário:
tools = [{"type":"function","function":{"name":"buscar_clima","description":"Retorna clima da cidade","parameters":{"type":"object","properties":{"cidade":{"type":"string"}}}}}]
response = client.chat.completions.create(model="gpt-4o", messages=messages, tools=tools)
# Verifica se GPT quer chamar a função e executa
Passo 5 — Embeddings para busca semântica
embedding = client.embeddings.create(input="texto para busca", model="text-embedding-3-small")
vector = embedding.data[0].embedding # lista de 1536 floats
Deploy em produção
Melhores práticas: rate limiting com tenacity, cache de respostas para prompts idênticos, logging de custo por request, timeout configurado, e variáveis de ambiente nunca hardcoded.
