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ón | Formato compatible con OpenAI (esta página) | API nativa de Claude (otros documentos de esta carpeta) |
|---|---|---|
| Ruta típica | POST /v1/chat/completions | POST /v1/messages |
| Cuerpo de solicitud | Campos OpenAI: messages, model, stream, etc. | Campos Anthropic: messages, system, thinking, etc. |
| Caso de uso | Clientes OpenAI existentes, puerta de enlace multi-modelo, migración rápida | Funciones propias de Claude (presupuesto de pensamiento extendido, Tool Use, PDF, búsqueda web, etc.) |
| Documentación | Esta página + sección Chat | Pá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
claudedel mercado de modelos en el campomodel
SDK de OpenAI (recomendado)
Apunta base_url del SDK oficial a Fast-Token; el resto es igual que OpenAI:
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)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.
| Capacidad | Descripción | Referencia |
|---|---|---|
| Crear chat con pensamiento | Diálogo con proceso de «pensamiento» del modelo | Streaming (extra_body.enable_thinking) |
| Crear finalización de chat (streaming) | Chat de texto multi-turno estándar, salida SSE | Crear finalización de chat (streaming) |
| Crear finalización de chat (sin streaming) | Chat multi-turno, respuesta única | Crear finalización de chat (sin streaming) |
| Crear visión de chat (streaming) | Subir imágenes para comprensión, descripción o preguntas | Crear visión de chat (streaming) |
| Crear visión de chat (sin streaming) | Visión, respuesta completa sin streaming | Crear 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)
- Endpoint:
POST /v1/chat/completions - Array
messagespara diálogo multi-turno;role:system/user/assistant(como OpenAI) - Sin streaming:
stream: falseu omitirstream→ Crear finalización de chat (sin streaming) - Streaming:
stream: true→ Crear finalización de chat (streaming) - Parámetros comunes (
temperature,max_tokens,top_p, etc.) como la documentación de OpenAI
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:
{
"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).
{
"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
}- Visión streaming:
stream: true— Crear visión de chat (streaming) - Sin streaming:
stream: false— Crear visión de chat (sin streaming) - Base64: Crear visión de chat (streaming) Base64
Elegir formato compatible con OpenAI o API nativa de Claude
| Necesidad | Recomendación |
|---|---|
| Integración rápida, reutilizar SDK OpenAI / código existente | Formato compatible con OpenAI (esta página) |
Pensamiento extendido, budget_tokens, estructura SSE de bloques | API nativa — Crear chat con pensamiento extendido |
| Tool Use / llamadas a funciones | API nativa — Crear llamada a función (streaming) |
| Salida estructurada (JSON Schema) | API nativa — Crear salidas estructuradas |
| PDF, búsqueda web | API nativa — Soporte PDF, Búsqueda web |
| Solo chat + visión + pensamiento con cliente OpenAI | El 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
- Primeros pasos — primera llamada y API Key
- Guía rápida de API — Base URL y cliente
- Listar modelos —
GET /v1/models - Otras páginas de la carpeta — parámetros y ejemplos de la API Messages nativa de Claude