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