Source: https://aiprimetech.io/es/learn/use-claude-api-with-langchain/ [Inicio](/es/) / [Aprende](/es/learn/) / ChatAnthropic en LangChain: importación, base_url, streaming, herramientas y errores # ChatAnthropic en LangChain: importación, base_url, streaming, herramientas y errores ChatAnthropic del langchain-anthropic paquete es el modelo de chat de Claude de LangChain. Encapsula el SDK oficial de Anthropic para Python, por lo que basta con un argumento para conectarlo a una pasarela, base_url, establecido en la raíz del host. Todo lo demás en tus cadenas, agentes y herramientas permanece igual. ## Instalación e importación 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) ``` No /v1 en base_url aquí. El SDK de Anthropic subyacente añade /v1/messages por sí mismo; añadir /v1 produce /v1/v1/messages y un 404 page not found. ## Configúralo desde el entorno base_url es un alias de anthropic_api_urly api_key un alias de anthropic_api_key. Cuando no los pasas, ChatAnthropic lee ANTHROPIC_API_URL primero, después ANTHROPIC_BASE_URL, y la clave de ANTHROPIC_API_KEY. Los argumentos explícitos siempre tienen prioridad. 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 ``` ## Transmisión en tiempo real app.pyCopiar ``` for chunk in llm.stream("Explain backpressure in two sentences."): print(chunk.text, end="", flush=True) ``` .text recopila solo los bloques de texto de cada fragmento, por lo que el resultado se mantiene limpio cuando el modelo también emite bloques de razonamiento o de uso de herramientas. Utiliza streaming para respuestas largas: una solicitud larga sin streaming es la causa habitual de que se agote el tiempo de espera. ## Herramientas y salida estructurada 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.")) ``` ## Reintentos, tiempos de espera y max_tokens max_retries tiene como valor predeterminado 2, igual que el SDK de Anthropic, que reintenta los errores de conexión, 429 y las respuestas 5xx. timeout (alias de default_request_timeout) se expresa en segundos. Si dejas max_tokens sin definir, se toma del perfil del modelo. app.pyCopiar ``` llm = ChatAnthropic( model="claude-sonnet-5", base_url="https://aiprimetech.io", max_retries=4, timeout=120, max_tokens=8000, ) ``` Para los lotes, limita el paralelismo para respetar el límite de concurrencia de tu clave: llm.batch(inputs, config={"max_concurrency": 3}). ## La alternativa con ChatOpenAI Si tu código está estandarizado en ChatOpenAI, el endpoint compatible con OpenAI de la pasarela también ofrece Claude. Esta vía requiere /v1 al final, al contrario que 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") ``` Es preferible usar ChatAnthropic para Claude: conserva funciones nativas como la caché de prompts y los bloques de razonamiento. ## Resolución de problemas | Lo que ves | Causa | Solución | 404 page not found | /v1 en el campo de ChatAnthropic base_url | Usa la raíz del host, https://aiprimetech.io | Model "..." is not supported | Un ID que el grupo de tu clave no ofrece, o un nombre antiguo con fecha | Usa un ID actual de la tabla siguiente | AuthenticationError | ANTHROPIC_API_KEY vacío en el proceso en ejecución, o una clave para otro endpoint | Pasa api_key= explícitamente para probar | RateLimitError: Concurrency limit exceeded | Demasiadas llamadas en paralelo (batch, gather asíncrono) | max_concurrency en la configuración del lote | APITimeoutError | Generaciones largas sin streaming | Usa streaming o aumenta timeout | ID del modelo | Úsalo para | claude-sonnet-5 | Opción predeterminada para programación y trabajo con agentes: rápida, potente y de precio intermedio. | claude-opus-5-5 | Razonamiento más complejo, refactorizaciones grandes y ejecuciones largas de agentes. | claude-fable-5-1 | El más capaz y el más caro; resérvalo para las tareas más difíciles. | claude-haiku-4-5 | Económico y rápido: títulos, resúmenes, clasificación y pasos pequeños. ## Preguntas frecuentes ¿Cómo importo ChatAnthropic? pip install -U langchain-anthropic, y después from langchain_anthropic import ChatAnthropic. ¿Necesita /v1 el base_url de ChatAnthropic? No. Pasa la raíz del host, por ejemplo, https://aiprimetech.io;; el SDK de Anthropic añade /v1/messages. ChatOpenAI funciona al revés y necesita /v1. ¿Qué variables de entorno lee ChatAnthropic? ANTHROPIC_API_KEY para la clave, y ANTHROPIC_API_URL, seguido de ANTHROPIC_BASE_URL, para el endpoint cuando no se pasa base_url. ¿Es base_url lo mismo que anthropic_api_url? Sí. base_url es un alias de anthropic_api_url, y api_key es un alias de anthropic_api_key. Empieza a usar Claude en minutos Obtén una clave de API: no necesitas una cuenta de Anthropic ni estar en una lista de espera.[Obtén tu clave de API](/register) AI Prime Tech es una pasarela de API independiente. No está afiliada a Anthropic, no cuenta con su respaldo ni es un distribuidor de Anthropic. Claude y los nombres de los modelos relacionados son marcas comerciales de sus respectivos propietarios. ## Más guías de la API de Claude [Cómo obtener una clave de API de Claude](/es/learn/how-to-get-a-claude-api-key/)[Precios de la API de Claude, explicados](/es/learn/claude-api-pricing-explained/)[La forma más económica de usar la API de Claude](/es/learn/cheapest-way-to-use-claude-api/)[Cursor ilimitado con la API de Claude](/learn/use-claude-api-with-cursor/)[Acceso ilimitado a Claude Code](/es/learn/use-claude-api-with-claude-code/)[Gateway de la API de Claude frente al acceso directo a Anthropic](/es/learn/claude-api-vs-anthropic-direct/)[Usar Claude a través de una API compatible con OpenAI](/es/learn/openai-compatible-claude-api/)[Los modelos de Claude explicados: una comparación de Claude Opus, Sonnet, Haiku y Fable; todos los modelos de la API de Claude, nombres de modelos de Anthropic y precios (2026)](/es/learn/claude-api-models-compared/)[Pagar la API de Claude con criptomonedas](/es/learn/claude-api-with-crypto-payment/)[Acceso a la API de Claude sin lista de espera](/es/learn/claude-api-without-waitlist/)[Cómo reducir el uso de tokens de Claude](/es/learn/how-to-reduce-claude-token-usage/)[Cline ilimitado con la API de Claude](/es/learn/use-claude-api-with-cline/)[Roo Code ilimitado con la API de Claude](/es/learn/use-claude-api-with-roo-code/)[Claude ilimitado en los IDE de JetBrains](/es/learn/use-claude-api-with-jetbrains/)[Aider sin límites con la API de Claude](/es/learn/use-claude-api-with-aider/)[Claude ilimitado en VS Code](/es/learn/use-claude-api-with-vscode/)[Configuración de OpenCode para Claude: ajustes de opencode.json, modelos y errores comunes](/es/learn/use-claude-api-with-opencode/)[Ejecutar un agente Hermes sin límites con Claude](/es/learn/run-hermes-agent-with-claude-api/)[Ejecutar OpenClaw sin límites con Claude](/es/learn/run-openclaw-with-claude-api/)[Qué significa una API compatible con Anthropic](/es/learn/anthropic-compatible-api/)[Clave API de Claude Code — ANTHROPIC_API_KEY: cómo obtenerla, configurarla y cuándo usar claude setup-token en su lugar](/es/learn/claude-code-api-key-setup/)[Costes de la API de Claude Code: precios y cómo reducirlos](/es/learn/claude-code-api-costs/)[Explicación de los errores de la API de Claude: error del servidor 500, sobrecarga 529, límite de solicitudes 429, solicitud incorrecta 400 y la solución para cada uno](/es/learn/claude-api-errors-troubleshooting/)[Cómo comprar créditos para la API de Claude y por qué un crédito de Claude es mejor que cualquier oferta de «comprar una cuenta de Claude»](/es/learn/buy-claude-api-credits/)[API gratuita de Claude: ¿existe una clave API de Claude gratuita y qué es realmente gratis en 2026?](/es/learn/claude-api-free-trial/)[API de Claude frente a la suscripción Claude Pro/Max: cuál elegir](/es/learn/claude-api-vs-subscription/)[Ejecutar la CLI de Codex con Claude](/es/learn/use-claude-api-with-codex/)[Conectar Claude a n8n](/es/learn/use-claude-api-with-n8n/)[Enrutar LiteLLM a Claude](/es/learn/use-claude-api-with-litellm/)[Usar Claude en Kilo Code](/es/learn/use-claude-api-with-kilo-code/)[Integra Claude en GitHub Copilot](/es/learn/use-claude-api-with-github-copilot/)[Conecta Zed a Claude a través de la pasarela](/es/learn/use-claude-api-with-zed/)[Conecta Cherry Studio a Claude](/es/learn/use-claude-api-with-cherry-studio/)[SDK de Python de Anthropic: instalación, configuración de base_url, streaming y gestión de errores](/es/learn/anthropic-python-sdk/)[Claude con Vercel AI SDK: baseURL de createAnthropic, streaming y soluciones](/es/learn/use-claude-api-with-vercel-ai-sdk/)[Ejecuta Factory Droid con Claude](/es/learn/use-claude-api-with-factory-droid/)[La API de Claude Code, explicada](/es/learn/claude-code-api/)[Integración de la API de Claude en tu aplicación](/es/learn/claude-api-integration/)[Cómo usar Claude sin límites y por qué no existe un «Claude Code crackeado»](/es/learn/get-unlimited-claude-usage/)