Saltar al contenido
API v1 · https://bentho.org/api
POSTSSE/api/rag/{espacio}/conversations/stream

La misma pregunta, en vivo

El mismo cuerpo que conversations, pero la respuesta llega por eventos (SSE) mientras se escribe. Sirve para mostrarla a una persona sin hacerla esperar.

  • PERMISOlee (vale cualquier clave)
  • CRÉDITOSgasta créditos
  • AUTENTICACIÓNBearer bth_…

PARÁMETROS

CAMPOTIPOREQUERIDOQUÉ ES
espaciostringSÍEl id del espacio (sale en GET /api/companies).

CUERPO · JSON

CAMPOTIPOREQUERIDOQUÉ ES
questionstringSÍLa pregunta.
session_idstringSÍ, EN LA PRÁCTICAIgual que en conversations.
historyarraynoIgual que en conversations.

EVENTOS

200 con Content-Type: text/event-stream. Cada evento es una línea data: {…} seguida de una línea en blanco. Las líneas que empiezan por : son : keepalive (cada 15 s sin datos): ignóralas.

CAMPOTIPOQUÉ ES
status{ type, stage: "verifying" }Solo en espacios con verificación previa: está comprobando antes de generar.
chunk{ type, content }Un pedazo de texto. Al final llega uno con el pie «Referencia: …» si hay fuentes.
handoff{ type, handoff_id, reason }Conviene pasar a una persona (low_confidence o contradiction). Llega antes del done.
done{ type, status_code, full_response, confidence, warning, sources }Cierre normal. Manda su status_code, aunque ya hayan llegado chunks.
error{ type, content }Algo falló después del 200. El stream termina.

ERRORES DE ESTA RUTA · SIEMPRE {"detail": …}

STATUSCUÁNDODETAIL LITERAL
401Antes de abrir el stream: clave inválidaCredencial de servicio inválida o revocada.
402Antes de abrir el stream: créditos agotados—
eventoEvento error: el servicio no respondió a tiempo—
eventoEvento error: falta session_idsession_id es obligatorio.
eventoEvento error: el servicio está saturado; reintenta con espera creciente—

Y los de cualquier ruta —clave inválida, cuenta no al día, IP, límites—, en Errores, límites y créditos.

CONVIENE SABER

  • Todo lo que se puede rechazar antes (401, 402, 403, 429) llega como respuesta JSON normal, no como evento. Después del 200, cualquier fallo llega como evento error.
  • En espacios con verificación estricta la respuesta llega en un solo chunk, ya verificada, después de un status.
  • Los chunk ya enviados no se retiran aunque el done diga "1001": decide con el status_code del done.