Kogno — это платформа с открытым исходным кодом, работающая на языке программирования Ruby и предназначенная для разработки диалоговых приложений.
Он основан на архитектуре MVC и во многом вдохновлен Rails, поэтому, если вы когда-либо работали с этим фреймворком, Kogno будет вам очень знаком.
В настоящее время поддерживаются следующие платформы обмена сообщениями: WhatsApp, Messenger и Telegram, при этом для всех них поддерживается единый код в одном приложении.
Полная документация
Вы можете прочитать полную документацию на https://docs.kogno.io или просто продолжить здесь.
$ gem install kogno
$ kogno new my_chatbot
my_chatbot
и установите зависимости:Библиотеки разработки MySQL должны быть предварительно установлены перед запуском следующей команды.
$ bundle install
config/database.yml
: adapter : mysql2
pool : 5
username : your_user_name
password : your_password
host : localhost
database : your_database_name
encoding : utf8mb4
collation : utf8mb4_unicode_ci
$ kogno install
$ kogno http start
Чтобы получать вебхуки, вам необходимо настроить платформы обмена сообщениями:
- Настроить WhatsApp
- Настроить Телеграм
- Настроить Мессенджер
Код ниже представляет класс Context
, который является эквивалентом класса Controller
в Ruby on Rails:
class MainContext < Conversation
def blocks
intent "greeting" do
@reply . text "Hello!"
@reply . button (
"How can I help you today?" ,
[
{
title : "View Products" ,
payload : "featured_products"
} ,
{
title : "My Cart" ,
payload : "purchases/view_cart"
}
]
)
end
postback "featured_products" do
@reply . text "Alright."
@reply . template "products/featured" , title : "Here is a list of today's featured products."
end
keyword [ "stop" , "quit" ] do
@reply . text "Alright"
@reply . typing 2 . seconds
@reply . text "I'll stop writing you now.."
end
everything_else do
@reply . text "Sorry, but I don't understand what you said."
end
end
end
В приведенном выше примере MainContext
имеет возможность обрабатывать следующие сценарии:
intent "greeting"
: приветственное сообщение, например «Привет» или «Привет». Который ранее был создан и обучен на движке НЛП.postback"featured_products"
: щелкните событие на кнопке «Просмотр продуктов», которое было отправлено в качестве ответа в предыдущем блоке с намерением «приветствие».keyword ["stop", "quit"]
: в частности, два ключевых слова "остановиться" или "выйти".everything_else
: любое сообщение, характеристики которого не соответствуют критериям выполнения блоков, перечисленных выше.Чтобы лучше понять, как работают блоки, и увидеть их полный список, перейдите по следующей ссылке https://docs.kogno.io/contexts/blocks.
Вы можете внести большой вклад в этот проект, разрабатывая диалоговые приложения с помощью Kogno, и если вы обнаружите ошибку, сообщите об этом.
И если вы так же увлечены этим, как и мы, приходите и кодируйте вместе с нами, исправляя ошибки, добавляя больше интеграций и создавая больше функций.
Kogno выпускается под лицензией MIT.
Узнать больше
Полную документацию можно прочитать на http://docs.kogno.io.
Также вы можете скачать исходный код демо-приложения для бронирования авиабилетов, написанного на Kogno.