Skip to content

Formato compatible con OpenAI de Claude

Fast-Token permite invocar modelos Anthropic Claude mediante el protocolo de API de OpenAI. Si ya tienes aplicaciones basadas en el SDK de OpenAI o /v1/chat/completions, normalmente basta con cambiar base_url y model para conectar Claude, sin reescribir a la API nativa Anthropic Messages.

Esta página se centra en la guía de uso. Para cuerpos de solicitud, campos de respuesta y depuración en línea de cada interfaz, consulta la documentación de ChatGPT y los enlaces de la tabla de capacidades.

Dos formas de integración

ComparaciónFormato compatible con OpenAI (esta página)API nativa de Claude (otros documentos de esta carpeta)
Ruta típicaPOST /v1/chat/completionsPOST /v1/messages
Cuerpo de solicitudCampos OpenAI: messages, model, stream, etc.Campos Anthropic: messages, system, thinking, etc.
Caso de usoClientes OpenAI existentes, puerta de enlace multi-modelo, migración rápidaFunciones propias de Claude (presupuesto de pensamiento extendido, Tool Use, PDF, búsqueda web, etc.)
DocumentaciónEsta página + sección ChatPáginas API del grupo Chat de esta carpeta

Ambos modos comparten la misma API Key y URL de puerta de enlace. La facturación sigue el modelo correspondiente en el mercado de modelos.

Configuración

Puerta de enlace y autenticación

  • Base URL: https://fast-token.com/v1 (igual que Primeros pasos)
  • Autenticación: cabecera Authorization: Bearer <Fast-Token_API_KEY>
  • Nombre del modelo: copia un ID con claude del mercado de modelos en el campo model

SDK de OpenAI (recomendado)

Apunta base_url del SDK oficial a Fast-Token; el resto es igual que OpenAI:

python
from openai import OpenAI

client = OpenAI(
    base_url="https://fast-token.com/v1",
    api_key="<Fast-Token_API_KEY>",
)

completion = client.chat.completions.create(
    model="claude-sonnet-4-20250514",  # según el mercado de modelos
    messages=[
        {"role": "user", "content": "用一句话介绍你自己"},
    ],
)
print(completion.choices[0].message.content)
javascript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://fast-token.com/v1",
  apiKey: "<Fast-Token_API_KEY>",
});

const completion = await client.chat.completions.create({
  model: "claude-sonnet-4-20250514",
  messages: [{ role: "user", content: "用一句话介绍你自己" }],
});
console.log(completion.choices[0].message.content);

Para chat en streaming, establece stream: true. Ver Crear finalización de chat (streaming).

Resumen de capacidades del formato chat compatible

Las siguientes capacidades se acceden por la ruta compatible con OpenAI. En la consola o Apifox suelen agruparse como 「formato compatible chat」. En la práctica suele ser el mismo POST /v1/chat/completions, diferenciado por modelo, streaming y estructura de mensajes.

CapacidadDescripciónReferencia
Crear chat con pensamientoDiálogo con proceso de «pensamiento» del modeloStreaming (extra_body.enable_thinking)
Crear finalización de chat (streaming)Chat de texto multi-turno estándar, salida SSECrear finalización de chat (streaming)
Crear finalización de chat (sin streaming)Chat multi-turno, respuesta únicaCrear finalización de chat (sin streaming)
Crear visión de chat (streaming)Subir imágenes para comprensión, descripción o preguntasCrear visión de chat (streaming)
Crear visión de chat (sin streaming)Visión, respuesta completa sin streamingCrear visión de chat (sin streaming)

Elección del modelo

El ID del modelo de cada escenario está en el mercado de modelos. Prueba modelos Claude con claude en el nombre y la capacidad indicada. Si aparece «modelo no encontrado» o no compatible, cambia a otra entrada Claude del mismo escenario.

Notas por escenario

Chat estándar (streaming / sin streaming)

Rol system

En formato OpenAI, el prompt del sistema va en messages con role: "system". La API nativa de Claude suele usar un campo system de nivel superior; ver Crear finalización de chat (streaming).

Modo pensamiento

Algunos modelos Claude de pensamiento activan la salida de pensamiento en solicitudes streaming mediante un campo de extensión:

json
{
  "model": "claude-sonnet-4-20250514",
  "messages": [{ "role": "user", "content": "逐步推导:为什么天空是蓝色的?" }],
  "stream": true,
  "extra_body": {
    "enable_thinking": true
  }
}
  • La forma de mostrar el pensamiento en formato compatible depende de la puerta de enlace y del modelo; elige un Claude con «pensamiento» en el mercado
  • Para control preciso del presupuesto de tokens (thinking.budget_tokens) y bloques de pensamiento vs. respuesta, usa la API nativa Crear chat con pensamiento extendido (POST /v1/messages)

Visión (comprensión de imágenes)

En content del mensaje user, un array multimodal: text + image_url (URL o Base64).

json
{
  "model": "claude-sonnet-4-20250514",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "描述这张图片中的主要内容" },
        {
          "type": "image_url",
          "image_url": { "url": "https://example.com/photo.jpg" }
        }
      ]
    }
  ],
  "stream": true
}

Elegir formato compatible con OpenAI o API nativa de Claude

NecesidadRecomendación
Integración rápida, reutilizar SDK OpenAI / código existenteFormato compatible con OpenAI (esta página)
Pensamiento extendido, budget_tokens, estructura SSE de bloquesAPI nativaCrear chat con pensamiento extendido
Tool Use / llamadas a funcionesAPI nativaCrear llamada a función (streaming)
Salida estructurada (JSON Schema)API nativaCrear salidas estructuradas
PDF, búsqueda webAPI nativaSoporte PDF, Búsqueda web
Solo chat + visión + pensamiento con cliente OpenAIEl formato compatible con OpenAI cubre la ruta principal

Preguntas frecuentes

P: ¿Por qué no coincide exactamente con la documentación oficial de OpenAI?
R: La capa de compatibilidad alinea solicitudes/respuestas con OpenAI; debajo ejecuta Claude. Algunos parámetros solo de OpenAI pueden ignorarse; confía en el soporte real del modelo.

P: ¿Qué poner en model?
R: El ID completo del mercado de modelos (suele incluir claude). No uses abreviaturas ni nombres obsoletos.

P: ¿Puedo usar el SDK Python oficial de Anthropic?
R: Apunta por defecto a POST /v1/messages. Para mantenerlo, sigue la API nativa de esta carpeta; el SDK de OpenAI es para el formato de esta página.

P: ¿Formato de respuesta en streaming?
R: SSE, líneas data: {...} y data: [DONE] al final, como OpenAI. Ver Objeto de fragmento de finalización de chat.

P: ¿Estructura JSON completa de la respuesta?
R: Objeto de finalización de chat. Para Messages API nativa: Objeto de finalización de chat (formato Anthropic).

Lecturas adicionales