Inicio rápido
Configura el endpoint, ajusta tu clave, integra el cliente y envía la primera solicitud.
Elige un endpoint
Elige el formato de endpoint que espera tu cliente. Hay rutas compatibles con Chat Completions, Responses y Messages.
Base URL: https://api.llm-token.cn/v1Prepara tu API Key
Usa una API Key activa desde tu entorno de servidor. Evita exponer claves en el código del navegador.
Authorization: Bearer sk-your-api-keyIntegra tu cliente
Usa un SDK compatible o llama directamente a la REST API con un base_url personalizado.
client = OpenAI(base_url='https://api.llm-token.cn/v1')Empieza a llamar
Envía solicitudes y recibe respuestas de IA. El streaming está disponible para una respuesta más rápida.
POST /v1/chat/completionsAutenticación
Cada solicitud de API debe incluir tu API Key en el header HTTP Authorization.
Formato de autenticación
Añade tu API Key al header Authorization en cada solicitud.
/v1/chat/completionsEjemplo de solicitud autenticada
curl https://api.llm-token.cn/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-your-api-key" \
-d '{
"model": "gpt-4o-mini",
"messages": [{"role": "user", "content": "Hello!"}]
}'{
"id": "chatcmpl_123",
"object": "chat.completion",
"choices": [{
"message": {
"role": "assistant",
"content": "Hello! How can I help you today?"
}
}]
}https://api.llm-token.cn/v1Úsala para la mayoría de los clienteshttps://gpt-agent.ccÚsala solo si tu cliente rechaza /v1 durante la validación/v1/chat/completionsPara clientes que esperan Chat Completions/v1/responsesÚsala primero en clientes que admiten Responses/v1/messagesÚsala primero en clientes compatibles con MessagesChat Completions API
Endpoint Chat Completions compatible con OpenAI para múltiples ecosistemas de modelos.
from openai import OpenAI
# Initialize the client
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://api.llm-token.cn/v1"
)
# Send a chat request
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "Introduce yourself in one sentence."}
]
)
print(response.choices[0].message.content)Parámetros de solicitud
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
model | string | Sí | ID del modelo, por ejemplo gpt-4o-mini |
messages | array | Sí | Array de mensajes de chat |
temperature | number | No | Temperatura de muestreo de 0 a 2, predeterminado 1 |
max_tokens | integer | No | Número máximo de tokens a generar |
stream | boolean | No | Si se habilita la salida en streaming |
top_p | number | No | Valor de muestreo de núcleo, predeterminado 1 |
Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Identificador único de la respuesta |
object | string | Tipo de objeto, normalmente chat.completion |
created | integer | Marca de tiempo de creación |
model | string | ID del modelo usado para la respuesta |
choices | array | Opciones de respuesta generadas |
usage | object | Estadísticas de uso de tokens |
Streaming
Activa el streaming para recibir los tokens generados en tiempo real y reducir la latencia percibida.
- Menor latencia percibida - El usuario ve la salida de inmediato en lugar de esperar la respuesta completa.
- Mejor experiencia con textos largos - Las respuestas largas aparecen de forma progresiva, como una escritura en vivo.
- Mismo coste - El streaming tiene el mismo precio que la salida sincrónica; solo cambia el transporte.
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://api.llm-token.cn/v1"
)
# Enable streaming
stream = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "Introduce yourself in one sentence."}
],
stream=True
)
# Print each streamed token as it arrives
for chunk in stream:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="")
print() # New lineErrores
Errores comunes de la API y los pasos de manejo recomendados.
| Estado HTTP | Nombre del error | Descripción | Acción recomendada |
|---|---|---|---|
400 | INVALID_REQUEST | El cuerpo de la solicitud tiene un formato incorrecto o los parámetros no son válidos | Revisa el cuerpo de la solicitud y los parámetros |
401 | UNAUTHORIZED | La API Key no es válida o ha caducado | Verifica que la API Key sea correcta |
429 | RATE_LIMIT | Se superó el límite de frecuencia de solicitudes | Reintenta con retroceso exponencial |
500 | INTERNAL_ERROR | Error interno del servicio | Inténtalo de nuevo más tarde |
503 | SERVICE_UNAVAILABLE | Servicio temporalmente no disponible | Inténtalo de nuevo más tarde |
Límites de tasa
Las solicitudes de la API tienen límites de tasa para mantener el servicio estable.
- Cada API Key tiene sus propios límites de frecuencia de solicitudes
- Cuando recibas una respuesta 429, reintenta con retroceso exponencial
- Las solicitudes con y sin streaming comparten la misma cuota de límite de frecuencia
- El límite efectivo depende de la configuración actual de la clave