Вклад в открытый исходный код в Suttna

Десять месяцев назад мы начали новый проект с @santiago.долданмы назвали это Сутна. Идея заключалась в том, чтобы создать бота, способного планировать стендапы в нескольких чат-клиентах. Этот сайд-проект превратился в настоящий бизнес, и им начали пользоваться довольно много пользователей 😊

Чтобы создать кроссплатформенного бота, нам нужна была технология, которая абстрагировала бы уровень связи между различными провайдерами чата. Точно так же нам нужен был общий набор конструкций, которые позволили бы нам определять диалоги пользователей. Мы нашли платформу Microsoft BotBuilder действительно хорошим вариантом. Он решил обе проблемы, отделив сетевое общение с провайдерами чата, используя Connectors и моделирование пользовательских разговоров с использованием очень мощного Dialogs API.

Мы провели первоначальное тестирование фреймворка и решили попробовать!

Во время нашего путешествия Сутнамы создали несколько библиотек для решения различных задач в экосистеме BotBuilder.

Это некоторые из библиотек, которые мы разработали и выложили в открытый доступ.

Некоторые уточнения:

Botbuilder -> Платформа Microsoft с открытым исходным кодом для node.js и C#

BotFramework -> Microsoft Bot Framework предоставляет именно то, что вам нужно для создания и подключения интеллектуальных ботов, которые естественным образом взаимодействуют везде, где разговаривают ваши пользователи, от текстовых/SMS до Skype, Slack, почты Office 365 и других популярных сервисов.

Мы обнаружили несколько проблем при использовании каналов BotFramework.

Самая важная проблема заключается в том, что вы не «владеете» процессом OAuth. BotFramework обрабатывает OAuth, а затем отправляет событие вашему боту. Основная проблема с этой настройкой заключается в том, что информация об установщике недоступна в событии.

Пропущенные события. Slack отправил несколько интересных событий, которые нам были нужны, но BotFramework не пересылал (вероятно, потому, что в некоторых случаях они использовали RT API). Первым решением этой проблемы было botbuilder-slack-расширение. По сути, он добавил новый коннектор для прослушивания и отправки недостающих событий с помощью веб-перехватчиков Slack.

Команды. Еще одной функцией, которую мы хотели использовать, но которая была недоступна в Botbuilder, были команды Slack.

Чтобы решить все эти и некоторые другие проблемы, мы решили создать специальный коннектор Slack, который на 100% совместим с ChatConnector от Botbuilder. Это означало бы, что мы можем поменять местами коннекторы без изменения дополнительного кода, и это должно «просто работать».

На данный момент Suttna использует botbuilder-slack без каких-либо проблем уже более 4 месяцев.

Источник доступен здесь

Когда пользователи общаются с Suttna с помощью BotBuilder, состояние разговора пользователя должно где-то храниться. BotBuilder предоставляет реализацию в памяти, которая подходит для тестирования и, возможно, разработки, но определенно ненадежна для производственной среды. Мы искали альтернативы и не смогли найти ту, которая разрешила бы наши ограничения. Мы решили создать небольшую библиотеку хранения, которая сохраняет состояние разговора в redis.

Эта библиотека реализует возможности BotBuilder. IBotStorage интерфейс, простой и понятный.

Источник доступен здесь

Botframework пытается стандартизировать формат сообщения, но мы обнаружили несколько проблем при попытке поддерживать набор переводов, которые должны работать в Slack и Microsoft Teams. У нас было несколько проблем с новыми строками и форматированием кода.

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

На данный момент botbuilder-markdown поддерживает Slack и Microsoft Teams.

Источник доступен здесь

До сих пор было очень интересно работать с Botbuilder. Разрабатывается новая экспериментальная версия Botbuilder. Любой, кто хочет внести свой вклад в идею, может следить за развитием здесь

Вы пробовали какую-либо из наших библиотек? Вы находите их полезными?

Хочу знать ваши мысли и любые отзывы!

Наслаждайтесь 🎉

*****

Написано Мартин Фернандес на 12 марта 2018 г.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *