APIMaster.ai

Tutorial Python per l'API Claude 2026 | APIMaster.ai

Come utilizzare l'API Claude con Python. Esempi completi con l'SDK Anthropic nativo e il client compatibile con OpenAI — chat, streaming, visione e chiamata a funzioni — tramite APIMaster.ai.

Tutorial Python per l'API Claude

Questa guida illustra l'utilizzo dell'API Claude in Python sia con l'SDK Anthropic nativo sia con il client compatibile con OpenAI. Tutti gli esempi funzionano con APIMaster.ai: sostituisci il tuo URL di base e la tua chiave API.

Installazione

pip install anthropic          # SDK Anthropic nativo
pip install openai             # Compatibile con OpenAI (opzionale)

Configurazione di base

import anthropic

client = anthropic.Anthropic(
    api_key="YOUR_APIMASTER_KEY",
    base_url="https://apimaster.ai",  # Nessun /v1 per l'SDK Anthropic
)

Oppure con l'SDK OpenAI (più semplice se già usi OpenAI):

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_APIMASTER_KEY",
    base_url="https://apimaster.ai/v1",
)

La tua prima chiamata all'API Claude

import anthropic

client = anthropic.Anthropic(
    api_key="YOUR_APIMASTER_KEY",
    base_url="https://apimaster.ai",
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Spiega la differenza tra liste e tuple in Python."}
    ],
)

print(message.content[0].text)

Prompt di sistema

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=512,
    system="Sei un ingegnere Python senior. Sii conciso e usa esempi di codice.",
    messages=[
        {"role": "user", "content": "Qual è il modo più veloce per appiattire una lista annidata?"}
    ],
)
print(response.content[0].text)

Conversazione multi-turno

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("Cos'è un decoratore in Python?"))
print(chat("Puoi mostrarmi un esempio pratico?"))

Risposte in streaming

Lo streaming restituisce i token man mano che vengono generati — migliore esperienza utente per output lunghi:

with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Scrivi un web scraper Python usando requests e BeautifulSoup."}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
print()  # nuova riga alla fine

Visione: analisi delle immagini

Claude Sonnet e Opus supportano input di immagini (base64 o URL):

import base64

with open("chart.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": "Riassumi cosa mostra questo grafico."},
            ],
        }
    ],
)
print(response.content[0].text)

Uso di strumenti (chiamata a funzioni)

tools = [
    {
        "name": "get_weather",
        "description": "Ottieni il meteo attuale per una città",
        "input_schema": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "Nome della città"},
            },
            "required": ["city"],
        },
    }
]

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=256,
    tools=tools,
    messages=[{"role": "user", "content": "Che tempo fa a Tokyo?"}],
)

# Controlla se Claude vuole chiamare uno strumento
if response.stop_reason == "tool_use":
    tool_call = next(b for b in response.content if b.type == "tool_use")
    print(f"Strumento: {tool_call.name}, Input: {tool_call.input}")

Utilizzo asincrono

import asyncio
import anthropic

async def main():
    client = anthropic.AsyncAnthropic(
        api_key="YOUR_APIMASTER_KEY",
        base_url="https://apimaster.ai",
    )
    response = await client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=256,
        messages=[{"role": "user", "content": "Ciao!"}],
    )
    print(response.content[0].text)

asyncio.run(main())

Gestione degli errori

import anthropic

try:
    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=256,
        messages=[{"role": "user", "content": "Ciao"}],
    )
except anthropic.AuthenticationError:
    print("Chiave API non valida")
except anthropic.RateLimitError:
    print("Limite di velocità — aggiungi logica di ripetizione")
except anthropic.APIStatusError as e:
    print(f"Errore API {e.status_code}: {e.message}")

Scegliere il modello Claude giusto per progetti Python

Attività Modello Motivo
Chatbot, Domande e Risposte claude-haiku-4-5 Veloce + economico
Generazione di codice claude-sonnet-4-6 Miglior rapporto qualità-prezzo
Ragionamento complesso claude-opus-4-8 Massima precisione
Analisi di documenti claude-sonnet-4-6 Contesto da 1 milione

Ottieni l'accesso all'API Claude

Domande frequenti

Come installo la libreria Python per l'API Claude? Esegui pip install anthropic per l'SDK ufficiale, oppure pip install openai per utilizzare l'endpoint compatibile con OpenAI di APIMaster con i modelli Claude.

Quale SDK Python dovrei usare per l'API Claude? L'SDK anthropic è la scelta ufficiale e supporta tutte le funzionalità specifiche di Claude (uso di strumenti, visione, streaming). L'SDK openai funziona tramite il livello di compatibilità di APIMaster — utile se già usi OpenAI e vuoi cambiare modello.

Come faccio a ricevere le risposte in streaming dell'API Claude in Python? Passa stream=True con la libreria openai, oppure usa client.messages.stream() con l'SDK anthropic. Vedi l'esempio di streaming sopra.

L'API Claude supporta la chiamata a funzioni (tool use)? Sì — Claude supporta l'uso di strumenti sia nell'SDK Anthropic nativo sia attraverso l'endpoint compatibile con OpenAI di APIMaster usando il parametro standard tools.

Qual è la finestra di contesto massima per Claude in Python? Claude Sonnet 4.6 e Opus 4.8 supportano 1 milione di token ciascuno. Puoi passare documenti molto lunghi direttamente nell'array messages.

Registrati su APIMaster.ai per ottenere l'accesso all'API Claude tramite un endpoint unificato, con prezzi in tempo reale e dati di verifica delle impronte digitali.

Vedi anche: Prezzi dell'API Claude · Come ottenere una chiave API Claude