El mismo consultor que trabaja en el gabinete está disponible desde su aplicación. Usted crea una sesión, envía un mensaje y la respuesta del asistente llega por partes a través de un flujo abierto.
Requiere el alcance tools:chat. Dirección base: https://developers.grem.capital/api/v1.
Cómo funciona
- Cree una sesión: guarda el contexto de la conversación.
- Abra el flujo de eventos de esa sesión.
- Envíe un mensaje.
- La respuesta llega por partes por el flujo hasta completarse.
El orden importa: abra el flujo antes de enviar el mensaje, o los primeros trozos de la respuesta se le escaparán.
Sesiones
POST /chat/sessions create
GET /chat/sessions list
PATCH /chat/sessions/{id} rename, pin
DELETE /chat/sessions/{id} move to the archive
Crear una:
curl -X POST https://developers.grem.capital/api/v1/chat/sessions \
-H "Authorization: Bearer gsk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"title":"Client question about a mortgage"}'
La respuesta trae el id de la sesión, que pasará en todas las llamadas siguientes.
Por la API obtiene el consultor general. El modo autorrespondedor que funciona dentro del CRM del gabinete no se puede activar desde fuera.
Enviar un mensaje
curl -X POST https://developers.grem.capital/api/v1/chat/messages \
-H "Authorization: Bearer gsk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"sessionId": "…",
"text": "What does a two-room flat in Podil cost?",
"clientMessageId": "msg-0001"
}'
clientMessageId es su propio id del mensaje. Enlaza lo que envió con lo que llega por el flujo, de modo que al restablecerse la conexión nada aparezca dos veces.
El campo opcional style fija la longitud de la respuesta: short, normal o detailed.
El flujo de la respuesta
GET /chat/stream?sessionId=…
Authorization: Bearer gsk_live_...
Accept: text/event-stream
La conexión es de larga duración y los eventos llegan a medida que se genera la respuesta:
| Evento | Qué significa |
|---|---|
assistant.started | el asistente ha empezado a responder; siguen trozos de texto |
assistant.delta | el siguiente trozo de texto, en el campo delta |
assistant.done | la respuesta está completa; text la contiene entera |
Si la conexión se corta, vuelva a conectarse con el mismo sessionId: el servidor reproduce el turno actual desde el principio. Por eso assistant.started debe vaciar el texto acumulado para ese mensaje, o se duplicará.
Historial
GET /chat/history?sessionId=…&limit=50
Devuelve los mensajes guardados de la sesión. Sirve para restaurar la conversación cuando su interfaz se recarga.
Cuánto cuesta
Solo se cobra el envío de un mensaje (POST /chat/messages). Crear una sesión, listar las sesiones, el historial y el propio flujo son gratis y no cuentan como llamadas de API.
Artículos relacionados
- SDK de TypeScript: un cliente listo que se suscribe al flujo.
- Errores: qué significan los códigos de rechazo.
- Herramientas por la API: las demás herramientas de la plataforma.