
ChatAnthropic no LangChain: importação, base_url, streaming, ferramentas e erros
ChatAnthropic do langchain-anthropic pacote é o modelo de chat Claude do LangChain. Ele encapsula o SDK oficial da Anthropic para Python, portanto basta um argumento para configurá-lo para usar um gateway, base_url, definido como a raiz do host. Todo o restante nas suas cadeias, agentes e ferramentas permanece igual.
Instalação e importação
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 em base_url aqui. O SDK da Anthropic subjacente acrescenta /v1/messages automaticamente; adicionar /v1 produz /v1/v1/messages e um campo 404 page not found.Configure a partir do ambiente
base_url é um alias de anthropic_api_url e api_key um alias de anthropic_api_key. Quando você não os passa, ChatAnthropic lê ANTHROPIC_API_URL primeiro, depois ANTHROPIC_BASE_URL, e a chave de ANTHROPIC_API_KEY. Argumentos explícitos sempre têm prioridade.
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 environmentTransmissão
for chunk in llm.stream("Explain backpressure in two sentences."):
print(chunk.text, end="", flush=True).text coleta apenas os blocos de texto de cada fragmento, mantendo a saída limpa quando o modelo também emite blocos de raciocínio ou de uso de ferramentas. Use streaming para respostas longas: uma solicitação longa sem streaming é a causa habitual de tempos limite excedidos.
Ferramentas e saída estruturada
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."))Novas tentativas, tempos limite e max_tokens
max_retries usa 2 por padrão, assim como o SDK da Anthropic, que repete tentativas em caso de erros de conexão, 429 e respostas 5xx. timeout (alias de default_request_timeout) é expresso em segundos. Se você deixar max_tokens sem definir, o valor será obtido do perfil do modelo.
llm = ChatAnthropic(
model="claude-sonnet-5",
base_url="https://aiprimetech.io",
max_retries=4,
timeout=120,
max_tokens=8000,
)Para lotes, limite o paralelismo para respeitar o limite de simultaneidade da sua chave: llm.batch(inputs, config={"max_concurrency": 3}).
A alternativa com ChatOpenAI
Se o seu código está padronizado em ChatOpenAI, o endpoint do gateway compatível com OpenAI também disponibiliza Claude. Essa rota exige /v1 no final, ao contrário de ChatAnthropic.
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="claude-sonnet-5", base_url="https://aiprimetech.io/v1", api_key="your_gateway_key")Prefira ChatAnthropic para Claude: ele mantém recursos nativos, como cache de prompts e blocos de raciocínio.
Solução de problemas
| O que você vê | Causa | Correção |
|---|---|---|
404 page not found | /v1 no campo de ChatAnthropic base_url | Use a raiz do host, https://aiprimetech.io |
Model "..." is not supported | Um ID que o grupo da sua chave não disponibiliza ou um nome antigo com data | Use um ID atual da tabela abaixo |
AuthenticationError | ANTHROPIC_API_KEY vazio no processo em execução ou uma chave de outro endpoint | Passe api_key= explicitamente para testar |
RateLimitError: Concurrency limit exceeded | Chamadas paralelas em excesso (batch, gather assíncrono) | max_concurrency na configuração do lote |
APITimeoutError | Gerações longas sem streaming | Use streaming ou aumente timeout |
| ID do modelo | Use para |
|---|---|
claude-sonnet-5 | Padrão para programação e trabalho com agentes: rápido, eficiente e de preço intermediário. |
claude-opus-5-5 | Raciocínio mais complexo, grandes refatorações e execuções longas de agentes. |
claude-fable-5-1 | O mais capaz e mais caro; reserve-o para as tarefas mais difíceis. |
claude-haiku-4-5 | Barato e rápido: títulos, resumos, classificação e pequenas etapas. |
Perguntas frequentes
Como importo ChatAnthropic?
O base_url de ChatAnthropic precisa de /v1?
Quais variáveis de ambiente ChatAnthropic lê?
base_url é o mesmo que anthropic_api_url?
Obtenha uma chave de API — sem precisar de conta na Anthropic nem de lista de espera.
Obtenha sua chave de APIAI Prime Tech é um gateway de API independente. Não tem afiliação com a Anthropic, não é endossado por ela e não é seu revendedor. Claude e os nomes dos modelos relacionados são marcas comerciais de seus respectivos proprietários.