Esta capa de compatibilidad está destinada principalmente a probar y comparar las capacidades del modelo, y no se considera una solución a largo plazo o lista para producción para la mayoría de casos de uso. Aunque tenemos la intención de mantenerla completamente funcional y no hacer cambios que rompan la compatibilidad, nuestra prioridad es la confiabilidad y efectividad de la API de Anthropic.

Para más información sobre las limitaciones de compatibilidad conocidas, consulta Limitaciones importantes de compatibilidad con OpenAI.

Si encuentras algún problema con la función de compatibilidad del SDK de OpenAI, por favor háznoslo saber aquí.

Para la mejor experiencia y acceso al conjunto completo de características de la API de Anthropic (procesamiento de PDF, citas, pensamiento extendido, y caché de prompts), recomendamos usar la API nativa de Anthropic.

Comenzando con el SDK de OpenAI

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

  1. Usar un SDK oficial de OpenAI
  2. Cambiar lo siguiente
    • Actualizar tu URL base para apuntar a la API de Anthropic
    • Reemplazar tu clave API con una clave API de Anthropic
    • Actualizar el nombre de tu modelo para usar un modelo Claude
  3. Revisar la documentación a continuación para ver qué características están soportadas

Ejemplo de inicio rápido

from openai import OpenAI

client = OpenAI(
    api_key="ANTHROPIC_API_KEY",  # Tu clave API de Anthropic
    base_url="https://api.anthropic.com/v1/"  # Endpoint de la API de Anthropic
)

response = client.chat.completions.create(
    model="claude-opus-4-20250514", # Nombre del modelo de Anthropic
    messages=[
        {"role": "system", "content": "Eres un asistente útil."},
        {"role": "user", "content": "¿Quién eres?"}
    ],
)

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

Limitaciones importantes de compatibilidad con OpenAI

Comportamiento de la API

Aquí están las diferencias más sustanciales de usar OpenAI:

  • El parámetro strict para llamadas de función es ignorado, lo que significa que el JSON de uso de herramientas no está garantizado para seguir el esquema suministrado.
  • La entrada de audio no está soportada; simplemente será ignorada y eliminada de la entrada
  • El caché de prompts no está soportado, pero sí está soportado en el SDK de Anthropic
  • Los mensajes de sistema/desarrollador son elevados y concatenados al inicio de la conversación, ya que Anthropic solo soporta un único mensaje de sistema inicial.

La mayoría de campos no soportados son silenciosamente ignorados en lugar de producir errores. Todos estos están documentados a continuación.

Consideraciones de calidad de salida

Si has hecho muchos ajustes a tu prompt, es probable que esté bien sintonizado específicamente para OpenAI. Considera usar nuestro mejorador de prompts en la Consola de Anthropic como un buen punto de partida.

Elevación de mensajes de Sistema / Desarrollador

La mayoría de las entradas al SDK de OpenAI se mapean claramente y directamente a los parámetros de la API de Anthropic, pero una diferencia distinta es el manejo de los prompts de sistema / desarrollador. Estos dos prompts pueden ser puestos a lo largo de una conversación de chat vía OpenAI. Dado que Anthropic solo soporta un mensaje de sistema inicial, tomamos todos los mensajes de sistema/desarrollador y los concatenamos juntos con una sola nueva línea (\n) entre ellos. Esta cadena completa es entonces suministrada como un único mensaje de sistema al inicio de los mensajes.

Soporte de pensamiento extendido

Puedes habilitar las capacidades de pensamiento extendido agregando el parámetro thinking. Aunque esto mejorará el razonamiento de Claude para tareas complejas, el SDK de OpenAI no devolverá el proceso de pensamiento detallado de Claude. Para las características completas de pensamiento extendido, incluyendo acceso a la salida de razonamiento paso a paso de Claude, usa la API nativa de Anthropic.

response = client.chat.completions.create(
    model="claude-opus-4-20250514",
    messages=...,
    extra_body={
        "thinking": { "type": "enabled", "budget_tokens": 2000 }
    }
)

Límites de tasa

Los límites de tasa siguen los límites estándar de Anthropic para el endpoint /v1/messages.

Soporte Detallado de API Compatible con OpenAI

Campos de solicitud

Campos simples

CampoEstado de soporte
modelUsar nombres de modelo Claude
max_tokensCompletamente soportado
max_completion_tokensCompletamente soportado
streamCompletamente soportado
stream_optionsCompletamente soportado
top_pCompletamente soportado
parallel_tool_callsCompletamente soportado
stopTodas las secuencias de parada que no sean espacios en blanco funcionan
temperatureEntre 0 y 1 (inclusive). Valores mayores que 1 son limitados a 1.
nDebe ser exactamente 1
logprobsIgnorado
metadataIgnorado
response_formatIgnorado
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 soporte
idCompletamente soportado
choices[]Siempre tendrá una longitud de 1
choices[].finish_reasonCompletamente soportado
choices[].indexCompletamente soportado
choices[].message.roleCompletamente soportado
choices[].message.contentCompletamente soportado
choices[].message.tool_callsCompletamente soportado
objectCompletamente soportado
createdCompletamente soportado
modelCompletamente soportado
finish_reasonCompletamente soportado
contentCompletamente soportado
usage.completion_tokensCompletamente soportado
usage.prompt_tokensCompletamente soportado
usage.total_tokensCompletamente soportado
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 consistentes con la API de OpenAI. Sin embargo, los mensajes de error detallados no serán equivalentes. Recomendamos usar solo los mensajes de error para registro y depuración.

Compatibilidad de encabezados

Aunque el SDK de OpenAI maneja automáticamente los encabezados, aquí está la lista completa de encabezados soportados por la API de Anthropic para desarrolladores que necesiten trabajar con ellos directamente.

EncabezadoEstado de Soporte
x-ratelimit-limit-requestsCompletamente soportado
x-ratelimit-limit-tokensCompletamente soportado
x-ratelimit-remaining-requestsCompletamente soportado
x-ratelimit-remaining-tokensCompletamente soportado
x-ratelimit-reset-requestsCompletamente soportado
x-ratelimit-reset-tokensCompletamente soportado
retry-afterCompletamente soportado
request-idCompletamente soportado
openai-versionSiempre 2020-10-01
authorizationCompletamente soportado
openai-processing-msSiempre vacío