Saltar al contenido principal
Anthropic Claude es un sistema de conversación AI muy potente, que puede generar respuestas fluidas y naturales en cuestión de segundos simplemente ingresando una palabra clave. Claude se destaca en la industria por su excepcional capacidad de comprensión y generación de lenguaje, y hoy en día, Claude ya se utiliza ampliamente en diversas industrias y campos, su influencia es cada vez más notable. Ya sea en conversaciones diarias, escritura creativa, o consultoría profesional y programación de código, Claude puede proporcionar una asistencia inteligente asombrosa, mejorando enormemente la eficiencia y creatividad del trabajo humano. Este documento describe principalmente el proceso de uso de la API de Finalización de Chat de Claude, que nos permite utilizar fácilmente la función de conversación oficial de Claude.

Proceso de Solicitud

Para usar la API de Finalización de Chat de Claude, primero puedes ir a la página de API de Finalización de Chat de Claude y hacer clic en el botón “Acquire” para obtener las credenciales necesarias para la solicitud: Si aún no has iniciado sesión o registrado, serás redirigido automáticamente a la página de inicio de sesión que te invita a registrarte e iniciar sesión. Después de registrarte e iniciar sesión, serás redirigido automáticamente a la página actual. En la primera solicitud, se te otorgará un crédito gratuito, lo que te permitirá usar esta API de forma gratuita.

Uso Básico

A continuación, puedes completar el contenido correspondiente en la interfaz, como se muestra en la imagen:

En la primera vez que uses esta interfaz, necesitarás completar al menos tres campos: uno es authorization, que puedes seleccionar directamente en la lista desplegable. El otro parámetro es model, que es la categoría del modelo de Claude que elegimos usar; aquí tenemos principalmente 20 modelos, y puedes ver los detalles en los modelos que proporcionamos. El último parámetro es messages, que es un array de las palabras clave que ingresamos; es un array que permite subir múltiples palabras clave a la vez, cada una de las cuales contiene role y content, donde role indica el rol del preguntador, y hemos proporcionado tres identidades: user, assistant, system. El otro content es el contenido específico de nuestra pregunta. También puedes notar que a la derecha hay un código de llamada correspondiente que puedes copiar y ejecutar directamente, o puedes hacer clic en el botón “Try” para realizar pruebas. Parámetros opcionales comunes:
  • max_tokens: limita el número máximo de tokens en una sola respuesta.
  • temperature: aleatoriedad en la generación, entre 0-2, cuanto mayor sea el valor, más disperso será.
  • n: cuántas respuestas candidatas generar a la vez.
  • response_format: configuración del formato de respuesta.

Después de la llamada, encontramos que el resultado devuelto es el siguiente:
{
  "id": "msg_bdrk_01Q6WN27v95ypCa1kbanAQ6K",
  "model": "claude-opus-4-20250514",
  "object": "chat.completion",
  "created": 1768619365,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "¡Hola! ¿Cómo puedo ayudarte hoy?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 8,
    "completion_tokens": 12,
    "total_tokens": 20,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "text_tokens": 0,
      "audio_tokens": 0,
      "image_tokens": 0
    },
    "completion_tokens_details": {
      "text_tokens": 0,
      "audio_tokens": 0,
      "reasoning_tokens": 0
    },
    "input_tokens": 0,
    "output_tokens": 0,
    "input_tokens_details": null,
    "claude_cache_creation_5_m_tokens": 0,
    "claude_cache_creation_1_h_tokens": 0
  }
}
El resultado devuelto tiene varios campos, que se describen a continuación:
  • id, el ID de la tarea de conversación generada, utilizado para identificar de manera única esta tarea de conversación.
  • model, el modelo de Claude seleccionado.
  • choices, la información de respuesta que Claude proporciona para las palabras clave.
  • usage: estadísticas sobre el uso de tokens para esta pregunta y respuesta.
Dentro de choices se incluye la información de respuesta de Claude, donde choices contiene la información específica de la respuesta de Claude, como se puede ver en la imagen.

Se puede observar que el campo content dentro de choices contiene el contenido específico de la respuesta de Claude.

Respuesta en Flujo

Esta interfaz también admite respuestas en flujo, lo cual es muy útil para la integración en páginas web, ya que permite mostrar el contenido palabra por palabra. Si deseas que la respuesta se devuelva en flujo, puedes cambiar el parámetro stream en el encabezado de la solicitud a true. El cambio se muestra en la imagen, pero el código de llamada necesita tener los cambios correspondientes para admitir respuestas en flujo.

Una vez que cambies stream a true, la API devolverá los datos JSON correspondientes línea por línea, y a nivel de código, necesitaremos hacer los cambios necesarios para obtener los resultados línea por línea. Código de ejemplo de llamada en Python:
import requests

url = "https://api.acedata.cloud/v1/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "claude-opus-4-20250514",
    "messages": [{"role":"user","content":"Hello"}],
    "stream": True
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
El efecto de salida es el siguiente:
data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {"content": "", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {"content": ""}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {"content": "¡Hola!"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {"content": " ¿Cómo puedo ayudarte?"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {"content": " hoy?"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [{"delta": {}, "logprobs": null, "finish_reason": "stop", "index": 0}], "usage": null}

data: {"id": "msg_bdrk_01LPPqDjLKMgfSwTRMRty9VT", "object": "chat.completion.chunk", "created": 1768619445, "model": "claude-opus-4-20250514", "system_fingerprint": null, "choices": [], "usage": {"prompt_tokens": 8, "completion_tokens": 12, "total_tokens": 20, "prompt_tokens_details": {"cached_tokens": 0, "text_tokens": 0, "audio_tokens": 0, "image_tokens": 0}, "completion_tokens_details": {"text_tokens": 0, "audio_tokens": 0, "reasoning_tokens": 0}, "input_tokens": 0, "output_tokens": 0, "input_tokens_details": null, "claude_cache_creation_5_m_tokens": 0, "claude_cache_creation_1_h_tokens": 0}}

data: [DONE]
Se puede ver que la respuesta contiene muchos data, donde data contiene las choices, que son el contenido de la respuesta más reciente, consistente con el contenido introducido anteriormente. choices es el contenido de respuesta nuevo, que puede ser integrado en su sistema según los resultados. Al mismo tiempo, el final de la respuesta en flujo se determina según el contenido de data; si el contenido es [DONE], significa que la respuesta en flujo ha terminado por completo. El resultado de data devuelto tiene varios campos, que se describen a continuación:
  • id, el ID que genera esta tarea de conversación, utilizado para identificar de manera única esta tarea de conversación.
  • model, el modelo seleccionado del sitio web de Claude.
  • choices, la información de respuesta que Claude proporciona en respuesta a la consulta.
JavaScript también es compatible, por ejemplo, el código de llamada en flujo de Node.js es el siguiente:
const options = {
  method: "post",
  headers: {
    accept: "application/json",
    authorization: "Bearer {token}",
    "content-type": "application/json",
  },
  body: JSON.stringify({
    model: "claude-opus-4-20250514",
    messages: [{ role: "user", content: "Hola" }],
    stream: true,
  }),
};

fetch("https://api.acedata.cloud/v1/chat/completions", options)
  .then((response) => response.json())
  .then((response) => console.log(response))
  .catch((err) => console.error(err));
Ejemplo de código en Java:
JSONObject jsonObject = new JSONObject();
jsonObject.put("model", "claude-opus-4-20250514");
jsonObject.put("messages", [{"role":"user","content":"Hola"}]);
jsonObject.put("stream", true);
MediaType mediaType = "application/json; charset=utf-8".toMediaType();
RequestBody body = jsonObject.toString().toRequestBody(mediaType);
Request request = new Request.Builder()
  .url("https://api.acedata.cloud/v1/chat/completions")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {token}")
  .addHeader("content-type", "application/json")
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();
System.out.print(response.body!!.string())
Otros lenguajes pueden ser reescritos de manera similar, el principio es el mismo.

Diálogo en múltiples rondas

Si desea integrar la función de diálogo en múltiples rondas, necesita cargar múltiples consultas en el campo messages, ejemplos específicos de múltiples consultas se muestran en la imagen a continuación:

Código de llamada de ejemplo en Python:
import requests

url = "https://api.acedata.cloud/v1/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "claude-opus-4-20250514",
    "messages": [{"role":"user","content":"Hola"},{"role":"assistant","content":"¡Hola! ¿Cómo puedo ayudarte hoy?"},{"role":"user","content":"¿Qué dije justo ahora?"}]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Al cargar múltiples consultas, se puede lograr fácilmente un diálogo en múltiples rondas, obteniendo la siguiente respuesta:
{
  "id": "msg_bdrk_01Y1wfQmd89g968TVbFu57Yc",
  "model": "claude-opus-4-20250514",
  "object": "chat.completion",
  "created": 1768619674,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Dijiste \"Hola\" - ese fue tu primer mensaje para mí en nuestra conversación."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 29,
    "completion_tokens": 20,
    "total_tokens": 49,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "text_tokens": 0,
      "audio_tokens": 0,
      "image_tokens": 0
    },
    "completion_tokens_details": {
      "text_tokens": 0,
      "audio_tokens": 0,
      "reasoning_tokens": 0
    },
    "input_tokens": 0,
    "output_tokens": 0,
    "input_tokens_details": null,
    "claude_cache_creation_5_m_tokens": 0,
    "claude_cache_creation_1_h_tokens": 0
  }
}
可以看到,choices 包含的信息与基本使用的内容是一致的,这个包含了 Claude 针对多个对话进行回复的具体内容,这样就可以根据多个对话内容来回答对应的问题了。

深度思考模型

claude-opus-4-20250514-thinking 和 claude-sonnet-4-20250514-thinking 模型与其它模型不同,它可以根据提问词来进行深度思考来回答,并且将思考过程的结果返回给你,本文将通过一个具体示例来演示深度思考功能,接下来就可以在 Claude Chat Completion API 界面上填写对应的内容,如图所示:

同时您可以注意到右侧有对应的调用代码生成,您可以复制代码直接运行,也可以直接点击「Try」按钮进行测试。

调用之后,我们发现返回结果如下:
{
  "id": "msg_018J4YaRoGHtbsTVb4Vvz7oH",
  "object": "chat.completion",
  "created": 1755444014,
  "model": "claude-sonnet-4-20250514-thinking",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "El seno de 30 grados es **1/2** o **0.5**.\n\nEste es uno de los valores trigonométricos fundamentales. En un triángulo 30-60-90, los lados están en la proporción 1:√3:2, donde el lado opuesto al ángulo de 30° tiene longitud 1 y la hipotenusa tiene longitud 2, lo que nos da sin(30°) = 1/2.",
        "reasoning_content": "El usuario está preguntando por el seno de 30 grados. Esta es una pregunta básica de trigonometría.\n\nEl seno de 30 grados es un valor bien conocido. En un triángulo 30-60-90, los lados están en la proporción 1:√3:2. \n\nPara un ángulo de 30°:\n- El lado opuesto es 1\n- La hipotenusa es 2\n- Así que sin(30°) = opuesto/hipotenusa = 1/2 = 0.5\n\nEste es uno de los valores trigonométricos estándar que comúnmente se memorizan."
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 60,
    "completion_tokens": 239,
    "total_tokens": 299,
    "prompt_tokens_details": {
      "cached_tokens_details": {}
    },
    "completion_tokens_details": {}
  }
}
可以看到,choices 里面的回答信息是经过深度思考后得到的,并且也给出了相关的思考过程内容,其中在contentreasoning_content表示模型的思考过程。choices 里面的回答信息是要通过 markdown 语法进行渲染,这样才能获得最佳的体验,最后这也体现出我们模型的联网功能的强大优势。

视觉模型

claude-sonnet-4-20250514 是 Claude 开发的多模态大型语言模型,它在 claude-4 的基础上增加了视觉理解能力。这个模型可以同时处理文本和图像输入,实现了跨模态的理解和生成。 使用 claude-sonnet-4-20250514 模型的文本处理是与上文的基本使用内容一致的,下面将简要介绍一下如果使用模型的图像处理能力。 使用 claude-sonnet-4-20250514 模型的图像处理能力主要是通过在原有的 content 内容基础上添加一个 type 字段,通过该字段可以知道上传的是文本还是图片,从而使用 claude-sonnet-4-20250514 模型的图像处理能力,下面主要讲述采用 Curl 和 Python 俩种方式来调用该功能。
  • Curl 脚本方式
curl -X POST 'https://api.acedata.cloud/v1/chat/completions' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
    "model": "claude-sonnet-4-20250514",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "¿Qué hay en esta imagen?"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "https://cdn.acedata.cloud/ueugot.png"
            }
          }
        ]
      }
    ]
  }'
  • Python 脚本方式
import requests

url = "https://api.acedata.cloud/v1/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "claude-sonnet-4-20250514",
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "text", "text": "¿Qué hay en esta imagen?"
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://cdn.acedata.cloud/ueugot.png"
                    }
                },
            ],
        }
    ]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
然后可以得到下面的结果,结果里面的字段信息是与上文一致的,具体的如下:
{
  "id": "msg_bdrk_01NCrxpZmV17bhQJJRQEFEb9",
  "model": "claude-sonnet-4-20250514",
  "object": "chat.completion",
  "created": 1768628904,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Esta imagen muestra una interfaz de configuración de solicitud de API para lo que parece ser un servicio de finalización de chat de IA. Aquí están los elementos clave:\n\n**Parámetros del cuerpo de la solicitud:**\n\n1. **model** (cadena requerida) - Establecido en \"claude-opus-4-202505...\" - especifica qué modelo de IA usar\n\n2. **messages** (arreglo requerido) - Contiene el historial de conversación con:\n   - **role** (cadena requerida) - Establecido en \"user\" \n   - **content** (cadena requerida) - Contiene \"Hola\" como el contenido del mensaje\n\n3. **stream** (booleano) - Establecido en \"true\" - habilita deltas de mensajes parciales como en ChatGPT\n\n4. **max_tokens** (número) - Campo para establecer el número máximo de tokens que se pueden generar en la respuesta\n\n5. **n** (número) - Especifica cuántas opciones de finalización de chat generar para cada entrada\n\nLa interfaz tiene un tema oscuro con texto blanco sobre fondos negros/grises oscuros. Hay un botón de \"Rellenar Ejemplo\" en la esquina inferior derecha y varios menús desplegables y campos de entrada para configurar los parámetros de solicitud de API. Un ícono de papelera/eliminar rojo es visible, probablemente para eliminar entradas de mensajes."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 1570,
    "completion_tokens": 252,
    "total_tokens": 1822,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "text_tokens": 0,
      "audio_tokens": 0,
      "image_tokens": 0
    },
    "completion_tokens_details": {
      "text_tokens": 0,
      "audio_tokens": 0,
      "reasoning_tokens": 0
    },
    "input_tokens": 0,
    "output_tokens": 0,
    "input_tokens_details": null,
    "claude_cache_creation_5_m_tokens": 0,
    "claude_cache_creation_1_h_tokens": 0
  }
}
Se puede ver que el contenido de la respuesta se basa en imágenes, por lo que a través de las dos formas mencionadas anteriormente se puede utilizar fácilmente la capacidad de procesamiento de texto e imagen del modelo claude-3-7-sonnet-20250219.

Manejo de errores

Al llamar a la API, si se encuentra con un error, la API devolverá el código de error y la información correspondiente. Por ejemplo:
  • 400 token_mismatched: Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
  • 400 api_not_implemented: Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
  • 401 invalid_token: No autorizado, token de autorización inválido o faltante.
  • 429 too_many_requests: Demasiadas solicitudes, ha superado el límite de tasa.
  • 500 api_error: Error interno del servidor, algo salió mal en el servidor.

Ejemplo de respuesta de error

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Conclusión

A través de este documento, ha aprendido cómo utilizar la API de Claude Chat Completion para implementar fácilmente la funcionalidad de conversación oficial de Claude. Esperamos que este documento le ayude a integrar y utilizar mejor esta API. Si tiene alguna pregunta, no dude en ponerse en contacto con nuestro equipo de soporte técnico.