
ChatAnthropic dans LangChain : importation, base_url, streaming, outils et erreurs
ChatAnthropic du langchain-anthropic package est le modèle de chat Claude de LangChain. Il encapsule le SDK Python officiel d’Anthropic ; pour le faire pointer vers une passerelle, il suffit donc d’un argument, base_url, défini sur la racine de l’hôte. Tout le reste de vos chaînes, agents et outils reste identique.
Installation et import
pip install -U langchain-anthropicfrom 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)/v1 dans base_url ici. Le SDK Anthropic sous-jacent ajoute /v1/messages lui-même ; ajouter /v1 produit /v1/v1/messages et un 404 page not found.Configuration à partir des variables d’environnement
base_url est un alias de anthropic_api_url, ainsi que api_key un alias de anthropic_api_key. Lorsque vous ne les fournissez pas, ChatAnthropic lit ANTHROPIC_API_URL en premier, puis ANTHROPIC_BASE_URL, et la clé depuis ANTHROPIC_API_KEY. Les arguments explicites ont toujours la priorité.
export ANTHROPIC_API_KEY=your_gateway_key
export ANTHROPIC_API_URL=https://aiprimetech.iofrom langchain_anthropic import ChatAnthropic
llm = ChatAnthropic(model="claude-sonnet-5") # picks up the gateway from the environmentDiffusion en continu
for chunk in llm.stream("Explain backpressure in two sentences."):
print(chunk.text, end="", flush=True).text ne recueille que les blocs de texte de chaque fragment, de sorte que le résultat reste propre lorsque le modèle émet également des blocs de réflexion ou d’utilisation d’outils. Utilisez le streaming pour les réponses longues : une requête longue sans streaming est la cause habituelle des dépassements de délai.
Outils et sortie structurée
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)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."))Nouvelles tentatives, délais d’expiration et max_tokens
max_retries vaut par défaut 2, comme dans le SDK Anthropic, qui réessaie en cas d’erreurs de connexion, de réponses 429 et de réponses 5xx. timeout (alias de default_request_timeout) est exprimé en secondes. Si vous laissez max_tokens non défini, sa valeur provient du profil du modèle.
llm = ChatAnthropic(
model="claude-sonnet-5",
base_url="https://aiprimetech.io",
max_retries=4,
timeout=120,
max_tokens=8000,
)Pour les traitements par lots, limitez le parallélisme afin de respecter la limite de concurrence de votre clé : llm.batch(inputs, config={"max_concurrency": 3}).
L’alternative ChatOpenAI
Si votre code est standardisé sur ChatOpenAI, le point de terminaison de la passerelle compatible avec OpenAI donne aussi accès à Claude. Cette voie nécessite /v1 à la fin, à l’inverse de ChatAnthropic.
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="claude-sonnet-5", base_url="https://aiprimetech.io/v1", api_key="your_gateway_key")Privilégiez ChatAnthropic pour Claude : il conserve les fonctionnalités natives telles que la mise en cache des prompts et les blocs de réflexion.
Dépannage
| Ce que vous voyez | Cause | Solution |
|---|---|---|
404 page not found | /v1 dans le paramètre de ChatAnthropic base_url | Utilisez la racine de l’hôte, https://aiprimetech.io |
Model "..." is not supported | Un identifiant auquel le groupe de votre clé ne donne pas accès, ou un ancien nom daté | Utilisez un identifiant actuel du tableau ci-dessous |
AuthenticationError | ANTHROPIC_API_KEY vide dans le processus en cours d’exécution, ou une clé destinée à un autre point de terminaison | Passez api_key= explicitement pour tester |
RateLimitError: Concurrency limit exceeded | Trop d’appels parallèles (batch, gather asynchrone) | max_concurrency dans la configuration du traitement par lots |
APITimeoutError | Générations longues sans streaming | Utilisez le streaming ou augmentez timeout |
| Identifiant du modèle | À utiliser pour |
|---|---|
claude-sonnet-5 | Choix par défaut pour le développement et les tâches d’agents : rapide, performant, à prix intermédiaire. |
claude-opus-5-5 | Raisonnement plus difficile, refactorisations importantes, longues exécutions d’agents. |
claude-fable-5-1 | Le plus performant et le plus cher ; réservez-le aux tâches les plus difficiles. |
claude-haiku-4-5 | Économique et rapide : titres, résumés, classification, petites étapes. |
Questions fréquentes
Comment importer ChatAnthropic ?
Le paramètre base_url de ChatAnthropic doit-il inclure /v1 ?
Quelles variables d’environnement ChatAnthropic lit-il ?
base_url est-il identique à anthropic_api_url ?
Obtenez une clé API — aucun compte Anthropic ni inscription sur liste d’attente requis.
Obtenir votre clé APIAI Prime Tech est une passerelle API indépendante. Elle n’est ni affiliée à Anthropic, ni approuvée par Anthropic, ni revendeuse d’Anthropic. Claude et les noms de modèles associés sont des marques de leurs propriétaires respectifs.