Иногда возможностей готовых узлов не хватает: нужно заглянуть в вашу CRM, посчитать стоимость заказа, проверить остаток на складе или связаться с 1С. Для этого в сценарий подключается свой скрипт на Python — небольшой программы, написанной руками или ИИ-агентом.
Как это выглядит
Скрипты лежат обычными файлами, разложенными по папкам ботов. Их можно править прямо в интерфейсе, во встроенном редакторе, или на сервере в файловой системе — как удобнее. Файлы принадлежат вам, вынести их на другой сервер так же просто, как и сценарий.
Обмен данными
На вход скрипт получает сведения о боте, клиенте, переменных разговора и текущем сообщении. На выход возвращает ответ клиенту, изменения переменных, следующий узел или признак ошибки. Всё это — в формате JSON, то есть в виде обычного текста с подписанными полями. Если скрипт завершился с ошибкой или вернул не то, разговор спокойно идёт по ветке ошибки, а не обрывается.
Лимиты
- Ограничение по времени. Если скрипт завис, он будет остановлен — диалог не застрянет навсегда;
- Ограничение объёма вывода. Слишком длинный результат обрезается, чтобы бот отвечал осмысленно;
- Ограничение числа одновременных запусков. На одного бота работает не больше трёх скриптов сразу — лишние задания ждут своей очереди. Это защищает сервер от перегрузки, когда клиентов много.
Секреты
Пароли и ключи, которые нужны скрипту, задаются в настройках бота и подставляются скрипту автоматически. В интерфейсе и в отчётах они никогда не показываются — ни целиком, ни частями. Так доступ к вашим системам остаётся только у приложения.
Панель запуска
Любой скрипт можно прогнать прямо в разделе «Скрипты», с подготовленными данными: видно, что скрипт вернул, какие были ошибки и сколько заняла работа. Удобно отлаживать по частям, не встраивая скрипт в сценарий и не трогая бота целиком.
Журнал запусков
У каждого вызова сохраняются данные на входе и выходе, время работы и код завершения. Если у конкретного клиента что-то пошло не так, по журналу видно, с какими данными скрипт работал и что вернул.
Как подключить скрипт к диалогу — в разделе Узлы сценария. Как настроить модели, с которыми работает скрипт, — в разделе Модели и промпты, а как завести самого бота — в разделе Боты.