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

Haz una pregunta a tu espacio

Bentho busca en los documentos del espacio y contesta solo con lo que dicen. Cada respuesta trae sus fuentes y cuánto confía en ella. Si reusas el session_id, entiende las preguntas de seguimiento.

  • 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, en texto libre.
session_idstringSÍ, EN LA PRÁCTICATu identificador de conversación. Es obligatorio: sin él responde 400. Reúsalo para seguir el hilo; dos claves del mismo dueño con el mismo session_id comparten conversación.
history[{ role: "user" | "assistant", content }]noTurnos previos, si prefieres mandar tú el contexto. Sin él, se usa el historial de la sesión.

RESPUESTA 200

CAMPOTIPOQUÉ ES
status_code"1000" | "1001""1000" contesta con apoyo en los documentos. "1001" no hay información suficiente o prefiere no responder; response trae entonces el mensaje de rechazo del espacio.
responsestringEl texto de la respuesta. Si hay fuentes, termina con el pie «Referencia: …».
sourcesstring[]Los documentos citados. Vacío con 1001.
confidencenumber | nullDe 0 a 1. Desde 0,75 responde; entre 0,55 y 0,75 responde con warning; por debajo, 1001.
warningbooleantrue si solo parte de la respuesta está respaldada. Sigue siendo 1000.
claim_attributionsarray | nullPor frase: { sentence, chunk_index, entailment, supported }.
session_idstring | nullEl que mandaste.
tenant_id · querystringEl espacio y la pregunta original.
verification · condensed_queryobject | null · string | nullDetalle de la verificación y la pregunta reescrita, si la hubo.

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

STATUSCUÁNDODETAIL LITERAL
400Falta session_idsession_id es obligatorio.
402La cuenta agotó sus créditos del cicloLa cuenta de este espacio agotó sus créditos de este ciclo.
404El espacio no existe—
422Falta question—
502El servicio no respondió a tiempo: 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

  • Un error interno al responder no llega como 5xx: llega como 200 con status_code: "1001" y el texto «Ocurrió un error interno procesando la consulta. Intenta de nuevo.». Trátalo como una respuesta sin información.
  • Una consulta típica tarda de 2 a 20 s. Pon el timeout de tu cliente en 60 s o más.
  • En espacios con el módulo de Ventas la respuesta tiene otra forma (estado, cotizacion, handoff…) y no usa history.