Antes de empezar

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 en la mayoría de los casos. Para 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 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
  3. Revisar la documentación a continuación para ver qué características están soportadas

Ejemplo de inicio rápido

Limitaciones importantes de compatibilidad con OpenAI

Comportamiento de la API

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

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

La mayoría de los campos no soportados son ignorados 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 del 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 del sistema / desarrollador. Estos dos prompts pueden colocarse a lo largo de una conversación de chat a través de OpenAI. Dado que Anthropic solo admite un mensaje de sistema inicial, tomamos todos los mensajes del sistema/desarrollador y los concatenamos juntos con un solo salto de línea (\n) entre ellos. Esta cadena completa se proporciona entonces como un único mensaje del sistema al inicio de los mensajes.

Soporte para pensamiento extendido

Puedes habilitar las capacidades de pensamiento extendido agregando el parámetro thinking. Si bien 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 del razonamiento paso a paso de Claude, usa la API nativa de Anthropic.

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_tokensTotalmente soportado
max_completion_tokensTotalmente soportado
streamTotalmente soportado
stream_optionsTotalmente soportado
top_pTotalmente soportado
parallel_tool_callsTotalmente soportado
stopTodas las secuencias de parada que no sean espacios en blanco funcionan
temperatureEntre 0 y 1 (inclusive). 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 soportado
choices[]Siempre tendrá una longitud de 1
choices[].finish_reasonTotalmente soportado
choices[].indexTotalmente soportado
choices[].message.roleTotalmente soportado
choices[].message.contentTotalmente soportado
choices[].message.tool_callsTotalmente soportado
objectTotalmente soportado
createdTotalmente soportado
modelTotalmente soportado
finish_reasonTotalmente soportado
contentTotalmente soportado
usage.completion_tokensTotalmente soportado
usage.prompt_tokensTotalmente soportado
usage.total_tokensTotalmente 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 los mensajes de error solo para registro y depuración.

Compatibilidad de encabezados

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

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