API-пайплайн: запустить виджет Cabi.Chat на своём хостинге со своей программой

Индекс: API-пайплайны — индекс

Цель: ваша собственная программа отвечает людям в комнатах виджета Cabi.Chat: скрипт, сервис поддержки или ваш собственный ИИ-ассистент, например Claude Code. Cabi.Chat выдаёт виджету токен, который работает как токен Telegram-бота; ИИ Cabi.Chat не отвечает. Что такое виджет и кто может до него дотянуться: Cabi.Chat Oracles — виджет Cabi.Chat

Шаги

1. Создать.

POST /v0/my/oracles
Idempotency-Key: widget-mine-1
{"kind": "cabi_widget", "hosting": "self", "title": "My assistant", "project": "<project nonce>"}
→ {"nonce": "470000000000000004", "card_type": "oracle", "kind": "cabi_widget",
   "status": "STOPPED", "token": "…", …}

2. Направьте свою программу на Bot API Cabi.Chat с этим токеном. Каждый запрос идёт на https://api.cabi.chat/bot<token>/<method> — в той же форме, что у Telegram:

GET  https://api.cabi.chat/bot<token>/getMe
GET  https://api.cabi.chat/bot<token>/getUpdates?timeout=50
POST https://api.cabi.chat/bot<token>/sendMessage   {"chat_id": <chat id>, "text": "…"}

Получайте обновления длинным опросом или через вебхук, заданный setWebhook, и отвечайте обычными методами. Поддерживаемые методы: Spectral — плагины через эмулятор Telegram-бота

Файлы: getFile даёт file_path; скачивайте его с https://api.cabi.chat/file/bot<token>/<file_path>.

3. Общение. Каждый, кто открывает виджет, получает с ним комнату: личный чат с вашим виджетом, как в Telegram. Его сообщения приходят как обновления с chat.type private и chat.id, равным id пользователя этого человека; то, что ваша программа отправляет в этот чат, появляется в комнате.

Как открыть комнату: API-пайплайн: настроить виджет Cabi.Chat, который ведёт ИИ Cabi.Chat, шаг 4.

Пример: Claude Code

Claude Code может говорить с вами через виджет Cabi.Chat: он работает на вашем компьютере под вашим собственным входом, а Cabi.Chat — только поверхность чата. Официальный плагин-канал Telegram для Claude Code говорит на Telegram Bot API, поэтому работает с любым Telegram-совместимым корнем Bot API, в том числе с https://api.cabi.chat. Настройка плагина, которая направляет его на другой корень Bot API, ещё ждёт выхода в самом плагине; когда она появится в вашей версии:

  1. В Claude Code: /plugin install telegram@claude-plugins-official, затем /telegram:configure <токен виджета>.
  2. Укажите в плагине корень Bot API https://api.cabi.chat.
  3. Запустите Claude Code с каналом: claude --channels plugin:telegram@claude-plugins-official.
  4. Откройте комнату виджета на Cabi.Chat и напишите в неё; привяжитесь командой /telegram:access pair <code> и закройте доступ командой /telegram:access policy allowlist, чтобы вашей сессией управляли только вы.

Ваша комната с виджетом — личный чат, поэтому привязка, команды и запросы разрешений работают так же, как с Telegram-ботом; когда topics_in_private включён, в ней можно вести отдельные ветки.

Держите виджет приватным, чтобы его комнату могли открыть только вы.

Правила

Поверхность API

Эндпоинт Назначение FE ИИ / оракул
POST /v0/my/oracles Создать виджет, один раз получить токен да (токен: нет) ваш токен
POST /v0/my/oracles/{nonce}/regenerate-token Новый токен; старый перестаёт работать нет ваш токен
PATCH /v0/my/oracles/{nonce} Название, проект, видимость, агенда, topics_in_private да да
https://api.cabi.chat/bot<token>/<method> Получать и отвечать от имени виджета — ваша программа
DELETE /v0/my/oracles/{nonce} Удалить да редко

Упомянуто