Claude Platform Docs
CLI, SDKs y bibliotecasBibliotecas e integraciones

Compatibilidad con el SDK de OpenAI

Anthropic proporciona una capa de compatibilidad que te permite usar el SDK de OpenAI para probar la Claude API. Con unos pocos cambios en el código, puedes evaluar rápidamente las capacidades de los modelos de Anthropic.

Primeros pasos con el SDK de OpenAI

Para usar la función de compatibilidad con el SDK de OpenAI, necesitarás:

  1. Usar un SDK oficial de OpenAI
  2. Cambiar lo siguiente
  3. Revisar las siguientes secciones para saber qué funciones son compatibles

Ejemplo de inicio rápido

import os

from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("ANTHROPIC_API_KEY"),  # Your Claude API key
    base_url="https://api.anthropic.com/v1/",  # the Claude API endpoint
)

response = client.chat.completions.create(
    model="claude-opus-5",  # Claude model name
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who are you?"},
    ],
)

print(response.choices[0].message.content)

Limitaciones importantes de compatibilidad con OpenAI

Comportamiento de la API

Estas son las diferencias más sustanciales con respecto al uso de OpenAI:

  • El parámetro strict para la llamada de funciones se ignora, lo que significa que no se garantiza que el JSON de "tool use" (uso de herramientas) siga el esquema proporcionado. Para garantizar la conformidad con el esquema, usa la Claude API nativa con Structured Outputs.
  • La entrada de audio no es compatible; se ignorará y se eliminará de la entrada
  • El almacenamiento en caché de prompts no es compatible, pero sí lo es en los SDK de Anthropic
  • Los mensajes de sistema/desarrollador se elevan y se concatenan al principio de la conversación, ya que Anthropic solo admite un único mensaje de sistema inicial.

La mayoría de los campos no compatibles se ignoran silenciosamente en lugar de producir errores. Todos ellos están documentados en las siguientes secciones.

Consideraciones sobre la calidad de la salida

Si has hecho muchos ajustes a tu prompt, es probable que esté bien afinado específicamente para OpenAI. Considera reelaborarlo para Claude usando la guía de mejores prácticas de prompting.

Elevación de mensajes de sistema / desarrollador

La mayoría de las entradas del SDK de OpenAI se corresponden claramente de forma directa con los parámetros de la API de Anthropic, pero una diferencia notable es el manejo de los prompts de sistema / desarrollador. Con OpenAI, estos dos prompts pueden colocarse a lo largo de toda una conversación de chat. Dado que Anthropic solo admite un mensaje de sistema inicial, la API toma todos los mensajes de sistema/desarrollador y los concatena con un único salto de línea (\n) entre ellos. Esta cadena completa se proporciona luego como una única "system prompt" (indicación del sistema) al inicio de los mensajes.

Compatibilidad con el pensamiento

Puedes habilitar el pensamiento agregando el parámetro thinking. En los modelos actuales, el pensamiento es adaptativo, y Claude decide cuándo y con qué profundidad pensar; en los modelos Claude 5 está activado de forma predeterminada. El "extended thinking" (pensamiento extendido) configurado manualmente es un modo heredado. Aunque el pensamiento mejora el razonamiento de Claude en tareas complejas, el SDK de OpenAI no devuelve el proceso de pensamiento detallado de Claude. Para obtener todas las funciones de pensamiento, incluido el acceso a la salida del razonamiento paso a paso de Claude, usa la Claude API nativa.

response = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "Who are you?"}],
    extra_body={"thinking": {"type": "enabled", "budget_tokens": 2000}},
)

Límites de velocidad

Los "rate limits" (límites de velocidad) siguen los límites estándar de Anthropic para el endpoint /v1/messages.

Compatibilidad detallada con la API compatible con OpenAI

Campos de solicitud

Campos simples

CampoEstado de compatibilidad
modelUsa nombres de modelos Claude
max_tokensTotalmente compatible
max_completion_tokensTotalmente compatible
streamTotalmente compatible
stream_optionsTotalmente compatible
top_pTotalmente compatible
parallel_tool_callsTotalmente compatible
stopTodas las secuencias de parada que no sean espacios en blanco funcionan
temperatureEntre 0 y 1 (inclusive). Los valores mayores que 1 se limitan a 1.
nDebe ser exactamente 1
logprobsIgnorado
metadataIgnorado
response_formatIgnorado. Para salida JSON, usa Structured Outputs con la Claude API nativa
predictionIgnorado
presence_penaltyIgnorado
frequency_penaltyIgnorado
seedIgnorado
service_tierIgnorado
audioIgnorado
logit_biasIgnorado
storeIgnorado
userIgnorado
modalitiesIgnorado
top_logprobsIgnorado
reasoning_effortIgnorado

Campos tools / functions

Campos del array messages

Campos de respuesta

CampoEstado de compatibilidad
idTotalmente compatible
choices[]Siempre tendrá una longitud de 1
choices[].finish_reasonTotalmente compatible
choices[].indexTotalmente compatible
choices[].message.roleTotalmente compatible
choices[].message.contentTotalmente compatible
choices[].message.tool_callsTotalmente compatible
objectTotalmente compatible
createdTotalmente compatible
modelTotalmente compatible
finish_reasonTotalmente compatible
contentTotalmente compatible
usage.completion_tokensTotalmente compatible
usage.prompt_tokensTotalmente compatible
usage.total_tokensTotalmente compatible
usage.completion_tokens_detailsSiempre vacío
usage.prompt_tokens_detailsSiempre vacío
choices[].message.refusalSiempre vacío
choices[].message.audioSiempre vacío
logprobsSiempre vacío
service_tierSiempre vacío
system_fingerprintSiempre vacío

Compatibilidad de mensajes de error

La capa de compatibilidad mantiene formatos de error coherentes con la API de OpenAI. Sin embargo, los mensajes de error detallados no serán equivalentes. Usa los mensajes de error únicamente para registro y depuración.

Compatibilidad de encabezados

Aunque el SDK de OpenAI gestiona los encabezados automáticamente, esta es la lista completa de encabezados compatibles con la Claude API para los desarrolladores que necesiten trabajar con ellos directamente.

EncabezadoEstado de compatibilidad
x-ratelimit-limit-requestsTotalmente compatible
x-ratelimit-limit-tokensTotalmente compatible
x-ratelimit-remaining-requestsTotalmente compatible
x-ratelimit-remaining-tokensTotalmente compatible
x-ratelimit-reset-requestsTotalmente compatible
x-ratelimit-reset-tokensTotalmente compatible
retry-afterTotalmente compatible
request-idTotalmente compatible
openai-versionSiempre 2020-10-01
authorizationTotalmente compatible
openai-processing-msSiempre vacío

Was this page helpful?