Tutorial da API Claude em Python 2026 | APIMaster.ai
Como usar a API Claude com Python. Exemplos completos usando o SDK Anthropic e o cliente compatível com OpenAI — chat, streaming, visão e chamada de funções — via APIMaster.ai.
Tutorial da API Claude em Python
Este guia aborda o uso da API Claude em Python com o SDK nativo da Anthropic e o cliente compatível com OpenAI. Todos os exemplos funcionam com APIMaster.ai — substitua pela sua própria URL base e chave de API.
Instalação
pip install anthropic # SDK nativo da Anthropic
pip install openai # Compatível com OpenAI (opcional)
Configuração Básica
import anthropic
client = anthropic.Anthropic(
api_key="SUA_CHAVE_APIMASTER",
base_url="https://apimaster.ai", # Sem /v1 para o SDK Anthropic
)
Ou com o SDK OpenAI (mais fácil se você já usa OpenAI):
from openai import OpenAI
client = OpenAI(
api_key="SUA_CHAVE_APIMASTER",
base_url="https://apimaster.ai/v1",
)
Sua Primeira Chamada à API Claude
import anthropic
client = anthropic.Anthropic(
api_key="SUA_CHAVE_APIMASTER",
base_url="https://apimaster.ai",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "Explique a diferença entre listas e tuplas em Python."}
],
)
print(message.content[0].text)
Prompts de Sistema
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=512,
system="Você é um engenheiro Python sênior. Seja conciso e use exemplos de código.",
messages=[
{"role": "user", "content": "Qual a maneira mais rápida de achatar uma lista aninhada?"}
],
)
print(response.content[0].text)
Conversa com Múltiplas Interações
conversation = []
def chat(user_message):
conversation.append({"role": "user", "content": user_message})
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=conversation,
)
assistant_message = response.content[0].text
conversation.append({"role": "assistant", "content": assistant_message})
return assistant_message
print(chat("O que é um decorador em Python?"))
print(chat("Você pode me mostrar um exemplo prático?"))
Respostas em Streaming
Streaming retorna tokens conforme são gerados — melhor experiência do usuário para saídas longas:
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "Escreva um web scraper em Python usando requests e BeautifulSoup."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
print() # nova linha no final
Visão: Analisando Imagens
Claude Sonnet e Opus suportam entradas de imagem (base64 ou URL):
import base64
with open("grafico.png", "rb") as f:
image_data = base64.standard_b64encode(f.read()).decode("utf-8")
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=512,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": image_data,
},
},
{"type": "text", "text": "Resuma o que este gráfico mostra."},
],
}
],
)
print(response.content[0].text)
Uso de Ferramentas (Chamada de Funções)
tools = [
{
"name": "obter_clima",
"description": "Obter clima atual para uma cidade",
"input_schema": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "Nome da cidade"},
},
"required": ["city"],
},
}
]
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=256,
tools=tools,
messages=[{"role": "user", "content": "Como está o clima em Tóquio?"}],
)
# Verificar se Claude quer chamar uma ferramenta
if response.stop_reason == "tool_use":
tool_call = next(b for b in response.content if b.type == "tool_use")
print(f"Ferramenta: {tool_call.name}, Entrada: {tool_call.input}")
Uso Assíncrono
import asyncio
import anthropic
async def main():
client = anthropic.AsyncAnthropic(
api_key="SUA_CHAVE_APIMASTER",
base_url="https://apimaster.ai",
)
response = await client.messages.create(
model="claude-sonnet-4-6",
max_tokens=256,
messages=[{"role": "user", "content": "Olá!"}],
)
print(response.content[0].text)
asyncio.run(main())
Tratamento de Erros
import anthropic
try:
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=256,
messages=[{"role": "user", "content": "Olá"}],
)
except anthropic.AuthenticationError:
print("Chave de API inválida")
except anthropic.RateLimitError:
print("Limite de taxa — adicione lógica de repetição")
except anthropic.APIStatusError as e:
print(f"Erro de API {e.status_code}: {e.message}")
Escolhendo o Modelo Claude Certo para Projetos Python
| Tarefa | Modelo | Motivo |
|---|---|---|
| Chatbots, Perguntas e Respostas | claude-haiku-4-5 | Rápido + barato |
| Geração de código | claude-sonnet-4-6 | Melhor equilíbrio |
| Raciocínio complexo | claude-opus-4-8 | Maior precisão |
| Análise de documentos | claude-sonnet-4-6 | Contexto de 1M |
Obter Acesso à API Claude
Perguntas Frequentes
Como instalo a biblioteca Python da API Claude?
Execute pip install anthropic para o SDK oficial, ou pip install openai para usar o endpoint compatível com OpenAI do APIMaster com modelos Claude.
Qual SDK Python devo usar para a API Claude?
O SDK anthropic é a escolha oficial e suporta todos os recursos específicos do Claude (uso de ferramentas, visão, streaming). O SDK openai funciona através da camada de compatibilidade do APIMaster — útil se você já usa OpenAI e deseja trocar de modelos.
Como faço streaming de respostas da API Claude em Python?
Passe stream=True com a biblioteca openai, ou use client.messages.stream() com o SDK anthropic. Veja o exemplo de streaming acima.
A API Claude suporta chamada de funções (uso de ferramentas)?
Sim — Claude suporta uso de ferramentas tanto no SDK nativo da Anthropic quanto através do endpoint compatível com OpenAI do APIMaster usando o parâmetro padrão tools.
Qual é o tamanho máximo da janela de contexto do Claude em Python?
Claude Sonnet 4.6 e Opus 4.8 suportam 1 milhão de tokens cada. Você pode passar documentos muito longos diretamente no array messages.
Registre-se em APIMaster.ai para obter acesso à API Claude através de um endpoint unificado, com preços em tempo real e dados de verificação de impressão digital.
Veja também: Preços da API Claude · Como Obter uma Chave de API Claude