Той самий консультант, що працює в кабінеті, доступний з вашого застосунку. Ви створюєте сесію, надсилаєте повідомлення і отримуєте відповідь асистента посимвольно через відкритий потік.
Потрібен scope tools:chat. Базовий URL: https://developers.grem.capital/api/v1.
Як це працює
- Створіть сесію - вона зберігає контекст діалогу.
- Відкрийте потік подій для цієї сесії.
- Надішліть повідомлення.
- Відповідь прилітає у потік частинами, поки не завершиться.
Порядок важливий: потік краще відкрити до надсилання повідомлення, інакше перші частини відповіді пройдуть повз.
Сесії
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.
Пов'язані статті
- TypeScript SDK - готовий клієнт із підпискою на потік.
- Помилки - що означають коди відмов.
- Інструменти через API - решта інструментів платформи.