Source: https://aiprimetech.io/pt/learn/use-claude-api-with-langchain/ [Início](/pt/) / [Aprenda](/pt/learn/) / ChatAnthropic no LangChain: importação, base_url, streaming, ferramentas e erros # 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 terminalCopiar ``` pip install -U langchain-anthropic ``` app.pyCopiar ``` 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) ``` Não /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. terminalCopiar ``` export ANTHROPIC_API_KEY=your_gateway_key export ANTHROPIC_API_URL=https://aiprimetech.io ``` app.pyCopiar ``` from langchain_anthropic import ChatAnthropic llm = ChatAnthropic(model="claude-sonnet-5") # picks up the gateway from the environment ``` ## Transmissão app.pyCopiar ``` 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 tools.pyCopiar ``` 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.pyCopiar ``` 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. app.pyCopiar ``` 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. app.pyCopiar ``` 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? Execute pip install -U langchain-anthropic e, em seguida, from langchain_anthropic import ChatAnthropic. O base_url de ChatAnthropic precisa de /v1? Não. Passe a raiz do host, por exemplo, https://aiprimetech.io;; o SDK da Anthropic acrescenta /v1/messages. Com ChatOpenAI é o contrário: ele precisa de /v1. Quais variáveis de ambiente ChatAnthropic lê? ANTHROPIC_API_KEY para a chave e ANTHROPIC_API_URL, seguida de ANTHROPIC_BASE_URL, para o endpoint quando base_url não é passado. base_url é o mesmo que anthropic_api_url? Sim. base_url é um alias de anthropic_api_url, e api_key é um alias de anthropic_api_key. Comece a usar o Claude em minutos Obtenha uma chave de API — sem precisar de conta na Anthropic nem de lista de espera.[Obtenha sua chave de API](/register) AI 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. ## Mais guias da API do Claude [Como obter uma chave de API do Claude](/pt/learn/how-to-get-a-claude-api-key/)[Preços da API Claude explicados](/pt/learn/claude-api-pricing-explained/)[A maneira mais barata de usar a API do Claude](/pt/learn/cheapest-way-to-use-claude-api/)[Cursor ilimitado com a API do Claude](/learn/use-claude-api-with-cursor/)[Acesso ilimitado ao Claude Code](/pt/learn/use-claude-api-with-claude-code/)[Gateway da API do Claude vs. acesso direto à Anthropic](/pt/learn/claude-api-vs-anthropic-direct/)[Como usar Claude por meio de uma API compatível com OpenAI](/pt/learn/openai-compatible-claude-api/)[Modelos Claude explicados: uma comparação entre Claude Opus, Sonnet, Haiku e Fable — todos os modelos da API Claude, nomes e preços dos modelos Anthropic (2026)](/pt/learn/claude-api-models-compared/)[Pagamento da API do Claude com criptomoedas](/pt/learn/claude-api-with-crypto-payment/)[Acesso à API do Claude sem lista de espera](/pt/learn/claude-api-without-waitlist/)[Como reduzir o uso de tokens do Claude](/pt/learn/how-to-reduce-claude-token-usage/)[Cline ilimitado com a API do Claude](/pt/learn/use-claude-api-with-cline/)[Roo Code ilimitado com a API do Claude](/pt/learn/use-claude-api-with-roo-code/)[Claude ilimitado nas IDEs da JetBrains](/pt/learn/use-claude-api-with-jetbrains/)[Aider ilimitado com a API do Claude](/pt/learn/use-claude-api-with-aider/)[Claude ilimitado no VS Code](/pt/learn/use-claude-api-with-vscode/)[Configuração do OpenCode para Claude: configuração do opencode.json, modelos e erros comuns](/pt/learn/use-claude-api-with-opencode/)[Como executar um agente Hermes ilimitado no Claude](/pt/learn/run-hermes-agent-with-claude-api/)[Executando OpenClaw ilimitado com Claude](/pt/learn/run-openclaw-with-claude-api/)[O que significa uma API compatível com a Anthropic](/pt/learn/anthropic-compatible-api/)[Chave de API do Claude Code — ANTHROPIC_API_KEY: como obtê-la, configurá-la e quando usar claude setup-token em seu lugar](/pt/learn/claude-code-api-key-setup/)[Custos da API do Claude Code — Preços e como reduzi-los](/pt/learn/claude-code-api-costs/)[Erros da API Claude explicados: erro de servidor 500, sobrecarga 529, limite de requisições 429, requisição inválida 400 — e a correção para cada um](/pt/learn/claude-api-errors-troubleshooting/)[Como comprar créditos da API do Claude — e por que um crédito do Claude é melhor do que qualquer oferta de "comprar conta do Claude"](/pt/learn/buy-claude-api-credits/)[API Claude gratuita: existe uma chave de API Claude gratuita e o que realmente é gratuito em 2026?](/pt/learn/claude-api-free-trial/)[API do Claude vs assinatura Claude Pro/Max — Qual escolher](/pt/learn/claude-api-vs-subscription/)[Como executar a CLI do Codex no Claude](/pt/learn/use-claude-api-with-codex/)[Conectando Claude ao n8n](/pt/learn/use-claude-api-with-n8n/)[Roteando LiteLLM para Claude](/pt/learn/use-claude-api-with-litellm/)[Usando Claude no Kilo Code](/pt/learn/use-claude-api-with-kilo-code/)[Integre Claude ao GitHub Copilot](/pt/learn/use-claude-api-with-github-copilot/)[Conecte o Zed ao Claude por meio do gateway](/pt/learn/use-claude-api-with-zed/)[Conecte o Cherry Studio ao Claude](/pt/learn/use-claude-api-with-cherry-studio/)[SDK de Python da Anthropic: instale, defina base_url, use streaming e trate erros](/pt/learn/anthropic-python-sdk/)[Claude com o Vercel AI SDK: baseURL de createAnthropic, streaming e correções](/pt/learn/use-claude-api-with-vercel-ai-sdk/)[Execute o Factory Droid com o Claude](/pt/learn/use-claude-api-with-factory-droid/)[A API do Claude Code, explicada](/pt/learn/claude-code-api/)[Como integrar a API do Claude à sua aplicação](/pt/learn/claude-api-integration/)[Como obter uso ilimitado do Claude — e por que não existe "Claude Code crackeado"](/pt/learn/get-unlimited-claude-usage/)