Conceptos básicos de implementación empresarial
9 ejemplos para empezar con la implementación empresarial: 6 básicos y 3 intermedios.
Requisitos previos
- Instale el SDK con los extras para las plataformas que planea usar:
pip install anthropicpara la API directa,pip install "anthropic[bedrock]"para Amazon Bedrock,pip install "anthropic[vertex]"para Google Cloud Vertex AI. - Para Bedrock, una cuenta de AWS con credenciales IAM configuradas (a través de variables de entorno, un archivo de credenciales compartido o un rol asumido) y acceso al modelo solicitado en la consola de Bedrock.
- Para Vertex AI, un proyecto de Google Cloud con la facturación habilitada, la API de Vertex AI activada y las credenciales predeterminadas de la aplicación configuradas a través de
gcloud auth application-default login. - Estos ejemplos asumen que
claude-sonnet-5está disponible en todas las plataformas que aprovisione; confirme el acceso al modelo antes de ejecutarlos.
Ejemplos básicos
1. Llamar a Claude a través de la API directa
La ruta más sencilla posible: una clave API y el SDK oficial, sin necesidad de una cuenta en la nube.
import anthropic
client = anthropic.Anthropic() # lee ANTHROPIC_API_KEY del entorno
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=256,
messages=[{"role": "user", "content": "List three benefits of infrastructure as code."}],
)
print(response.content[0].text)anthropic.Anthropic()sin argumentos leeANTHROPIC_API_KEYdel entorno automáticamente.- No hay ningún rol IAM, cuenta de servicio o región que configurar; esta es la forma más rápida de confirmar que su código de integración funciona antes de agregar una capa de plataforma en la nube.
- Todos los demás ejemplos de esta página tienen como objetivo la misma forma de llamada
messages.create, solo a través de una clase de cliente diferente.
Relacionado: Elegir entre API directa, Bedrock y Vertex AI para Claude - la decisión que esta página asume que ya ha tomado.
2. Construir el cliente de Bedrock
Dirija el SDK a Amazon Bedrock en lugar del propio endpoint de Anthropic, usando credenciales de AWS en lugar de una clave API.
from anthropic import AnthropicBedrock
client = AnthropicBedrock(
aws_region="us-east-1",
)AnthropicBedrockresuelve las credenciales de AWS de la misma manera que cualquier SDK de AWS: variables de entorno, un archivo de credenciales compartido o un rol IAM asumido.aws_regiones obligatorio: Bedrock no tiene un respaldo de región predeterminado, y el modelo al que solicitó acceso debe estar disponible en esa región.- Aquí no se pasa ninguna clave API; la autenticación se basa completamente en IAM.
3. Llamar a Claude en Amazon Bedrock
Una vez que se construye el cliente, la forma de la solicitud es idéntica a la API directa, aparte del prefijo del ID del modelo.
from anthropic import AnthropicBedrock
client = AnthropicBedrock(aws_region="us-east-1")
response = client.messages.create(
model="anthropic.claude-sonnet-5",
max_tokens=256,
messages=[{"role": "user", "content": "List three benefits of infrastructure as code."}],
)
print(response.content[0].text)- Los ID de modelo de Bedrock llevan un prefijo
anthropic.; pasar el IDclaude-sonnet-5de la API directa aquí devuelve un 404. - Un
403en este punto casi siempre significa que el rol IAM carece del permiso de invocación de Bedrock, o que nunca se solicitó acceso al modelo en la consola para este modelo en esta región. messages.createes el mismo método con los mismos parámetros que el cliente de la API directa; solo la clase de cliente y la cadena del ID del modelo difieren.
4. Construir el cliente de Vertex AI
Dirija el SDK a Google Cloud Vertex AI, autenticándose con un proyecto de GCP y credenciales predeterminadas de la aplicación en lugar de una clave API.
from anthropic import AnthropicVertex
client = AnthropicVertex(
project_id="my-gcp-project",
region="us-east5",
)project_idyregionson argumentos de constructor obligatorios; no hay un proyecto o región predeterminados.- La autenticación utiliza las credenciales predeterminadas de la aplicación de Google, resueltas a partir de
gcloud auth application-default loginlocalmente o una cuenta de servicio adjunta al tiempo de ejecución en producción. regionpuede ser una región específica, un valor multirregión o"global"según el modelo y las necesidades de latencia.
5. Llamar a Claude en Google Cloud Vertex AI
Los ID de modelo de Vertex AI para los modelos Claude de generación actual no tienen prefijo, a diferencia del prefijo anthropic. de Bedrock.
from anthropic import AnthropicVertex
client = AnthropicVertex(project_id="my-gcp-project", region="us-east5")
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=256,
messages=[{"role": "user", "content": "List three benefits of infrastructure as code."}],
)
print(response.content[0].text)- Los ID de modelo de Vertex AI de generación actual coinciden con la cadena de modelo simple de la API directa; sin prefijo de proveedor, a diferencia de Bedrock.
- Un
403aquí generalmente significa que a la cuenta de servicio le falta el rol IAM de usuario de Vertex AI, o que el proyecto no ha habilitado la API de Vertex AI. - Un
429o error de cuota significa que la cuota de solicitudes o tokens del proyecto para este modelo debe aumentarse en la consola de Google Cloud.
Relacionado: Ejecutar Claude en Google Cloud Vertex AI: Cuotas y cuentas de servicio - la configuración completa de la cuenta de servicio y la cuota.
6. Manejar errores de autenticación específicos de la plataforma
Envuelva la llamada para que un rol IAM o una cuenta de servicio mal configurados produzcan un mensaje claro en lugar de un seguimiento de pila sin procesar.
import anthropic
from anthropic import AnthropicBedrock
client = AnthropicBedrock(aws_region="us-east-1")
try:
response = client.messages.create(
model="anthropic.claude-sonnet-5",
max_tokens=256,
messages=[{"role": "user", "content": "Ping."}],
)
print(response.content[0].text)
except anthropic.PermissionDeniedError:
print("El rol IAM carece del permiso de invocación de Bedrock, o no se solicitó acceso al modelo.")
except anthropic.NotFoundError:
print("El ID del modelo o la región son incorrectos; verifique el prefijo anthropic. y la disponibilidad de la región.")PermissionDeniedErroryNotFoundErrorson las mismas clases de excepción tipadas en todos los clientes: API directa, Bedrock y Vertex AI las lanzan de la misma manera.- Capturar la clase de excepción específica, en lugar de una
except Exceptionsimple, le permite mostrar un mensaje de remediación apropiado para la plataforma en lugar de un error genérico. - El error más común en la primera ejecución en cualquier plataforma en la nube es un problema de permisos o de solicitud de acceso, no un error de código; verifique IAM y el acceso al modelo antes de depurar la solicitud en sí.
Ejemplos intermedios
7. Solicitar un perfil de inferencia entre regiones en Bedrock
Algunos modelos de Bedrock requieren un ID de perfil de inferencia en lugar de un ID de modelo simple por razones de capacidad o latencia.
from anthropic import AnthropicBedrock
client = AnthropicBedrock(aws_region="us-east-1")
response = client.messages.create(
model="us.anthropic.claude-sonnet-5", # ID de perfil de inferencia entre regiones
max_tokens=256,
messages=[{"role": "user", "content": "Summarize this quarter's cloud spend trend."}],
)
print(response.content[0].text)- Un ID de perfil de inferencia entre regiones (con prefijo de un código geográfico como
us.) enruta una única solicitud lógica a través de múltiples regiones de AWS para obtener un margen de capacidad. - No todos los modelos requieren uno; verifique en la consola de Bedrock si el modelo al que solicitó acceso necesita un ID de perfil o acepta un ID de modelo simple de una sola región.
- El aprovisionamiento del acceso al modelo subyacente y la solicitud de un perfil de inferencia son pasos separados; ambos deben realizarse antes de que esta llamada tenga éxito.
8. Elegir un endpoint regional para Vertex AI
Vertex AI le permite fijar la inferencia a una región específica, un valor multirregión o enrutar globalmente para la mejor disponibilidad.
from anthropic import AnthropicVertex
# Fijar a una región específica por razones de residencia de datos o latencia.
regional_client = AnthropicVertex(project_id="my-gcp-project", region="europe-west1")
# O usar "global" para que Anthropic enrute a la mejor región disponible.
global_client = AnthropicVertex(project_id="my-gcp-project", region="global")- Una región específica (como
europe-west1) es la elección correcta cuando los requisitos de residencia de datos o latencia fijan dónde debe ejecutarse la inferencia. - Se recomienda
region="global"por defecto cuando no tiene restricciones de residencia, ya que le da a Anthropic espacio para enrutar alrededor de los límites de capacidad regional. - La cuota se rastrea por proyecto y por región, por lo que cambiar de región más tarde puede requerir una solicitud de aumento de cuota separada.
Relacionado: Lista de verificación de residencia de datos y fijación de región para cargas de trabajo reguladas - cuando una región específica es un requisito de cumplimiento, no solo una preferencia.
9. Seleccionar un cliente de plataforma por variable de entorno
Un wrapper mínimo que elige la clase de cliente correcta al inicio, para que el código de la aplicación nunca tenga que saber qué plataforma está activa en un entorno determinado.
import os
import anthropic
from anthropic import AnthropicBedrock, AnthropicVertex
def get_client() -> anthropic.Anthropic:
platform = os.environ.get("CLAUDE_PLATFORM", "direct")
if platform == "bedrock":
return AnthropicBedrock(aws_region=os.environ["AWS_REGION"])
if platform == "vertex":
return AnthropicVertex(
project_id=os.environ["GCP_PROJECT_ID"],
region=os.environ.get("GCP_REGION", "global"),
)
return anthropic.Anthropic()
client = get_client()
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=256,
messages=[{"role": "user", "content": "What changed between staging and prod?"}],
)
print(response.content[0].text)- Cada clase de cliente expone la misma interfaz
messages.create, por lo que cambiar de plataforma es cuestión de intercambiar qué cliente devuelveget_client(). CLAUDE_PLATFORMcomo variable de entorno le permite ejecutar el mismo código contra la API directa en el desarrollo local y contra Bedrock o Vertex AI en un entorno implementado sin un cambio de código.- Este patrón es un paso ligero hacia una puerta de enlace autohospedada completa: centraliza la elección de la plataforma, pero aún no agrega almacenamiento en caché, conmutación por error o limitación de velocidad centralizada.
Relacionado: Construir una puerta de enlace autohospedada para enrutamiento, almacenamiento en caché y respaldo - el siguiente paso una vez que un simple cambio de entorno no es suficiente.
Versiones de la pila: Escrito para la línea de modelos Claude actual a partir de ~junio de 2026: Claude Fable 5, Claude Opus 4.8, Claude Sonnet 5 (el predeterminado) y Claude Haiku 4.5, y el SDK oficial de Python
anthropic(última versión 0.x). Los nombres de los modelos, los precios y las versiones del SDK cambian rápidamente; verifique los detalles actuales en platform.claude.com/docs antes de confiar en ellos.