Streaming
Muestra los resultados a medida que se verifican en vez de esperar a la nota más lenta.
Pon stream: true en POST /v1/search o POST /v1/search/site y la respuesta pasa a ser un flujo de
Server-Sent Events. Los primeros
resultados llegan a más o menos un segundo, en cualquier modo.
Con los SDKs
const stream = ts.searchStream('el dólar', { mode: 'deep' });
for await (const event of stream) {
if (event.type === 'step') console.log('·', event.step.text);
if (event.type === 'partial') mostrar(event.response.results);
if (event.type === 'result') mostrar(event.response.results, { final: true });
}¿Sólo necesitas el final? finalResponse() en TypeScript y final_response() en Python consumen el flujo y
devuelven el resultado.
Eventos
| Evento | data | Cuándo |
|---|---|---|
step | { id, text, status, detail } | Un paso empieza o termina: juzgar titulares, leer notas, clasificar el tono… |
partial | Una respuesta de búsqueda | Lo juzgado hasta ahora. Cada resultado se confirma en su lugar a medida que se lee su nota. |
result | Una respuesta de búsqueda | El resultado final. El flujo termina después. |
error | El detalle del problema | Algo falló. El flujo termina después. Los SDKs lo lanzan como error. |
Los resultados de un partial conservan su posición mientras se leen las notas, así que puedes mostrarlos
enseguida sin que la lista salte. El orden final llega con result.
El flujo crudo
event: step
data: {"id":"juicio-indice","text":"El modelo lee 160 titulares del índice","status":"running","detail":null}
event: partial
data: {"id":"req_…","object":"search","results":[…]}
event: result
data: {"id":"req_…","object":"search","results":[…]}El text de cada paso es para mostrar a personas y puede cambiar; en tu código usa id y status.