Compatibilidad con SDK de OpenAI (beta)
Con algunos cambios en el código, puedes usar el SDK de OpenAI para probar la API de Anthropic. Anthropic proporciona una capa de compatibilidad que te permite evaluar rápidamente las capacidades del modelo Anthropic con un esfuerzo mínimo.
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:
- Usar un SDK oficial de OpenAI
- Cambiar lo siguiente
- Actualizar tu URL base para que apunte a la API de Anthropic
- Reemplazar tu clave de API con una clave de API de Anthropic
- Actualizar el nombre de tu modelo para usar un modelo Claude
- Revisar la documentación a continuación para conocer qué características son compatibles
Ejemplo de inicio rápido
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.
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 | Usa nombres de modelo Claude |
max_tokens | Totalmente compatible |
max_completion_tokens | Totalmente compatible |
stream | Totalmente compatible |
stream_options | Totalmente compatible |
top_p | Totalmente compatible |
parallel_tool_calls | Totalmente compatible |
stop | Todas las secuencias de parada sin espacios en blanco funcionan |
temperature | Entre 0 y 1 (inclusive). Los valores mayores que 1 se limitan 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 | Totalmente compatible |
choices[] | Siempre tendrá una longitud de 1 |
choices[].finish_reason | Totalmente compatible |
choices[].index | Totalmente compatible |
choices[].message.role | Totalmente compatible |
choices[].message.content | Totalmente compatible |
choices[].message.tool_calls | Totalmente compatible |
object | Totalmente compatible |
created | Totalmente compatible |
model | Totalmente compatible |
finish_reason | Totalmente compatible |
content | Totalmente compatible |
usage.completion_tokens | Totalmente compatible |
usage.prompt_tokens | Totalmente compatible |
usage.total_tokens | Totalmente compatible |
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 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.
Encabezado | Estado de soporte |
---|---|
x-ratelimit-limit-requests | Totalmente compatible |
x-ratelimit-limit-tokens | Totalmente compatible |
x-ratelimit-remaining-requests | Totalmente compatible |
x-ratelimit-remaining-tokens | Totalmente compatible |
x-ratelimit-reset-requests | Totalmente compatible |
x-ratelimit-reset-tokens | Totalmente compatible |
retry-after | Totalmente compatible |
request-id | Totalmente compatible |
openai-version | Siempre 2020-10-01 |
authorization | Totalmente compatible |
openai-processing-ms | Siempre vacío |