Home / Impara / ChatAnthropic in LangChain: importazione, base_url, streaming, strumenti ed errori
Claude + LangChain. Una sequenza di anelli di catena disegnati a mano, composti da piccole schede di documenti, che collegano un foglio con un prompt a una finestra del modello e a un risultato finale.

ChatAnthropic in LangChain: importazione, base_url, streaming, strumenti ed errori

ChatAnthropic dal langchain-anthropic pacchetto è il modello di chat Claude di LangChain. Incapsula l'SDK Python ufficiale di Anthropic, quindi per indirizzarlo a un gateway basta un argomento, base_url, impostato sulla radice dell'host. Tutto il resto nelle tue catene, nei tuoi agenti e nei tuoi strumenti rimane invariato.

Installazione e importazione

terminale
pip install -U langchain-anthropic
app.py
from langchain_anthropic import ChatAnthropic

llm = ChatAnthropic(
    model="claude-sonnet-5",
    base_url="https://aiprimetech.io",           # host root: the SDK adds /v1/messages
    api_key="your_gateway_key",   # or set ANTHROPIC_API_KEY
)

print(llm.invoke("Say hello in one word.").text)
No /v1 in base_url qui. L'SDK Anthropic sottostante aggiunge /v1/messages automaticamente; aggiungere /v1 produce /v1/v1/messages e un 404 page not found.

Configurazione tramite l'ambiente

base_url è un alias di anthropic_api_urle api_key un alias di anthropic_api_key. Quando non li passi, ChatAnthropic legge ANTHROPIC_API_URL prima, poi ANTHROPIC_BASE_URL, e la chiave da ANTHROPIC_API_KEY. Gli argomenti espliciti hanno sempre la precedenza.

terminale
export ANTHROPIC_API_KEY=your_gateway_key
export ANTHROPIC_API_URL=https://aiprimetech.io
app.py
from langchain_anthropic import ChatAnthropic

llm = ChatAnthropic(model="claude-sonnet-5")   # picks up the gateway from the environment

Streaming

app.py
for chunk in llm.stream("Explain backpressure in two sentences."):
    print(chunk.text, end="", flush=True)

.text raccoglie solo i blocchi di testo di ogni frammento, quindi il risultato rimane pulito anche quando il modello emette blocchi di ragionamento o di uso degli strumenti. Usa lo streaming per le risposte lunghe: una richiesta lunga senza streaming è la causa più comune dei timeout.

Strumenti e output strutturato

tools.py
from langchain_core.tools import tool

@tool
def get_time(city: str) -> str:
    """Return the current local time in a city."""
    return "12:00"

msg = llm.bind_tools([get_time]).invoke("What time is it in Tokyo?")
print(msg.tool_calls)
structured.py
from pydantic import BaseModel

class Weather(BaseModel):
    city: str
    temperature_c: float

print(llm.with_structured_output(Weather).invoke("It is 21 degrees in Lisbon today."))

Tentativi, timeout e max_tokens

max_retries il valore predefinito è 2, come nell'SDK di Anthropic, che ritenta in caso di errori di connessione, 429 e risposte 5xx. timeout (alias di default_request_timeout) è espresso in secondi. Se lasci max_tokens non impostato, viene ricavato dal profilo del modello.

app.py
llm = ChatAnthropic(
    model="claude-sonnet-5",
    base_url="https://aiprimetech.io",
    max_retries=4,
    timeout=120,
    max_tokens=8000,
)

Per i batch, limita il parallelismo per rispettare il limite di concorrenza della tua chiave: llm.batch(inputs, config={"max_concurrency": 3}).

L'alternativa ChatOpenAI

Se il tuo codice è standardizzato su ChatOpenAI, l'endpoint del gateway compatibile con OpenAI supporta anche Claude. Questa modalità richiede /v1 alla fine, al contrario di ChatAnthropic.

app.py
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="claude-sonnet-5", base_url="https://aiprimetech.io/v1", api_key="your_gateway_key")

Preferisci ChatAnthropic per Claude: mantiene le funzionalità native, come la memorizzazione dei prompt nella cache e i blocchi di ragionamento.

Risoluzione dei problemi

Che cosa vedi Causa Soluzione
404 page not found/v1 nel campo di ChatAnthropic base_urlUsa l'URL radice dell'host, https://aiprimetech.io
Model "..." is not supportedUn ID non supportato dal gruppo della tua chiave, oppure un vecchio nome con dataUsa un ID attuale dalla tabella qui sotto
AuthenticationErrorANTHROPIC_API_KEY vuoto nel processo in esecuzione, oppure una chiave per un altro endpointPassa api_key= esplicitamente per fare una prova
RateLimitError: Concurrency limit exceededTroppe chiamate parallele (batch, gather asincrono)max_concurrency nella configurazione del batch
APITimeoutErrorGenerazioni lunghe senza streamingUsa lo streaming o aumenta timeout
ID del modello Usalo per
claude-sonnet-5Scelta predefinita per programmazione e attività degli agenti: veloce, potente, di fascia media.
claude-opus-5-5Ragionamenti più complessi, refactoring estesi, esecuzioni prolungate degli agenti.
claude-fable-5-1Il più capace e il più costoso; riservalo alle attività più difficili.
claude-haiku-4-5Economico e rapido: titoli, riepiloghi, classificazione, piccoli passaggi.

Domande frequenti

Come si importa ChatAnthropic?
pip install -U langchain-anthropic, poi from langchain_anthropic import ChatAnthropic.
Il base_url di ChatAnthropic deve includere /v1?
No. Passa l'URL radice dell'host, ad esempio https://aiprimetech.io;; l'SDK di Anthropic aggiunge /v1/messages. ChatOpenAI funziona al contrario e richiede /v1.
Quali variabili d'ambiente legge ChatAnthropic?
ANTHROPIC_API_KEY per la chiave e ANTHROPIC_API_URL, poi ANTHROPIC_BASE_URL, per l'endpoint quando base_url non viene passato.
base_url è equivalente ad anthropic_api_url?
Sì. base_url è un alias di anthropic_api_url e api_key è un alias di anthropic_api_key.
Inizia a usare Claude in pochi minuti

Ottieni una chiave API: non servono un account Anthropic né una lista d'attesa.

Ottieni la tua chiave API

AI Prime Tech è un gateway API indipendente. Non è affiliato ad Anthropic, non è approvato da Anthropic e non è un suo rivenditore. Claude e i nomi dei modelli correlati sono marchi dei rispettivi proprietari.

Altre guide all'API di Claude

Come ottenere una chiave API di ClaudeI prezzi dell'API Claude, spiegatiIl modo più economico per usare l'API ClaudeCursor illimitato con l'API ClaudeAccesso illimitato a Claude CodeGateway API Claude e accesso diretto ad Anthropic a confrontoUsare Claude tramite un'API compatibile con OpenAII modelli Claude spiegati: un confronto tra Claude Opus, Sonnet, Haiku e Fable — tutti i modelli API Claude, i nomi dei modelli Anthropic e i prezzi (2026)Pagare l'API Claude con criptovaluteAccesso all'API Claude senza lista d'attesaCome ridurre l'utilizzo dei token di ClaudeCline illimitato con l'API ClaudeRoo Code illimitato con l'API ClaudeClaude illimitato negli IDE JetBrainsAider senza limiti con l'API di ClaudeClaude illimitato in VS CodeConfigurazione di OpenCode per Claude: impostazione di opencode.json, modelli ed errori comuniEseguire un agente Hermes senza limiti su ClaudeEseguire OpenClaw senza limiti con ClaudeCosa significa un'API compatibile con AnthropicChiave API di Claude Code — ANTHROPIC_API_KEY: come ottenerla, configurarla e quando usare invece claude setup-tokenCosti dell'API di Claude Code — Prezzi e come ridurliGli errori dell'API Claude spiegati: errore del server 500, sovraccarico 529, limite di frequenza 429, richiesta non valida 400 — e la soluzione per ciascunoCome acquistare crediti per l'API di Claude e perché un credito Claude conviene più di qualsiasi offerta per «acquistare un account Claude»API Claude gratuita: esiste una chiave API di Claude gratuita e che cosa è davvero gratuito nel 2026?API Claude e abbonamento Claude Pro/Max a confronto — Quale scegliereEseguire la CLI di Codex su ClaudeCollegare Claude a n8nInstradare LiteLLM verso ClaudeUsare Claude in Kilo CodeIntegrare Claude in GitHub CopilotCollega Zed a Claude tramite il gatewayCollega Cherry Studio a ClaudeSDK Python di Anthropic: installazione, configurazione di base_url, streaming e gestione degli erroriClaude con Vercel AI SDK: baseURL di createAnthropic, streaming e soluzioni ai problemiEsegui Factory Droid con ClaudeL'API di Claude Code spiegataIntegrare l'API di Claude nella tua applicazioneCome ottenere un utilizzo illimitato di Claude e perché non esiste un «Claude Code craccato»