Envía comentarios o errores relacionados con la función de compatibilidad del SDK de OpenAI aquí.

Antes de comenzar

Esta capa de compatibilidad está destinada a probar y comparar las capacidades del modelo con un esfuerzo de desarrollo mínimo y no se considera una solución a largo plazo o lista para producción para la mayoría de los casos de uso. Para obtener la mejor experiencia y acceso al conjunto completo de funciones de la API de Anthropic (procesamiento de PDF, citas, pensamiento extendido y almacenamiento en caché de prompts), recomendamos utilizar la API nativa de Anthropic.

Comenzando con el SDK de OpenAI

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

  1. Usar un SDK oficial de OpenAI
  2. Cambiar lo siguiente
  3. Revisar la documentación a continuación para conocer qué características son compatibles

Ejemplo de inicio rápido

from openai import OpenAI

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

response = client.chat.completions.create(
    model="claude-opus-4-20250514", # Nombre del modelo de Anthropic
    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

Aquí están las diferencias más sustanciales respecto al uso de OpenAI:

  • El parámetro strict para la llamada a funciones se ignora, lo que significa que el JSON de uso de herramientas no está garantizado que siga el esquema proporcionado.
  • La entrada de audio no es compatible; simplemente se ignorará y se eliminará de la entrada
  • El almacenamiento en caché de prompts no es compatible, pero sí lo es en el SDK de Anthropic
  • Los mensajes del sistema/desarrollador se elevan y 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 están documentados a continuación.

Consideraciones sobre la calidad de salida

Si has hecho muchos ajustes a tu prompt, es probable que esté bien ajustado 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 directamente a los parámetros de la API de Anthropic, pero una diferencia distintiva es el manejo de los prompts de sistema / desarrollador. Estos dos prompts pueden colocarse a lo largo de una conversación de chat a través de OpenAI. Como Anthropic solo admite un mensaje de sistema inicial, tomamos todos los mensajes de sistema/desarrollador y los concatenamos juntos con un solo salto de línea (\n) entre ellos. Esta cadena completa se proporciona como un único mensaje de sistema al inicio de los mensajes.

Soporte para pensamiento extendido

Puedes habilitar las capacidades de pensamiento extendido añadiendo 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 obtener todas las funciones de pensamiento extendido, incluido el acceso a la salida de razonamiento paso a paso de Claude, utiliza 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
modelUsa nombres de modelo 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 sin 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
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
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 consistentes con la API de OpenAI. Sin embargo, los mensajes de error detallados no serán equivalentes. Recomendamos usar los mensajes de error solo para registro y depuración.

Compatibilidad de encabezados

Aunque el SDK de OpenAI gestiona automáticamente los encabezados, aquí está la lista completa de encabezados compatibles con la API de Anthropic para desarrolladores que necesitan trabajar con ellos directamente.

EncabezadoEstado de soporte
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