
ChatAnthropic in LangChain: Import, base_url, Streaming, Tools und Fehler
ChatAnthropic aus dem langchain-anthropic Paket ist das Claude-Chatmodell von LangChain. Es kapselt das offizielle Anthropic Python SDK, sodass für die Verbindung mit einem Gateway ein einziges Argument genügt, base_url, das auf die Host-Basisadresse gesetzt wird. Alles andere in Ihren Chains, Agenten und Tools bleibt gleich.
Installation und 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 in base_url hier. Das zugrunde liegende Anthropic SDK hängt /v1/messages selbst an; das Hinzufügen von /v1 ergibt /v1/v1/messages und ein 404 page not found.Über Umgebungsvariablen konfigurieren
base_url ist ein Alias für anthropic_api_urlund api_key ein Alias für anthropic_api_key. Wenn Sie diese nicht übergeben, liest ChatAnthropic zuerst ANTHROPIC_API_URL , dann ANTHROPIC_BASE_URLund den Schlüssel aus ANTHROPIC_API_KEY. Explizite Argumente haben immer Vorrang.
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 environmentStreaming
for chunk in llm.stream("Explain backpressure in two sentences."):
print(chunk.text, end="", flush=True).text sammelt nur die Textblöcke jedes Chunks, sodass die Ausgabe sauber bleibt, wenn das Modell auch Thinking- oder Tool-Use-Blöcke ausgibt. Verwenden Sie Streaming für lange Antworten: Eine lange Anfrage ohne Streaming ist die übliche Ursache für Zeitüberschreitungen.
Tools und strukturierte Ausgabe
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."))Wiederholungsversuche, Zeitlimits und max_tokens
max_retries ist standardmäßig 2, wie beim Anthropic SDK, das bei Verbindungsfehlern, 429 und 5xx-Antworten erneute Versuche unternimmt. timeout (Alias von default_request_timeout) wird in Sekunden angegeben. Wenn Sie max_tokens nicht festlegen, wird der Wert aus dem Profil des Modells übernommen.
llm = ChatAnthropic(
model="claude-sonnet-5",
base_url="https://aiprimetech.io",
max_retries=4,
timeout=120,
max_tokens=8000,
)Begrenzen Sie bei Stapelverarbeitungen die Parallelität, um das Parallelitätslimit Ihres Schlüssels einzuhalten: llm.batch(inputs, config={"max_concurrency": 3}).
Die ChatOpenAI-Alternative
Wenn Ihr Code auf ChatOpenAIstandardisiert ist, bietet der OpenAI-kompatible Endpunkt des Gateways auch Claude an. Bei diesem Weg muss /v1 am Ende stehen, anders als bei ChatAnthropic.
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="claude-sonnet-5", base_url="https://aiprimetech.io/v1", api_key="your_gateway_key")Bevorzugen Sie ChatAnthropic für Claude: Damit bleiben native Funktionen wie Prompt-Caching und Thinking-Blöcke erhalten.
Fehlerbehebung
| Was Sie sehen | Ursache | Lösung |
|---|---|---|
404 page not found | /v1 in der folgenden Einstellung von ChatAnthropic: base_url | Verwenden Sie die Stamm-URL des Hosts, https://aiprimetech.io |
Model "..." is not supported | Eine ID, die von der Gruppe Ihres Schlüssels nicht bereitgestellt wird, oder ein alter Name mit Datumsangabe | Verwenden Sie eine aktuelle ID aus der folgenden Tabelle |
AuthenticationError | ANTHROPIC_API_KEY im laufenden Prozess leer oder ein Schlüssel für einen anderen Endpunkt | Übergeben Sie api_key= zum Testen explizit |
RateLimitError: Concurrency limit exceeded | Zu viele parallele Aufrufe (batch, asynchrones gather) | max_concurrency in der Batch-Konfiguration |
APITimeoutError | Lange Generierungen ohne Streaming | Streaming verwenden oder erhöhen: timeout |
| Modell-ID | Einsatzbereich |
|---|---|
claude-sonnet-5 | Standard für Programmier- und Agentenaufgaben: schnell, leistungsstark, mittleres Preisniveau. |
claude-opus-5-5 | Anspruchsvollere Denkaufgaben, umfangreiche Refactorings, lange Agentenläufe. |
claude-fable-5-1 | Am leistungsfähigsten und am teuersten; für die schwierigsten Aufgaben reservieren. |
claude-haiku-4-5 | Günstig und schnell: Titel, Zusammenfassungen, Klassifizierung, kleine Schritte. |
Häufig gestellte Fragen
Wie importiere ich ChatAnthropic?
Benötigt base_url bei ChatAnthropic /v1?
Welche Umgebungsvariablen liest ChatAnthropic?
Ist base_url dasselbe wie anthropic_api_url?
Holen Sie sich einen API-Schlüssel – ohne Anthropic-Konto oder Warteliste.
API-Schlüssel erhaltenAI Prime Tech ist ein unabhängiges API-Gateway. Es ist weder mit Anthropic verbunden noch von Anthropic empfohlen und auch kein Wiederverkäufer von Anthropic. Claude und zugehörige Modellnamen sind Marken ihrer jeweiligen Inhaber.