Esta capa de compatibilidad está destinada principalmente a probar y comparar las capacidades de los modelos, y no se considera una solución a largo plazo ni lista para producción para la mayoría de los casos de uso. Si bien está pensada para mantenerse completamente funcional y no tener cambios disruptivos, la prioridad es la confiabilidad y efectividad de la API de Claude.
Para obtener 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 con el SDK de OpenAI, comparte tus comentarios a través de este formulario de comentarios de compatibilidad.
Para obtener la mejor experiencia y acceso al conjunto completo de funciones de la API de Claude (procesamiento de PDF, citas, pensamiento y almacenamiento en caché de prompts), usa la API de Claude nativa.
Para usar la función de compatibilidad con el SDK de OpenAI, necesitarás:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("ANTHROPIC_API_KEY"), # Your Claude API key
base_url="https://api.anthropic.com/v1/", # the Claude API endpoint
)
response = client.chat.completions.create(
model="claude-opus-5", # Claude model name
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who are you?"},
],
)
print(response.choices[0].message.content)Estas son las diferencias más sustanciales con respecto al uso de OpenAI:
strict para la llamada a funciones se ignora, lo que significa que no se garantiza que el JSON de tool use siga el esquema proporcionado. Para garantizar la conformidad con el esquema, usa la API de Claude nativa con Structured Outputs.La mayoría de los campos no compatibles se ignoran silenciosamente en lugar de producir errores. Todos ellos están documentados en las siguientes secciones.
Si has hecho muchos ajustes a tu prompt, es probable que esté bien afinado específicamente para OpenAI. Considera reelaborarlo para Claude usando la guía de mejores prácticas de prompting.
La mayoría de las entradas del SDK de OpenAI se asignan claramente de forma directa a los parámetros de la API de Anthropic, pero una diferencia notable es el manejo de los prompts de system / developer. Estos dos prompts se pueden colocar a lo largo de una conversación de chat a través de OpenAI. Dado que Anthropic solo admite un mensaje de sistema inicial, la API toma todos los mensajes de system/developer y los concatena con un único salto de línea (\n) entre ellos. Esta cadena completa se proporciona luego como un único mensaje de sistema al inicio de los mensajes.
Puedes habilitar el pensamiento agregando el parámetro thinking. En los modelos actuales el pensamiento es adaptativo, con Claude decidiendo cuándo y con qué profundidad pensar, y en los modelos Claude 5 está activado de forma predeterminada; el pensamiento extendido configurado manualmente es un modo heredado. Si bien el pensamiento mejora el razonamiento de Claude para tareas complejas, el SDK de OpenAI no devuelve el proceso de pensamiento detallado de Claude. Para obtener todas las funciones de pensamiento, incluido el acceso a la salida de razonamiento paso a paso de Claude, usa la API de Claude nativa.
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "Who are you?"}],
extra_body={"thinking": {"type": "enabled", "budget_tokens": 2000}},
)Los límites de velocidad siguen los límites estándar de Anthropic para el endpoint /v1/messages.
| Campo | Estado de soporte |
|---|---|
model | Usa nombres de modelos de 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. Para salida JSON, usa Structured Outputs con la API de Claude nativa |
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 |
tools / functionsmessages| 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 |
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. Usa los mensajes de error solo para registro y depuración.
Si bien el SDK de OpenAI gestiona automáticamente los encabezados, aquí está la lista completa de encabezados compatibles con la API de Claude para los desarrolladores que necesiten 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 |
Was this page helpful?