APIMaster.ai

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