Source: https://aiprimetech.io/it/learn/use-claude-api-with-langchain/ [Home](/it/) / [Impara](/it/learn/) / ChatAnthropic in LangChain: importazione, base_url, streaming, strumenti ed errori # 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 terminaleCopia ``` pip install -U langchain-anthropic ``` app.pyCopia ``` 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. terminaleCopia ``` export ANTHROPIC_API_KEY=your_gateway_key export ANTHROPIC_API_URL=https://aiprimetech.io ``` app.pyCopia ``` from langchain_anthropic import ChatAnthropic llm = ChatAnthropic(model="claude-sonnet-5") # picks up the gateway from the environment ``` ## Streaming app.pyCopia ``` 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.pyCopia ``` 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.pyCopia ``` 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.pyCopia ``` 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.pyCopia ``` 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_url | Usa l'URL radice dell'host, https://aiprimetech.io | Model "..." is not supported | Un ID non supportato dal gruppo della tua chiave, oppure un vecchio nome con data | Usa un ID attuale dalla tabella qui sotto | AuthenticationError | ANTHROPIC_API_KEY vuoto nel processo in esecuzione, oppure una chiave per un altro endpoint | Passa api_key= esplicitamente per fare una prova | RateLimitError: Concurrency limit exceeded | Troppe chiamate parallele (batch, gather asincrono) | max_concurrency nella configurazione del batch | APITimeoutError | Generazioni lunghe senza streaming | Usa lo streaming o aumenta timeout | ID del modello | Usalo per | claude-sonnet-5 | Scelta predefinita per programmazione e attività degli agenti: veloce, potente, di fascia media. | claude-opus-5-5 | Ragionamenti più complessi, refactoring estesi, esecuzioni prolungate degli agenti. | claude-fable-5-1 | Il più capace e il più costoso; riservalo alle attività più difficili. | claude-haiku-4-5 | Economico 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](/register) 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 Claude](/it/learn/how-to-get-a-claude-api-key/)[I prezzi dell'API Claude, spiegati](/it/learn/claude-api-pricing-explained/)[Il modo più economico per usare l'API Claude](/it/learn/cheapest-way-to-use-claude-api/)[Cursor illimitato con l'API Claude](/learn/use-claude-api-with-cursor/)[Accesso illimitato a Claude Code](/it/learn/use-claude-api-with-claude-code/)[Gateway API Claude e accesso diretto ad Anthropic a confronto](/it/learn/claude-api-vs-anthropic-direct/)[Usare Claude tramite un'API compatibile con OpenAI](/it/learn/openai-compatible-claude-api/)[I 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)](/it/learn/claude-api-models-compared/)[Pagare l'API Claude con criptovalute](/it/learn/claude-api-with-crypto-payment/)[Accesso all'API Claude senza lista d'attesa](/it/learn/claude-api-without-waitlist/)[Come ridurre l'utilizzo dei token di Claude](/it/learn/how-to-reduce-claude-token-usage/)[Cline illimitato con l'API Claude](/it/learn/use-claude-api-with-cline/)[Roo Code illimitato con l'API Claude](/it/learn/use-claude-api-with-roo-code/)[Claude illimitato negli IDE JetBrains](/it/learn/use-claude-api-with-jetbrains/)[Aider senza limiti con l'API di Claude](/it/learn/use-claude-api-with-aider/)[Claude illimitato in VS Code](/it/learn/use-claude-api-with-vscode/)[Configurazione di OpenCode per Claude: impostazione di opencode.json, modelli ed errori comuni](/it/learn/use-claude-api-with-opencode/)[Eseguire un agente Hermes senza limiti su Claude](/it/learn/run-hermes-agent-with-claude-api/)[Eseguire OpenClaw senza limiti con Claude](/it/learn/run-openclaw-with-claude-api/)[Cosa significa un'API compatibile con Anthropic](/it/learn/anthropic-compatible-api/)[Chiave API di Claude Code — ANTHROPIC_API_KEY: come ottenerla, configurarla e quando usare invece claude setup-token](/it/learn/claude-code-api-key-setup/)[Costi dell'API di Claude Code — Prezzi e come ridurli](/it/learn/claude-code-api-costs/)[Gli errori dell'API Claude spiegati: errore del server 500, sovraccarico 529, limite di frequenza 429, richiesta non valida 400 — e la soluzione per ciascuno](/it/learn/claude-api-errors-troubleshooting/)[Come acquistare crediti per l'API di Claude e perché un credito Claude conviene più di qualsiasi offerta per «acquistare un account Claude»](/it/learn/buy-claude-api-credits/)[API Claude gratuita: esiste una chiave API di Claude gratuita e che cosa è davvero gratuito nel 2026?](/it/learn/claude-api-free-trial/)[API Claude e abbonamento Claude Pro/Max a confronto — Quale scegliere](/it/learn/claude-api-vs-subscription/)[Eseguire la CLI di Codex su Claude](/it/learn/use-claude-api-with-codex/)[Collegare Claude a n8n](/it/learn/use-claude-api-with-n8n/)[Instradare LiteLLM verso Claude](/it/learn/use-claude-api-with-litellm/)[Usare Claude in Kilo Code](/it/learn/use-claude-api-with-kilo-code/)[Integrare Claude in GitHub Copilot](/it/learn/use-claude-api-with-github-copilot/)[Collega Zed a Claude tramite il gateway](/it/learn/use-claude-api-with-zed/)[Collega Cherry Studio a Claude](/it/learn/use-claude-api-with-cherry-studio/)[SDK Python di Anthropic: installazione, configurazione di base_url, streaming e gestione degli errori](/it/learn/anthropic-python-sdk/)[Claude con Vercel AI SDK: baseURL di createAnthropic, streaming e soluzioni ai problemi](/it/learn/use-claude-api-with-vercel-ai-sdk/)[Esegui Factory Droid con Claude](/it/learn/use-claude-api-with-factory-droid/)[L'API di Claude Code spiegata](/it/learn/claude-code-api/)[Integrare l'API di Claude nella tua applicazione](/it/learn/claude-api-integration/)[Come ottenere un utilizzo illimitato di Claude e perché non esiste un «Claude Code craccato»](/it/learn/get-unlimited-claude-usage/)