Docs

Чат-асистент через API

Останнє оновлення: 2026-09-072 хв читання

Той самий консультант, що працює в кабінеті, доступний з вашого застосунку. Ви створюєте сесію, надсилаєте повідомлення і отримуєте відповідь асистента посимвольно через відкритий потік.

Потрібен scope tools:chat. Базовий URL: https://developers.grem.capital/api/v1.

Як це працює

  1. Створіть сесію - вона зберігає контекст діалогу.
  2. Відкрийте потік подій для цієї сесії.
  3. Надішліть повідомлення.
  4. Відповідь прилітає у потік частинами, поки не завершиться.

Порядок важливий: потік краще відкрити до надсилання повідомлення, інакше перші частини відповіді пройдуть повз.

Сесії

POST   /chat/sessions            створити
GET    /chat/sessions            перелік
PATCH  /chat/sessions/{id}       перейменувати, закріпити
DELETE /chat/sessions/{id}       прибрати в архів

Створення:

curl -X POST https://developers.grem.capital/api/v1/chat/sessions \
  -H "Authorization: Bearer gsk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"title":"Питання клієнта про іпотеку"}'

У відповідь приходить ідентифікатор сесії - його ви передаєте в усі наступні виклики.

Через API доступний режим загального консультанта. Режим автовідповідача, який працює всередині CRM кабінету, ззовні не вмикається.

Надіслати повідомлення

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": "Скільки коштує двокімнатна на Подолі?",
    "clientMessageId": "msg-0001"
  }'

clientMessageId - ваш власний ідентифікатор повідомлення. Він потрібен, щоб звʼязати надіслане з тим, що прийде в потоці, і не показати одне й те саме двічі при повторному підключенні.

Необовʼязкове поле style задає довжину відповіді: short, normal або detailed.

Потік відповіді

GET /chat/stream?sessionId=…
Authorization: Bearer gsk_live_...
Accept: text/event-stream

Зʼєднання довге, події приходять у міру генерації:

ПодіяЩо означає
assistant.startedасистент почав відповідати; далі підуть частини тексту
assistant.deltaчергова частина тексту у полі delta
assistant.doneвідповідь завершена, у полі text - повний текст

Якщо зʼєднання обірвалося, підключіться знову з тим самим sessionId: сервер переграє поточний хід із початку. Саме тому по assistant.started варто очищати накопичений текст цього повідомлення, інакше він задвоїться.

Історія

GET /chat/history?sessionId=…&limit=50

Повертає збережені повідомлення сесії. Використовуйте її, щоб відновити діалог після перезавантаження вашого інтерфейсу.

Скільки це коштує

Списується лише надсилання повідомлення (POST /chat/messages). Створення сесії, перелік, історія і сам потік безкоштовні й не рахуються викликами API.

Пов'язані статті

Ця стаття була корисною?