Скрипт конструктора чат ботов

Обновлено: 02.05.2024

Чат-боты помогают повысить потребительскую ценность бизнеса при сравнительно небольших затратах на создание таких инструментов.

51 % клиентов, по данным чат-бота Ubisend, ожидает, что бизнес будет доступен в режиме 24/7.

Еще немного статистики:

  • подавляющее большинство пользователей (87,2 %) имеет нейтральный или положительный опыт общения с чат-ботами; , в 2021 году количество уникальных чат-ботов приблизилось к 1,8 миллиардам единиц. Глобальный рынок чат-ботов оценен более чем в 600 миллиардов долларов;
  • в то же время 60 % пользователей предпочли бы дождаться, пока им ответит живой сотрудник. Чат-боты кажутся этим людям примитивными и неспособными решать проблемы клиентов.

Топ-8 сценариев для чат-бота

Использовать чат-бот в Telegram можно по-разному:

  • поиск информации с дальнейшей выдачей ответа;
  • оформление заказа;
  • обработка запроса с учетом местоположение пользователя (вызов курьера, доставка еды);
  • бронирование мест;
  • финансовые переводы;
  • информационная поддержка;
  • тайм-менеджмент (чат-бот может добавить событие в календарь, создать оповещения о событиях);
  • голосование.

Это самые очевидные сценарии использования чат-бота в Telegram. Однако разработчик может настроить бот для решения практически любой задачи.

6 особенностей чат-ботов в Telegram

Как сделать чат-бота в Telegram: пошаговая инструкция

Создаются и управляются боты с помощью другого бота BotFather.

Чтобы создать чат-бота, выполните следующие действия:

  • установите десктоп-версию Telegram и запустите ее;
  • откройте Controller Bot;
  • нажмите START внизу экрана:

Как создать чат-бот в Telegram: от настроек до запуска

  • Используйте команду добавления нового канала:

Как создать чат-бот в Telegram: от настроек до запуска

  • Получите подробную инструкцию, как подключить нового бота:

Как создать чат-бот в Telegram: от настроек до запуска

  • Следуя инструкции, отправьтесь в BotFather и нажмите START внизу экрана:

Как создать чат-бот в Telegram: от настроек до запуска

Как создать чат-бот в Telegram: от настроек до запуска

Как создать чат-бот в Telegram: от настроек до запуска

  • Теперь дайте боту ник. Ник должен оканчиваться на слово bot:

Как создать чат-бот в Telegram: от настроек до запуска

  • Получите уникальный токен и скопируйте его. В случае потери или удаления диалога не нужно паниковать. Снова отправьте /token в диалог, и новый вариант кода будет сразу же создан.
  • Вернитесь в ControllerBot и отправьте токен в диалог:

Как создать чат-бот в Telegram: от настроек до запуска

Для этого создайте новый публичный канал через левое меню, нажав кнопку New Chanel:

Как создать чат-бот в Telegram: от настроек до запуска

Чтобы добавить созданного бота в администраторы канала, нужно выбрать его в чатах и нажать кнопку Manage Channel:

Как создать чат-бот в Telegram: от настроек до запуска

. и назначить администратора:

Как создать чат-бот в Telegram: от настроек до запуска

После выполнения двух требований ControllerBot мы успешно подключили канал. Осталось указать город для уточнения часового пояса:

Как создать чат-бот в Telegram: от настроек до запуска

Подтверждаем, нажав «Верно»:

Как создать чат-бот в Telegram: от настроек до запуска

В самом низу нажимаем кнопку «Создать новый пост»:

Как создать чат-бот в Telegram: от настроек до запуска

Бот предложит настроить форматирование. В 95 % случаев подойдет Markdown (прим. ред. – облегченный язык разметки):

Нажимаем «Продолжить»

Теперь создаем первый пост. Можно написать в нем любой текст, чтобы проверить, как это работает:

Создаем первый пост и нажимаем «Далее»

ControllerBot возвратит отправленную запись и предложит задействовать дополнительные инструменты:

  • Чтобы добавить в пост картинку, воспользуйтесь кнопкой «Прикрепить медиафайл».
  • Можно добавить в пост до шести смайлов, которые пользователи будут использовать в качестве реакций:

Как создать чат-бот в Telegram: от настроек до запуска

  • Если нужно привязать к кнопке ссылку, воспользуйтесь этой функцией:

Как создать чат-бот в Telegram: от настроек до запуска

Как создать чат-бот в Telegram: от настроек до запуска

Как создать чат-бот в Telegram: от настроек до запуска

. и выберите предпочтительный сценарий публикации:

Доступно несколько вариантов публикации: мгновенная и отложенная. Можно поставить таймер для удаления записи

Синтаксис. Команды. Настройки

Главные команды запомнить несложно:

Если при создании бота вам не хватает стандартных функций, вы можете задействовать дополнительные команды длиной до 32 символов.

Соблюдайте синтаксис: /команда [необязательный] [аргумент]. Например, так мы получаем статистику по боту: /get_messages_stats

Обратите внимание: список команд будет появляться сразу после ввода символа «/». Не забудьте активировать описание команд в «отце ботов».

О некоторых параметрах BotFather мы уже говорили. Это:

  • Токен – уникальный ключ, который используется для доступа к Bot API. Токен имеет следующий вид: 110201543:ААHdqTcvCН1vGWJxfSеоfSAs0K5PALDsaw.
  • Name – значение выводится только в чатах и контактах пользователя.
  • Username – не длиннее 32 символов. Может включать латиницу, цифры и символ «_».

Важные команды для чат-ботов

Дополнительных возможностей у бота в Telegram достаточно. Разбирать их все не имеет смысла, так как активно используется лишь небольшая часть.

Теперь посмотрим основные команды BotFather.

В Google и «Яндексе», соцсетях, рассылках, на видеоплатформах, у блогеров

Сегодня публикуем вторую часть перевода материала, посвящённого разработке чат-ботов с использованием ChatScript и JavaScript. В прошлый раз мы занимались, в основном, теорией. А именно, говорили о сценариях использования чат-ботов и о внутреннем устройстве CS-приложений. Сегодня будет больше практики. А именно, мы обсудим рабочее окружение ChatScript, поговорим об интеграции CS и JS, обсудим подходы к решению проблем, характерных для чат-ботов.

image

Окружение ChatScript

▍Интерфейс командной строки

ChatScript имеет интерфейс командной строки (CLI, Command Line Interface), который используется, в ходе разработки, как вспомогательное средство. В частности, он необходим для сборки чат-ботов.

Основная команда, которая понадобится в ходе работы — это, конечно, :build . С её помощью, в первую очередь, нужно собрать нулевой уровень бота для использования концептов, предопределённых в системе (например — ~yes , ~timeinfo , ~number ). Затем собирают всё то, что относится к конкретному боту, задавая в этой команде то же имя, которое использовалось для файла со списком топиков, применяющимся в скрипте.

Ещё одна полезная команда — это :reset . Она возвращает бота в исходное состояние, и, кроме того, очищает все переменные для долговременного хранения данных (эти значения сохраняются даже после сборки).

Команда :trace позволяет выполнить полную трассировку стека правил и топиков, вызванных в ходе разбора последней порции данных, полученных от пользователя.

Команда :why предназначена для вывода правил, применение которых сказалось на последних выходных данных, сгенерированных ботом. Для переключения между пользователями применяется команда :user , которая, в качестве параметра, принимает имя пользователя.

Команда :quit позволяет остановить процесс ChatScript.

В процессе добавления новых правил полезно проверять, не нарушают ли они работу ранее созданных шаблонов. Для этого имеется весьма полезная команда :verify . Разработчику, для того, чтобы ей пользоваться, нужно добавить перед каждым шаблоном набор фраз, которым он должен соответствовать. Синтаксис этих проверочных фраз выглядит так:


При выполнении команды будет выведен подробный отчёт о том, на каких фразах система успешно прошла проверку, а на каких — нет:

▍Производительность

CS — это легковесный процесс, поэтому вполне можно запустить несколько его экземпляров на одном компьютере. Более того, такие операции, как сравнение шаблонов и поиск концептов, хорошо оптимизированы, работают они очень быстро и поддерживают множество подключений. Для того, чтобы проверить, действительно ли CS достаточно быстр, мы написали собственный небольшой бенчмарк, направленный на исследование производительности чат-бота под нагрузкой. Наш класс-обёртка, написанный на JS, отправляет набор из 10000 запросов и измеряет время, необходимое движку для того, чтобы на них ответить. Вот результаты этих испытаний:


Показатель числа запросов в секунду оказывается меньше, чем можно было ожидать, учитывая время, затраченное на обработку одного запроса.

▍Непрерывная интеграция в CS

Когда вы работаете над ботом, расширяете его функционал, полезно периодически проверять, продолжает ли, с учётом последних изменений, нормально работать то, что было написано раньше. Такое, на самом деле, возникает довольно часто, особенно если создаваемые вами шаблоны являются слишком общими и могут соответствовать тем входным данным, соответствия с которыми вы не ожидали. Для того, чтобы справляться с подобными проблемами, в CS есть механизм регрессионного тестирования, которым можно пользоваться в процессе разработки. Для того, чтобы подготовить набор данных для регрессионного тестирования, нужно сделать следующее:

1. Создайте свежую сборку со стабильной версией чат-бота. Для этого в CLI CS нужно выполнить следующие команды:


2. Создайте список со всеми фразами, которые вы хотите проверить в ходе выполнения тестирования. Вы можете поместить файл с ним куда угодно, но я предпочитаю хранить такие файлы в директории REGRESS CS-проекта. В начале этого файла должна идти команда установки пользователя, используемого при тестировании, и команда reset , которая позволяет очистить переменные долговременного хранения данных. В конце файла тоже надо вставить reset . Для нашего чат-бота соответствующий файл может выглядеть так:


3. Теперь нужно организовать вывод выходных данных, которые сгенерировал бот на основе тестового списка, в журнал. Система будет брать входные данные, отправлять их чат-боту и получать от него ответы. Команда должна включать в себя имя пользователя, который используется для выполнения регрессионного теста, и указание пути для сохранения выходных данных. Опять же, можно использовать любой путь, но я советую хранить эти выходные данные в директории RAWDATA_YOURBOT . Для этой цели можно создать отдельную папку, в нашем случае использовалась папка RAWDATA_FOOD/TEST . Сгенерировать выходные данные можно с помощью следующей команды:


4. Инициализируйте файл для регрессионного теста (после завершения этой операции введите : quit в консоли CS):


5. Проведите тест, и проверьте, прошла его система или нет:

Практика разработки чат-ботов на CS

▍Разрешение коллизий в концептах

Занимаясь разработкой бота, рассчитанного на работу с входными данными, имеющими отношение к некоей теме, нужно создавать собственные концепты.

Полезно группировать лишь слова и фразы, связанные по смыслу. Это помогает повторно использовать концепты в различных шаблонах и позволяет заранее знать о значениях понятий в концепте. В идеале, если все используемые слова различаются, этот механизм работает отлично. Однако, при работе с большими списками терминов, некоторые слова могут появляться в различных концептах. Вполне нормальный подход заключается в том, чтобы не использовать эти концепты в одном шаблоне. Однако, мне пришлось работать с концептами, при совместном использовании которых, в одном из видов фраз возникали коллизии. Основная проблема заключалась в том, что мы, на самом деле, ничего не знали о порядке терминов из концепта во фразах. Именно поэтому мне пришлось использовать конструкцию вида > для того, чтобы система находила совпадения со словами, расположенными в любом порядке:


Вот как работает этот шаблон. После того, как движок CS находит первое значение в ~concept_A , он уже не выполняет его поиск в ~concept_B . Это даёт нам ошибки первого типа, или ложно-положительные совпадения. Так как из-за коллизии нельзя терять правильные значения, совпадения с которыми есть в системе, я нашёл три способа разрешения подобных проблем.

Первый способ состоит в исключении значений, которые вызывают коллизию между ~concept_A и ~concept_B . Однако, такой подход не окажется особенно полезным, если есть потребность в точных результатах распознавания фраз, так как некий набор значений будет потерян.
Второй подход заключается в том, чтобы предложить пользователям применять параметры в том же порядке, в котором они присутствуют в шаблоне. Подобным решением можно воспользоваться только в том случае, если имеется чёткий протокол общения с ботом, а пользователи заранее знают, когда используются те или иные фразы.



Коллизия концептов

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

▍Несколько тем в одном чат-боте, или несколько тем в нескольких ботах?

Второй вариант решения проблемы обработки одних и тех же высказываний на разные темы заключается в переносе схожих тем в различные чат-боты. При таком подходе, прежде чем запускать ботов на сервере, у каждого из них должны быть свои папки для хранения CS-сборок и данных пользователей. Каждый бот будет работать независимо, на собственном порту. Перед запуском каждого экземпляра нужно задать расположение папок со сборкой, данные о пользователях и номер порта в виде дополнительных параметров (например — ./BINARIES/ChatScript topic=./TOPIC_VEGETARIAN users=./USERS_VEGETARIAN port=1045) .

Подобный подход, когда применяется несколько экземпляров бота, упрощает расширение каждого из них. Минус же заключается в дополнительной нагрузке на сервер.

Создатель ChatScript заявляет, что, на самом деле, нет нужды размещать разных ботов на разных портах, и я полагаю, что он прав. Боты могут существовать совместно, в одной сборке. В приложении, над которым я работал, применён подход с использованием разных портов для того, чтобы разделить экземпляры ботов и, если в этом возникнет необходимость, упростить отключение части реализованной в системе логики (например, если некоторым клиентам не нужна поддержка всех реализованных тем, для которых созданы боты). В результате, использование разных портов для разных ботов — приём необязательный, однако, в моём случае, был использован именно он, да и в похожих случаях его тоже вполне можно применить.

▍Обработка опечаток

Первый подход заключается в описании слова внутри шаблона с использованием знака подстановки в той части слова, в котором может появиться опечатка:


Этот шаблон, а именно — его часть «app*ach», будет соответствовать словам, начинающимся с «app» и оканчивающимся на «ach», при этом неважно — сколько между ними находится символов, и то, какие это символы. В результате этому правилу будут соответствовать и верные, и неверные, с точки зрения правильности написания слова, варианты.

Второй подход заключается в создании концепта для слова с часто встречающимися опечатками и включения в этот концепт всех вариантов таких опечаток. После чего данный концепт можно использовать в шаблонах вместо слова:


Обратите внимание на то, что я тут использовал флаг IGNORESPELLING . Это позволяет избежать предупреждений об ошибках в концепте в ходе сборки бота.

Третий вариант подходит мне лучше всего. Заключается он в том, что можно расширить существующую базу исправлений движка. Для того, чтобы это сделать, нужно внести в файл ChatScript_LIVEDATA_ENGLISH_SUBSTITUTES_spellfix.txt строки, содержащие слово и варианты написания этого слова с опечатками:


После этого достаточно перезапустить движок.

▍Взаимодействие ChatScript с JavaScript

Как правило, все подключения к чат-ботам из JS выглядят так:


Упростить подключение, добавив дополнительный уровень абстракции, можно с использованием методов объекта Socket , написав на JS класс-обёртку для организации взаимодействия с CS. В подобном классе достаточно наличия асинхронного метода отправки данных и конструктора для установки имени хоста сервера и порта перед началом взаимодействия с движком CS. В качестве дополнительного параметра в подобный конструктор можно передать имя пользователя. CS умеет общаться с различными пользователями, так как он сохраняет состояние и хранит все данные, которые он узнал о пользователе, в долговременной памяти.

▍Архитектура интеграции CS и JS



Архитектура приложения, использующего чат-бота на CS

▍Отладка

После того, как в скрипте создано множество правил, может быть непросто выяснить, какое в точности правило было вызвано для обработки некоей фразы, в ситуации, когда два шаблона пересекаются. В данном случае создатель CS советует использование конструкции :verify blocking , которая позволяет получить сведения о пересекающихся топиках. Тут имеется ещё один удобный подход. Мне подошёл именно он. Я решил создать переменную, которая предназначена для хранения имени правила. Затем эта переменная просто присоединяется ко всему тому, что выдаёт бот. Как результат, можно сразу же видеть, какой из существующих шаблонов вызывает конфликт при обработке неких входных данных. В коде это выглядит так:

▍Структура проекта


Вот пример файла со вспомогательным топиком:


Если концепт включает в себя огромное количество терминов, их тоже можно объявить в разных файлах. Это упростит поддержку и расширение проекта.

Итоги

Из этого материала вы узнали всё необходимое для того, чтобы приступить к разработке собственного чат-бота на ChatScript с использованием сервера на Node.js, который играет роль промежуточного звена между пользовательским веб-интерфейсом и движком CS. Для того, чтобы лучше разобраться в CS, можете посетить страницу проекта на GitHub.

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Вопросно-ответная диалоговая система (чатбот)

Чатбот позволяет вести беседы примерно такого вида:

диалог с чатботом в телеграмме

Запуск чатбота в Telegram

Для запуска бота в Телеграме нужно зарегистрировать его у @botfather и получить токен.

Затем запускаем сервис в докере такой командой:

После старта появится приглашение ввода токена и выбора профиля бота.

Кастомизация чатбота, константы профиля

Используемая база знаний (в текущей реализации - plain text файл с фактами) указывается в профиле, который загружается при старте экземпляра бота. В скрипте console_bot.sh можно увидеть указание на тестовый профиль profile_1.json, позволяющий боту отвечать на несколько простых вопросов. В этом профиле в качестве базы знаний указан файл profile_facts_1.dat. Формат этого файла описан в шапке файла.

Среди разных фактов там можно увидеть запись:

Конструкция $name_nomn означает, что в строку при загрузке чатбота будет подставлена константа с именем name_nomn, определенная в файле profile_1.json в разделе constants:

Так как бота может встречаться в нескольких местах, то удобнее задать имя в одном файле профиля.

Когда чатбот обрабатывает вопрос "Как тебя зовут?", он определяет, что этот факт наиболее релевантен для ответа на заданный вопрос, и далее запускает процедуру построения ответа. Само имя "Вика" нигде не "зашито" в языковых моделях. Поэтому для его смены не нужно переобучать нейросетки, а достаточно отредактировать данную запись.

Вторая константа с именем "gender" определяет грамматический род для бота, в данном случае женский. В том же файле фактов можно найти такую запись:

Конструкция $chooseAdjByGender(нужен, нужна) позволяет выбрать одно из перечисленных слов, фильтруя их по константе грамматического рода. Таким образом, реплики бота становятся более релевантными "биологической" природе бота.

В состав пайплайна входят модели:

интерпретатор на базе ruGPT для восстановления полного текста реплки в контексте диалога, подробнее об этом тут.

retriever на базе ruBert с доп. слоями для подбора релевантных фактов в базе знаний.

генеративная модель на базе ruGPT для формирования текста ответа по найденному в базе знаний факту и заданному вопросу.

детектор перефразировок на базе ruBert для определения синонимичности двух предложений.

Простой чат-бот для сайта на чистом JavaScript

SimpleChatbot — это простой чат-бот для сайта, сценарий диалога которого определяется JSON-файлом или данными, расположенными непосредственно в скрипте. Состоит он из 2 частей: клиентской и северной. Первая написана на чистом JavaScript, вторая - на PHP.

SimpleChatbot очень прост в настройке и установке на сайт. Он не зависит от сторонних сервисов и библиотек. Для его работы (серверной стороны) нужен веб-сервер Nginx, Apache или любой другой, умеющий выполнять php-скрипты.

На клиентской стороне кроме самого скрипта чат-бота ( «chatbot.js» ) используется ещё FingerPrint JS . Он применяется для создания отпечатка браузера (выполнение анонимной идентификации клиента). Сам чат-бот непосредственно от него не зависит. Его действие заключается в формировании некоторого идентификатора, который затем сохраняется в LocalStorage и используется чат-ботом для передачи его на сервер. А серверу он нужен только для создания файла с соответствующим именем, в который он будет сохранять всю переписку бота с этим пользователем. По умолчанию файлы сохраняются в папку chats .

Пример содержимого каталога chats :

Пример содержимого папки chats

В этом примере имеются 2 файла. Каждый из них – это некий диалог бота с определённым клиентом.

Если его открыть, то мы увидим весь контент «разговора».

Пример разговора чат-бота с клиентом

Если обратно вернуться к FingerPrint JS и немного углубиться в эту тему, то увидим, что значение, которое он генерирует сохраняется в LocalStorage. При этом в качестве имени ключа используется значение configChatbot.key . По сути, здесь не важно, что использовать, FingerPrint JS , или какую-то другую библиотеку, или свой код, главное, чтобы он создавал некий идентификатор клиента и помещал его в хранилище.

Исходный код этого чат-бота является открытым и находится на GitHub. Текущая версия 1.3.2. В качестве лицензии, используется MIT. Эта лицензия позволяет данное программное обеспечение использовать как в бесплатных, так и в коммерческих проектах (при условии, что текст лицензии поставляется вместе с этим программным обеспечением).

Установка чат-бота на сайт

2. Загрузить папку «chatbot» в корень вашего сайта или любое другое место. Если вы выбрали последнее, то в этом случае необходимо будет ещё в определённых местах изменить отредактировать пути к файлам.

3. Добавить стили (файл «chatbot.css») к странице:

4. Подключить скрипты («fp2.js» и «chatbot.js»):

Код «chatbot.js» написан на синтаксисе, который поддерживается всеми используемые в данное время браузерами включая IE11.

5. Поместить в HTML документ кнопку, посредством которой будем вызывать окно чат-бота:

Далее необходимо поместить на страницу скрипт после подключения этих файлов.

1 вариант скрипта – с загрузкой сценария диалога из JSON файла («/data/data-1.json») посредством AJAX.

Настройка чат-бота выполняется посредством установки определённых ключей configChatbot :

  • configChatbot.btn - селектор кнопки, посредством которой будем вызывать окно диалога с чат-ботом;
  • configChatbot.key - имя ключа LocalStorage, в котором будет храниться отпечаток браузера;
  • configChatbot.replicas - URL json-файла, содержащего сценарий диалога для чат-бота;
  • configChatbot.root - ссылка, на корневой элемент чат-бота;
  • configChatbot.url - путь к файлу chatbot.php .

Инициализация чат-бота в коде выполняется так:

2 вариант скрипта – с помещением данных для чат-бота непосредственно в сценарий.

Настройка чат-бота в этом варианте практически ничем отличается от способа с JSON за исключением того, что данные здесь уже находятся непосредственно в скрипте (в configChatbot.replicas ), и их не нужно дополнительно загружать через AJAX.

Составление диалога для чат-бота

Приветственная реплика бота

Ответы для пользователя в чат-боте

Если данные, которые ввёл пользователь вы хотите использовать в репликах, то им необходимо задать имя. Осуществляется это с помощью свойства name .

Поле чат-бота для ввода запрашиваемых данных

Например, в этом примере, мы установили данным, которые введёт пользователь, имя name . Далее эти данные мы можем использовать в репликах бота используя это имя, заключенное в двойные фигурные скобки (например, {{name}} ).

Использование имени пользователя в реплики чат-бота

Далее, придерживаясь этих правил при написании реплик составляем нужный диалоговый сценарий чат-бота для своего сайта.

Когда сценарий у вас готов, его следует, если вы используете 2 вариант скрипта, поместить вместо этой строчки:

При использовании 1 варианта скрипта, его необходимо перевести в строку JSON. Для этого можно воспользоваться каким-нибудь онлайн сервисом или стандартным JavaScript методом stringify :

Если вы воспользовались последним советом, то после открытия страницы из консоли браузера нужно скопировать полученную строку (без обрамляющих её кавычек). После этого вставить её в файл с расширением json и загрузить его на сервер.

Новые возможности чат-бота

A software application used for an online chat via text or text-to-speech, instead of giving contact with a human.

Here are 1,573 public repositories matching this topic.

leon-ai / leon

Fedora & apt-get

Specs

  • Leon version: latest
  • OS (or browser) version: Fedora 30
  • Node.js version: 10.16.3
  • Complete "npm run check" output:

bug Indicates an unexpected problem or unintended behavior. good first issue Indicates a good issue for first-time contributors.

Can I contribute to crypto package

How old are you package

yagop / node-telegram-bot-api

axa-group / nlp.js

An NLP library for building bots, with entity extraction, sentiment analysis, automatic language identify, and so more

orkestral / venom

chatopera / cskefu

claudiajs / claudia-bot-builder

Create chat bots for Facebook Messenger, Slack, Amazon Alexa, Skype, Telegram, Viber, Line, GroupMe, Kik and Twilio and deploy to AWS Lambda in minutes

LucasBassetti / react-simple-chatbot

microsoft / BotFramework-WebChat

tmijs / tmi.js

danielcardeenas / sulla

Close instance during qrCallback

When executing create, it starts an instance of chrome and waits for the qrcode to be read.

How do I cancel this instance? Close this instance.

botuniverse / onebot

broidHQ / integrations

samtecspg / articulate

aws-samples / aws-lex-web-ui

wechaty / getting-started

Viber / build-a-bot-with-zero-coding

dmitrizzle / chat-bubble

aichaos / rivescript-js

Help wanted: Update dependencies per `npm audit`

GitHub regularly warns me that several dependencies in rivescript-js's tree have vulnerabilities. I have tried on a number of occasions to upgrade all the dependencies, and only end up getting myself into dependency hell.

RiveScript.js is intended to be extremely light on dependencies, with its package.json naming only thre

Peekobot / peekobot

A simple, choice-driven chatbot framework for your website written in just over 100 lines of vanilla JavaScript (and some CSS)

Читайте также: