Compatibilidad con el SDK de OpenAI
Anthropic proporciona una capa de compatibilidad que te permite usar el SDK de OpenAI para probar la API de Anthropic. Con algunos cambios de código, puedes evaluar rápidamente las capacidades del modelo de Anthropic.
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:
- Usar un SDK oficial de OpenAI
- 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
- 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 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.
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
Campo | Estado de soporte |
---|---|
model | Usar nombres de modelo Claude |
max_tokens | Completamente soportado |
max_completion_tokens | Completamente soportado |
stream | Completamente soportado |
stream_options | Completamente soportado |
top_p | Completamente soportado |
parallel_tool_calls | Completamente soportado |
stop | Todas las secuencias de parada que no sean espacios en blanco funcionan |
temperature | Entre 0 y 1 (inclusive). Valores mayores que 1 son limitados a 1. |
n | Debe ser exactamente 1 |
logprobs | Ignorado |
metadata | Ignorado |
response_format | Ignorado |
prediction | Ignorado |
presence_penalty | Ignorado |
frequency_penalty | Ignorado |
seed | Ignorado |
service_tier | Ignorado |
audio | Ignorado |
logit_bias | Ignorado |
store | Ignorado |
user | Ignorado |
modalities | Ignorado |
top_logprobs | Ignorado |
reasoning_effort | Ignorado |
Campos tools
/ functions
Campos del array messages
Campos de respuesta
Campo | Estado de soporte |
---|---|
id | Completamente soportado |
choices[] | Siempre tendrá una longitud de 1 |
choices[].finish_reason | Completamente soportado |
choices[].index | Completamente soportado |
choices[].message.role | Completamente soportado |
choices[].message.content | Completamente soportado |
choices[].message.tool_calls | Completamente soportado |
object | Completamente soportado |
created | Completamente soportado |
model | Completamente soportado |
finish_reason | Completamente soportado |
content | Completamente soportado |
usage.completion_tokens | Completamente soportado |
usage.prompt_tokens | Completamente soportado |
usage.total_tokens | Completamente soportado |
usage.completion_tokens_details | Siempre vacío |
usage.prompt_tokens_details | Siempre vacío |
choices[].message.refusal | Siempre vacío |
choices[].message.audio | Siempre vacío |
logprobs | Siempre vacío |
service_tier | Siempre vacío |
system_fingerprint | Siempre 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.
Encabezado | Estado de Soporte |
---|---|
x-ratelimit-limit-requests | Completamente soportado |
x-ratelimit-limit-tokens | Completamente soportado |
x-ratelimit-remaining-requests | Completamente soportado |
x-ratelimit-remaining-tokens | Completamente soportado |
x-ratelimit-reset-requests | Completamente soportado |
x-ratelimit-reset-tokens | Completamente soportado |
retry-after | Completamente soportado |
request-id | Completamente soportado |
openai-version | Siempre 2020-10-01 |
authorization | Completamente soportado |
openai-processing-ms | Siempre vacío |