Спасибо, Матиас за ответ! Вообще говоря, я согласен с вами, pheraps, что не все чат-боты являются «разговорными», и в простых случаях чат-бот может быть реализован непосредственно на предпочитаемом вами языке программирования.
Это особенно верно для командно-ориентированных чат-ботов или того, что я называю транзакционными ботами: давайте рассмотрим на примере бота, который просто садится в такси. Представьте, что есть бот такси с именем @GenovaTaxibot.
Таким образом, этот бот (опционально реализованный как встроенный бот Telegram) мог просто принимать такие запросы, как:
@GenovaTaxy via Bozzano 2/10
ответ бота будет примерно таким:
ciao Giorgio! taxi ALFA66 in 3 minuti.
Все просто! Но обратите внимание, как ни парадоксально,
это пример не разговорного бота!
У службы такси может быть только один (уникальный) запрос :), и в этом случае жесткое кодирование будет идеальным, простым и быстрым.
Проблема возникает с более сложным диалоговым чат-ботом: я имею в виду бота, который управляет сложным / естественным диалогом с пользователем, где, даже если внутри одного вертикального домена, темы (и количество различных диалоговых потоков ) много, и бот должен понимать конкретные / личные запросы и, возможно, бот должен изучать действия пользователя (память… «сознание») :)
В этом сценарии ботов следующего поколения (поколение II / III?) Я думаю, что жестко запрограммированный способ может стать кошмаром программирования, который поддерживает разработчиков в эпоху спагетти-программного обеспечения / камней «goto». Если использовать метафору в веб-программировании, это может быть похоже на времена, когда мы создавали веб-страницы, записывая HTML-код из внутреннего кода… :(
puts "<html><body>This is a spaghetti-nightmare</body></html>"
Итак, в последние дни я стал большим поклонником :
метаязыки сценария потока диалога: языки для описания разговоров, производящие код исходного сценария, который будет оцениваться механизмом диалога времени выполнения.
Я предпочитаю пример ChatScript с открытым исходным кодом от Сью и Брюса Уилкоксов (мое скромное вступление здесь). Вот пример сценария:
Используя что-то вроде C hatScript (или R ivescript, или S uperscript, не возвращаясь к ужасному AIML…), вам придется научиться, Я признаю.
Но долгосрочное преимущество состоит в том, что внутренняя логика отделена от «интерфейсных» диалоговых сценариев, позволяя сосредоточиться на «разработке» диалоговых программистов от внутренней логики программного обеспечения (базы данных, внутренние службы и др.).
Другими словами, создание сценариев диалогов - это вопрос новой «профессии», более ориентированной на проектирование (?!) / Авторинг человеческих взаимоотношений. И возможный простой метаязык сценариев диалогов (как chatScript?) Откроет создание диалоговых приложений для не-разработчиков (в современном здравом смысле).
Кстати, WIT.ai и API.ai (я использовал и немного наслаждался этим последним) прекрасны, но есть большая проблема, immo, с использованием проприетарной диалоговой системы, расположенной в облаке.
Часть прибыли - модель, большая проблема заключается в том, что в коммерческом приложении или связанном с некоторыми данными пользователей конфиденциальности данные клиентов передаются активатору платформы (это может быть WIT.ai, или API.ai, или pandorabots, или любой другой возможно другое); это огромная проблема, и именно по этой причине я ищу общий язык сценариев диалогового потока и диалоговую машину с открытым исходным кодом (сейчас мой любимый кандидат - chatScript, система с таким многолетним опытом).
Извините за отступление, надеюсь, не слишком не по теме
Респект
giorgio