{
"id": "chatcmpl-mock-821bae6b",
"object": "chat.completion",
"created": 1735689600,
"model": "mock-gpt-4o-mini",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello, mock model!"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 5,
"completion_tokens": 5,
"total_tokens": 10
}
}Qué hace
El Mock LLM Responder genera respuestas mock deterministas de la API de LLM para probar clientes. Elige un escenario - echo, respuesta enlatada, lorem pseudo-poemado en stream, límite de tasa HTTP 429, error de servidor HTTP 500, o chunks lentos - y produce el JSON de chat completion estilo OpenAI, el flujo de eventos SSE (líneas data: con terminador [DONE] y marcadores de tiempos de chunk), y un comando curl que reproduce la petición contra un stub local. Sin clave de API, sin cuenta, sin red: todo se calcula en tu navegador a partir de una semilla fija, así que la misma configuración produce siempre una salida idéntica byte a byte - justo lo que necesita un suite de tests de cliente reproducible.
Cómo usarlo
- Elige un Escenario del desplegable (p. ej.
Streamed lorempara un stream por chunks,Error 429para probar el backoff). - Fija el nombre de Modelo y el tope de Max tokens que enviará tu cliente.
- Escribe el Prompt de usuario - el escenario
echolo devuelve literal como mensaje del assistant. - Cambia las pestañas de Salida entre Completion JSON, SSE stream y curl, y copia la que necesites.
- Usa la lectura de tiempos (
first byte/inter-chunk) para que tu stub duerma como un modelo real, o Copia enlace para compartir para enviar la configuración exacta a un colega.
Ejemplos
Escenario echo (ajustes por defecto) - completion JSON:
{
"id": "chatcmpl-mock-821bae6b",
"object": "chat.completion",
"created": 1735689600,
"model": "mock-gpt-4o-mini",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "Hello, mock model!" },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 5, "completion_tokens": 5, "total_tokens": 10 }
}
Streamed lorem - flujo SSE (resumido). El comentario inicial con : es el marcador de tiempos de chunk:
: mock scenario=streamed-lorem first-byte=60ms inter-chunk=40ms
data: {"id":"chatcmpl-mock-36156cc1","object":"chat.completion.chunk","created":1735689600,"model":"mock-gpt-4o-mini","choices":[{"index":0,"delta":{"role":"assistant","content":"comet nebula prism comet "},"finish_reason":null}]}
data: {"id":"chatcmpl-mock-36156cc1","object":"chat.completion.chunk","created":1735689600,"model":"mock-gpt-4o-mini","choices":[{"index":0,"delta":{"content":"vector prism lumen\nvector "},"finish_reason":null}]}
...
data: {"id":"chatcmpl-mock-36156cc1","object":"chat.completion.chunk","created":1735689600,"model":"mock-gpt-4o-mini","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":5,"completion_tokens":63,"total_tokens":68}}
data: [DONE]
Error 429 - completion JSON:
{
"error": {
"message": "Rate limit reached for the mock model. Please retry after 1 second.",
"type": "rate_limit_error",
"code": "rate_limit_exceeded"
}
}
Pestaña curl - reproduce la petición contra un stub local en el puerto 8080:
# Stub local: responde 200 con el cuerpo mostrado en la pestaña JSON.
curl -s http://localhost:8080/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"mock-gpt-4o-mini","messages":[{"role":"user","content":"Hello, mock model!"}],"max_tokens":64}'
Buen saber
- Determinista por diseño: los ids, el texto lorem y las marcas de tiempo salen de una semilla derivada de tu escenario, modelo y tope de tokens - nunca del reloj ni de
Math.random(). Los mismos ajustes entran, los mismos bytes salen. El campocreatedes el epoch fijo1735689600(2025-01-01). - Los chunks se reensamblan exactamente: el contenido de cada delta SSE, concatenado, es igual al contenido del mensaje del completion - así puedes contrastar el parsing del stream con la pestaña JSON.
- Aritmética de tokens: ~4 caracteres por token, mínimo 1; alcanzar el tope de
Max tokenscambiafinish_reasona"length". - Privado: se ejecuta 100% en el cliente - ninguna petición sale de tu navegador.
- Herramientas relacionadas: LLM Cost Calculator, Token Estimator, HTTP Methods Tester.