Ingeniería LLM · Fácil · 10 min

Lee el stream de Ollama

Ollama responde línea a línea en JSON. Junta el texto y calcula los tokens por segundo con sus propios contadores.

Cuando llamas a /api/generate con streaming, Ollama devuelve una línea JSON por fragmento: {"response":"Hol","done":false}. La última línea trae done: true y los contadores eval_count (tokens generados) y eval_duration (nanosegundos).

Escribe parseOllamaStream(text) que reciba todo el texto del stream y devuelva { text, tokensPerSecond }. Ignora las líneas vacías. Redondea los tokens por segundo a un decimal.

La variable SAMPLE ya contiene un stream real de ejemplo.

Un reto más usa LIVE: la salida real de tu propio Ollama si activas «Mi Ollama», o una muestra distinta si no. Ese reto mira la estructura, no las palabras exactas.

Retos 0/4

  • Junta todo el texto de las líneas
  • Calcula 41,3 tokens por segundo (124 tokens en 3 s)
  • No falla con líneas vacías ni con un stream sin final
  • Funciona con la salida real de tu modelo (Mi Ollama) o con otra muestra

function parseOllamaStream(text) {
  // 1. separa en líneas y salta las vacías
  // 2. JSON.parse de cada línea y une los campos `response`
  // 3. lee eval_count / eval_duration de la última línea (done: true)
  return { text: '', tokensPerSecond: 0 };
}

console.log(parseOllamaStream(SAMPLE));
La consola aparece aquí (console.log).

Para profundizar: la guía relacionada →

¿Esto en producción, con tus datos? Hablemos 15 minutos →