Как создать телеграм-бота | База знаний Selectel
С помощью ботов можно упростить себе задачу коммуникации с пользователями, создав для них умного помощника. Боты понимают текстовые команды и могут обращаться к API вашего вебсайта, сервиса или быть самостоятельным продуктом с уникальными услугами.
Обычно, для создания бота требуется сервер, но в этой статье мы разберём подход, позволяющий обойтись без него. Он идеален при резких колебаниях количества запросов и прекрасно выдерживает пиковые нагрузки.
Настроить Телеграм-бота на Облачных функциях, используя официальный API и заготовленный нами пример, можно в 3 этапа:
- Запрограммировать логику работы Телеграм-бота.
- Зарегистрировать нового бота в Telegram.
- Связать бота и его логику воедино.
Запрограммировать логику работы Телеграм-бота
Чтобы упростить задачу, мы написали пример такого бота. Его исходный код доступен по ссылке github.com/selectel/cloud-telegram-bot. Он понимает команды:
/start
с приветственным сообщением;
с ответом в виде стикера;/getwebhook
чтобы вы могли получить информацию о настройках вашего бота;/setwebhook
для настройки вашего бота, но об этом позже.
Пройдите следующие шаги с нашим примером бота, чтобы освоиться:
- Скачайте исходный код как архив («Clone or download» → «Download ZIP») и распакуйте его.
- Внутри должно быть:
- «setup.py» с минимальным кодом, чтобы Python-окружение приняло содержимое папки за модуль для установки;
- «requirements.txt» с описанием зависимостей;
- «bot» — папка с исходным кодом нашего бота.
- Выделите все эти файлы и папки, а затем создайте из них новый ZIP-архив, тогда исходный код внутри архива не будет иметь лишних папок (как в случае с архивом, скачанным с github).
- Перейдите в панели управления в раздел Облачная Платформа → Функции и нажмите кнопку Создать функцию.
- Выберите среду выполнения и задайте имя, например
Bot
. - В поле Загрузить выберите Архив.
- Загрузите ZIP-файл в качестве Кода функции.
- Укажите Путь к файлу как
/bot/tele_bot.py
. - Укажите Вызываемую функцию как
main
. - Получите токен по инструкции и в поле Переменные окружения
- Нажмите кнопку Сохранить и развернуть.
- Чтобы получить ссылку для вызова функции, перейдите на вкладку Триггеры и нажмите на тумблер HTTP-запрос.
Теперь у нас есть API, реализующее логику ответов бота. Следующим этапом мы зарегистрируем его в Telegram.
Зарегистрировать нового бота в Telegram
Чтобы Telegram знал о существовании нашего бота, его нужно зарегистрировать. Для этого существует только один способ:
- Найдите бота @BotFather в Телеграм. Это официальный бот, созданный специально для управления ботами.
Отправьте ему команду:
/newbot
@BotFather спросит вас, как вы назовёте вашего бота. Следующим сообщением отправьте его название, заканчивающееся на «_bot».
Запишите полученный токен от @BotFather — это ключ для работы с Telegram API.
Теперь у нас API, регистрация бота в Telegram и его токен. Осталось связать это вместе.
Как связать бота и его логику воедино?
На этом этапе надо сделать так, чтобы бот знал токен пользователя, а Telegram знал, где его API:
- Найдите переменную окружения «TOKEN» в настройках функции. Мы оставили её пустой на первом этапе.
- Укажите в этой переменной токен вашего бота, который получили от @BotFather.
- Нажмите Сохранить и развернуть
Далее нужно направить сообщения, которые пользователи отправляют в Telegram, нашему боту — в то API, которое для него создали.
Способ 1. Через бота @SelectelServerless_bot
- Найдите бота @SelectelServerless_bot в Телеграме.
Введите команду:
/setwebhook <Токен от вашего бота> <URL от облачной функции>
Бот ответит тем, что получит из Telegram API. Если всё хорошо, это будет «true».
Чтобы удостовериться в том, что всё корректно, отправьте команду:
/getwebhook <Токен от вашего бота>
В ответ должна прийти информация о webhook, в том числе указанный вами URL.
Способ 2. Из заготовленной формы
Откройте форму (или скопируйте её к себе в Облачное хранилище). Вставьте токен от вашего бота в первое поле, URL облачной функции во второе и нажмите на кнопку «Set Webhook». Произойдёт обращение к api.telegram.org, и вы увидите результат.
Примечание: может понадобиться наличие VPN.
Итог
Готов для работы бот, доступный в Телеграме, отвечающий на команды и способный автоматически масштабироваться под нагрузкой и без сервера.
Как сделать чат-бота за 15 минут — CASES
В условиях современного рынка существует множество трендов и тенденций. Некоторые из них молниеносно появляются и также быстро исчезают, а некоторые задерживаются и укореняются на более долгое время.
Одним из таких трендов являются чат-боты. Но так как тема эта довольно сложная, сегодняшняя ситуация примерно похожа на ситуацию с SMM продвижением — все хотят, но не понимают зачем, как и сколько это должно стоить.
В этой статье мы расскажем что такое чат-боты, зачем они нужны, как создать чат-бота без навыков программирования и покажем как можно применить бота в маркетинге.
Что такое чат-бот
Чат-бот — так называемый, искусственный интеллект, специальная программа, которая может общаться с пользователями вашего сайта или страницы в социальных сетях, а точнее отправлять им различные сообщения в заданной предварительно последовательности.
Разработка чат-бота производиться с участием программиста и без него. Первый вариант — самый простой, о котором мы поговорим в этой статье реализуется при помощи специальных программ — конструкторов. Они бывают платные и бесплатные, все зависит от необходимого вам функционала. Второй вариант сложнее, дороже, но стоит отметить что чат-бот, написанный программистом, всегда «умнее», чем созданный через конструктор.
Зачем нужен чат-бот
Сегодня вы можете найти 1 000 000 советов о том, как написать чат-бота, в какой программе это лучше сделать, как найти подходящий сервис, но мало кто пишет о том, какие цели стоит ставить перед чат-ботом. А зря, от этого ведь зависит рациональность инвестирования времени и средств в разработку, а также результат маркетинговых активностей.
Целью создания чат-бота может быть:
- Автоматизация работы службы поддержки.
- Разгрузка колл-центра и ответственных менеджеров.
- Построение воронки продаж.
- Привлечение и получение лидов.
Как создать чат-бота бесплатно
Все понимают, что бот — это программа. Чтобы создать программу, нужен программист. Чтобы привлечь программиста, нужны средства. Но что делать, если чат-бот необходим, а денег на программиста просто нет.
Мы знаем как вам помочь. В этой части статьи мы расскажем как создать чат-бота бесплатно.
Рецепт прост как 2х2. Вам нужен конструктор ботов.
Конструктор ботов — это специальный сервис, в функционал которого, заложены определенные простые функции и последовательности действий, которые сможет выполнять ваш чат-бот. Все что вам нужно будет сделать, так это внести информацию о своей компании, кастомизировать внешний вид сообщений и продумать необходимые сценарии, по которым робот будет давать ответы на вопросы.
Зачастую, этих возможностей хватает с головой, чтобы закрыть потребности малого и среднего бизнеса.
Для того, чтобы внести еще большую ясность, мы составили таблицу, в которой наглядно показали плюсы и минусы создания чат-ботов с привлечением программистов и без них.
Таблица — Преимущества и недостатки создания чат-бота через конструктор ботов и при помощи программиста.
Вывод
Если у вас есть время и средства — подключайте программиста. Если времени и средств особо нет, читайте нашу статью и подключайте чат-бота самостоятельно.
Как сделать чат-бота, если не умеешь программировать
Отвечаем на главный вопрос, который интересует большинство из зашедших на эту страницу пользователей: как создать чат-бота, если не умеешь программировать и при виде кода впадаешь в панику?
Как вы уже поняли, нужен конструктор ботов. Но, если вы введете в Google запрос «какой конструктор ботов выбрать» — в ответ получите 1К ссылок, с самыми разнообразными по функционалу и возможностям конструкторами.
DON’T PANIC!
Мы немножко познакомим вас с темой и подскажем как получить то, что нужно именно вам.
Во-первых, отметим, что создание чат-бота нужно для общения через мессенджеры. Самые распространенные мессенджеры, которые используются для таких целей это:
- Facebook messenger
- Telegram
- Viber
Начнем по порядку.
Чат-бот Фейсбук
Это, пожалуй, самая популярная тема, волнующая большую половину пользователей. Для начала, давайте проведем оценку рынка.
5 сервисов для создания ботов без кодинга и без денег
1) ChattyPeople
Как утверждает Рэмптон, лучший сервис для создания чат-ботов. Простой, удобный, бесплатный.
2) Botsify
3) Chatfuel
Достаточно простой в освоении и использовании сервис для создания чат-ботов. Наша команда опробовала его и мнения разошлись 50/50. Да, сервис прост, но прост настолько, что значительно уступает тому же Many Chats по функционалу и отчетности. Но это дела каждого. Безусловно достоин внимания.
4) FlowXO
5) BeepBoop
Из личного опыта:
Мы тестировали несколько сервисов для создания чат-ботов и можем с уверенностью отдать предпочтение платформе ManyChat.
Почему ManyChat:
- Простой и интуитивно понятный интерфейс, несмотря на то, что он англоязычный.
- Широкие возможности аналитики внутри самого сервиса.
- Возможность добавлять виджеты на сайт.
- Совместимость с Facebook.
- Широкий функционал в бесплатной версии.
- Адекватная стоимость платной подписки.
- Наличие подробной справки и обучающего видео и текстового материала.
Как создать чат-бота при помощи сервиса ManyChat. Полная инструкция
Шаг 1. Регистрация
- заходим на сайт сервиса и кликаем Get Started Free
- Попадаем на окно авторизации через Facebook
- Кликаем Sign In With Facebook
- Устанавливаем галочку на пункте I agree to Many Chat’s Terms of Service and Private Policy
- Кликаем Sign In With Facebook
- Вводим логин и пароль от вашего аккаунта в Facebook (если вход не произошел автоматически)
На следующем экране выбираем какие именно страницы вы хотите подключить к Many Chats
Далее, загрузится основной экран с синим осьминогом, на котором ваш необходимо согласиться или отказаться от получения рассылки от сервиса и нажать кнопку Get Started.
После этого, попадаем в дашборд. Это такой себе командный пункт из которого вы будете управлять своим чат-ботом.
Шаг 2. Приветственное сообщение
Для начала поздороваемся.
Первое, что увидит пользователь, который собрался написать вам сообщение и вошедший в Facebook Messenger — кнопка Get Started внизу экрана мессенджера. Кликнув на нее, пользователь получит первое приветственное сообщение.
Как настроить Welcome Message в ManyChats
- В левом меню кликаем по кнопке Automation
- В выпадающем меню находим пункт Welcome Message и кликаем по нему
- Далее кликаем по сообщению и пишем приветственное сообщение
Шаг 3. Ответ на непонятный вопрос
Этот ответ отправляется ботом автоматически, если он не понимает что нужно ответить на заданный вопрос.
Как настроить Default Reply в ManyChats
- В левом меню кликаем по кнопке Automation
- В выпадающем меню находим пункт Default Reply и кликаем по нему
- Далее кликаем по сообщению и редактируем сообщение
Шаг 4. Ключевые слова
Ключевые слова — это особые сигналы для бота. Чтобы было понятно, приведем пример: если вы отправите слово «start» нашему чат-боту, он подпишет вас на рассылку и вы увидите приветственное сообщение подтверждения подписки.
Остальные сигналы (ключевые слова) работают аналогично: задается ключевое слово и к нему привязывается определенное действие. Если максимально все упростить, то можно провести аналогию с сигналами светофора:
- ключевое слово: красный — действие бота: стоп
- ключевое слово: желтый — действие бота: приготовься
- ключевое слово: зеленый — действие бота: начинай движение
Шаг 5. Статистическое меню в Messenger
Это то меню, которое видит пользователь при входе в диалог с вами в Messenger. Вот, как оно выглядит:
Это меню — важный момент, которому стоит уделить внимание. Сюда нужно вынести кратко главную информацию, которую вы хотите сообщить пользователю и добавить призывов к действию.
В бесплатной версии, вам будет доступно 2 пункта для вывода. Как вариант, можно вывести такие:
- адрес вашего сайта
- СТА для совершения действия, например, личной консультации
Как настроить главное меню в ManyChats
- Заходим в дашборд, пункт Automation
- Переходим в пункт Main Menu
Лайфхак: да, у вас есть всего лишь 2 пункта в бесплатной версии, но в каждом из этих пунктов, можно сделать несколько подпунктов. Таким образом, количество информации, которую вы можете показать пользователю увеличивается.
Шаг 6. Отправка широковещательных сообщений
Вы набрали подписчиков бота, что дальше? С ними нужно как-то работать, напоминать о себе, делать предложения. Для этого, нам понадобятся Broadcasts или другими словами автоматизированную отправку сообщений или автопостинг.
Для этого:
- зайдите в дашборд
- в левом меню найдите пункт Broadcasting и кликните по нему
- в выпадающем меню кликните по пункту Broadcasts
Теперь, чтобы создать сообщение, нажмите на кнопку +New Broadcast
Создайте свое первое сообщение и кликайте Go Next, чтобы продолжить и Preview, чтобы посмотреть что получилось.
Как перенаправить трафик в Messenger
Настройка стала +/- ясно/понятно. Но вот главный вопрос — где взять подписчиков для бота? Для этого ManyChats располагает отличным инструментом, который называется Growth Tools.
Познакомимся с ним поближе
- заходим в дашборд
- в левом меню находим пункт Growth Tools и кликаем на него
- далее, в правом верхнем углу жмем кнопку New Growth Tools и попадаем в меню редактирования нового инструмента роста
Telegram чат бот — легкий способ сделать бота
Чат бот telegram интересный и эффективный инструмент.
Инструкция: Как сделать чат-бота Telegram без кодинга
Подготовительные работы:
- Устанавливаем приложение Telegram. Ссылка на скачивание: ссылка
- Регистрируемся в приложении
Для легкого и быстрого создания бота, мы будем использовать сервис Manybot.
Создаем бота:
Переходим на manybot.io
Кликаем кнопку «Создать бота»:
Далее, кликаем: Открыть ManyBot в Telegram:
Если вы работаете с десктопа, откроется окно переадресации в приложение Telegram, в котором нужно нажать «Открыть».
Открываем Telegram и кликаем кнопку «Добавить нового бота» в меню Manybot:
Следуя инструкции, переходим к @BotFather. Это «царь-бот» в Telegram. Любого нового бота, можно создать только обратившись к нему. Что мы собственно говоря и сделаем. Переходим к @BotFather:
Видим приветственное сообщение. Для начала работ, отправляем боту команду /start, в ответ бот пришлет с описанием своих функций и команд, которыми вы можете эти функции вызвать.
Сообщаем @BotFather о том, что хотим создать нового бота командой /newbot:
Дальше, @BotFather спросит как вы хотите назвать своего бота. Мы назовем его TestBot.
Теперь, даем боту юзернейм, по которому вы сможете найти бота в поиске:
Бот создан. Теперь нужно скопировать токен для дальнейших действий:
Возвращаемся в ManyBot и отправляем боту скопированный токен и жмем кнопку «Я скопировал токен»:
В ответ вы получите сообщение об успешном создании бота и просьбой немного о нем рассказать:
Этот шаг можно пропустить.
Чтобы люди могли подписаться на вашего бота и начать с ним общение, нужно выслать им ссылку на него из сообщения (см. скрин выше) или разместить ссылку на сайте, в Instagram и пр.
Дальнейшие действия зависят от задач, которые перед вами стоят. Если вам достаточно бота, ОК, берите ссылку и размещайте в местах, где ее смогут увидеть ваши потенциальные подписчики.
Если вы ведете канал в Telegram и хотите наладить постинг и добавить дополнительные возможности к своим постам, сделайте следующее.
Как добавить лайки и сделать отложенный постинг в Telegram-канал
Сделайте созданного бота админом вашего канала:
- зайдите в канал
- найдите пункт управления каналом (три вертикальные точки справа вверху)
- кликните по ним и в выпадающем меню выберите: управление каналом — администраторы — добавить администратора:
- далее, в поиске найдите вашего бота по юзернейму, который мы присваивали ранее и назначьте его админом:
- находим в Telegram специального бота, который называется @Controllerbot
- первое, что вы увидите — сообщение с описанием возможностей этого бота.
- даем боту команду /start
- далее, подключаем бота. Для этого копируем токен, полученный ранее в @Controllerbot:
- далее, подключаем канал:
- создаем пост. Для этого, кликните на кнопку «Создать новый пост». Вас автоматически переадресует в ваш созданный бот:
- отправляем непосредственно то, что хотим опубликовать:
- выбираем, что нужно добавить к посту (мы выбрали реакции):
- отправляем боту реакции, которые хотим прикрепить:
- кликаем кнопку «Далее» и выбираем необходимое действие:
- мы выбрали «Опубликовать». Вот, что получилось:
Как сделать опрос в Telegram
Для того, чтобы сделать опрос в Телеграм, находим бота @vote:
Выбираем опрос какого типа мы хотим создать: публичный или анонимный. Мы выбрали Public:
Отправляем вопросы, которые будут включены в наш опрос и варианты ответов:
По окончанию, отправляем боту сигнал о завершении настроек в виде команды /done
Еще один способ добавить реакции к посту
Telegram бот @like
В ответ, бот попросит выслать сообщение, к которому нужно прикрепить реакции:
После этого, нужно выслать реакции, которые вы хотите использовать (до 6 эмоджи):
Пост готов.
Несколько полезных команд для вашего бота:
Чтобы настроить меню Telegram, отправьте боту /commands
Чтобы посмотреть справку, отправьте боту /help
И так далее.
Как подключитьTelegram чат-бот | SendPulse
Чат-бот — это автоматизированный многофункциональный помощник, который может показывать информацию подписчикам и собирать информацию по запросу согласно заранее подготовленным сценариям.
Следуйте пошаговой инструкции, чтобы создать своего первого чат-бота для Telegram мессенджера или подключить существующий к сервису SendPulse для дальнейшей настройки.
Если у вас уже создан бот, пропустите первый пункт и переходите сразу ко второму.
Как создать нового бота в Telegram
Откройте мессенджер Telegram, войдите в вашу учетную запись или создайте новую.
Шаг 1. Введите в поле поиска @BotFather и выберите бота.
Обратите внимание, что у официального бота Telegram будет стоять синий подтверждающий знак возле имени в виде галочки.
Шаг 2. Нажмите «Запустить» для активации бота BotFather.
В ответ вы получите список команд по управлению ботов.
Шаг 3. Выберите или напечатайте и отправьте команду /newbot
.
Шаг 4. Дайте имя боту — клиенты увидят это имя при общении с ботом. И никнейм бота — по нему можно будет найти бота в Telegram. Никнейм должен быть уникальным, не повторять существующие в базе и заканчиваться на слово «bot».
После того как вы выберите подходящее имя бот будет создан. Вы получите сообщение со ссылкой на бота t.me/<никнейм_бота>, рекомендации по настройке аватарки, описание бота и список команд для настройки бота.
Для подключения бота в SendPulse вам понадобится токен. Скопируйте значение токена и перейдите к последнему пункту.
Где найти ключ для уже существующего бота
Шаг 1. Перейдите к боту @BotFather и введите команду /token
.
Вы увидите кнопки с созданными ботами.
Шаг 2. Выберите бота, которого нужно подключить.
Скопируйте значение токена.
Как подключить бота в Sendpulse
Перейдите в раздел «Чат-боты» в вашем аккаунте SendPulse. Если ранее у вас не было подключенных каналов, нажмите на кнопку «Подключить каналы». Если же вы уже подключали ботов, перейдите в раздел «Управление ботами».
Затем выберите нужный канал и нажмите на кнопку «Подключить Telegram».
Введите ключ доступа — токен полученный в созданном боте. Нажмите «Подключить».
Нажмите на кнопку «Подписаться на бота». Таким образом вы сможете тестировать каждое сообщение и цепочку и отправлять их себе перед реализацией.
Вы будете перенаправлены в приложение «Telegram», нажмите на кнопку «Запустить» и вы подпишетесь на своего бота.
Чат-бот будет успешно добавлен.
Можете переходить в него и начинать создавать приветственные и триггерные цепочки, массовые рассылки.
Обратите внимание, что подписчики не импортируются автоматически. После подключения вы сможете собирать аудиторию с помощью виджета подписки или делясь ссылкой на бота t.me/<никнейм_бота> напрямую. Также вы можете вручную загрузить файл с ранее собранными подписчиками.
Подключить чат-бота Telegram
Обновлено: 29.03.2021
Боты — всё по этой теме для программистов
Создаём бота в Telegram для управления платными подписками на канал
Подробная инструкция о том, как создать бота для предоставления демо-доступа и контроля подписок на приватный канал в Telegram.
Боты для Discord на Python: проект для начинающих
Не нужно ничего устанавливать и платить за размещение. Такие боты для Discord без проблем могут работать в бесплатном «облаке».
Создание голосового бота: взаимодействие с веб-интерфейсом через мобильный телефон
В этой статье разработчик из Voximplant расскажет нам, как он создавал бота, который общается с пользователем голосом и показывает ему картинки в браузере.
А вы уверены, что общаетесь с человеком?
В работе рассматриваются принципы работы чат-ботов. С пониманием того, как они работают, можно вывести критерии, помогающие людям выявить бота.
Где создать своего бота и соревноваться по сети: подборка площадок
Хотите написать свой Скайнет, но не знаете, с чего начать? Начните с малого! Представляем вашему вниманию подборку онлайн-площадок, на которых можно создавать своих ботов и сталкивать их с ботами других людей.
Создаём политического Twitter-бота с помощью Node.js и StdLib
Автоматизация правит миром. Разбираемся, как, используя цепи Маркова, на основе двух существующих аккаунтов, сделать самообучающегося Twitter-бота.
Telegram-бот на Python за полчаса с aiogram
Напишем простой Telegram-бот на Python с использованием aiogram, Docker и AWS, предварительно ознакомившись с нужными инструментами.
Курс «Создание чат-бота для Telegram»
Русскоязычный видеокурс по созданию чат-бота для мессенджера Telegram, обновленный в 2017 году. Автор курса подробно рассказывает о построении архитектуры бота и приводит примеры написания логики. Помимо базового курса автор предлагает…
/dev/null не нужен: пишем бота на Python, который будет присылать свежие мемасики
Сегодня мы создадим бота для Facebook Messenger, который будет присылать нам свежие мемы, мотивационные сообщения и шутки. В этой статье есть большая часть информации, которую нужно знать для создания своего бота.
Соцсеть в виртуальной реальности, управление компьютером силой мысли и множество новинок для разработчиков — всё, что Facebook показала на конференции F8
18–19 апреля прошла ежегодная конференция Facebook под названием F8. В рамках этого события компания показала множество различных новинок.
Советы по проектированию интерфейса чат-ботов: лучшая практика
Чат-боты сейчас очень популярны, особенно в мессенджерах и социальных сетях — почитайте, например, наше руководство по созданию бота для ВКонтакте. С помощью ботов заказывают еду, покупают билеты, выбирают одежду и делают многое,…
Бот ВКонтакте: руководство и полезные инструменты разработки
Разработка ботов для мессенджеров — тренд 2016 года. Бот в соц. сети «ВКонтакте» — новый тренд в России, а потому мы разберём его разработку прямо сейчас
Обзор: создаем погодного бота на основе Microsoft Bot Framework и искусственного интеллекта LUIS
Очевидно, разработка технологий искусственного интеллекта становится одним из приоритетных направлений в деятельности Microsoft. В ходе пленарного выступления на конференции Build 2016 был анонсирован новый набор инструментов для разработки ботов —…
Начало работы — Создание первого чат-бота — Teams
- Чтение занимает 5 мин
В этой статье
Это руководство содержит сведения о том, как создать, запустить и развернуть чат-бота для Teams. Чат-бот выступает в качестве посредника между пользователем Teams и веб-службой. Пользователи могут общаться с ботом, чтобы быстро получить информацию, инициировать рабочие процессы или выполнить другие действия, предлагаемые веб-службой.
Важно!
В настоящее время боты доступны в облако сообщества для государственных организаций (GCC), но недоступны в GCC-High и Министерстве обороны (DOD).
Прежде чем начать
Убедитесь, что среда разработки настроена путем установки необходимых условий.
Создание проекта
Используйте набор средств Teams для создания своего первого проекта.
Откройте Visual Studio Code.
Выберите значок Teams на боковой панели, чтобы открыть Teams набор средств.
.
Выберите Создать проект.
.
Выберите Создать приложение Teams.
В разделе Выбор возможностей выберите Бот, отклоницу вкладку и выберите ОК.
В разделе Регистрация ботов выберите Создать новую регистрацию бота.
В разделе Язык программирования выберите JavaScript.
Выберите папку рабочей области. В папке рабочей области будет создана папка для создаваемого проекта.
Введите подходящее имя для приложения, например
helloworld
. Имя приложения должно содержать только буквы. Чтобы продолжить, нажмите клавишу ВВОД.
Создание приложения Teams займет несколько секунд.
Используйте для создания первого проекта интерфейс командной строки teamsfx
. Начните с папки, в которой будет создана папка проекта.
teamsfx new
Интерфейс командной строки выдаст несколько вопросов, ответы на которые используются для создания проекта. Каждый вопрос сопровождается подсказкой о том, как на него отвечать (например, использовать клавиши со стрелками для выбора варианта). Ответив на вопрос, подтвердите свой выбор, нажав клавишу ВВОД.
- Выберите Создать приложение Teams.
- Выберите вкладку Bot и deselect.
- Выберите Создать новую регистрацию бота.
- Выберите JavaScript в качестве языка.
- Нажмите клавишу ВВОД, чтобы выбрать папку рабочей области по умолчанию.
- Введите подходящее имя для приложения, например
helloworld
. Имя приложения должно состоять только из букв и цифр.
После ответа на все вопросы создается проект.
Знакомство с исходным кодом
Если вы хотите пропустить этот раздел, вы можете запустить приложение локально.
Расширение для сообщений использует Bot Framework, чтобы дать пользователю возможность взаимодействовать со службой посредством общения. После генерации кода проект будет выглядеть следующим образом:
Код бота хранится в каталоге bot
. bot/teamsBot.js
— основная точка входа для бота. Диалоги хранятся в каталоге dialogs
.
Совет
Перед интеграцией своего первого бота в Teams ознакомьтесь с чат-ботами за пределами Teams. Дополнительные сведения о ботах см. в руководстве Служба Azure Bot.
Локальный запуск приложения
Набор средств Teams позволяет размещать приложение локально. Для этого:
- Приложение Azure Active Directory регистрируется в клиенте M365.
- Манифест приложения отправляется в Центр разработчиков для Teams.
- API запускается локально с помощью Azure Functions Core Tools для поддержки приложения.
- ngrok устанавливается и используется для обеспечения туннеля между Teams и кодом бота.
Чтобы создать и запустить приложение локально, выполните следующие действия.
С Visual Studio Code нажмите клавишу F5, чтобы запустить приложение в режиме отлаживания.
При первом запуске приложения произойдет загрузка всех зависимостей и сборка приложения. По завершении сборки автоматически откроется окно браузера. Для завершения может потребоваться от 3 до 5 минут.
Веб-браузер начинает запускать приложение. Если вам будет предложено открыть Teams рабочий стол, выберите Отмена, чтобы оставаться в браузере. Вам также может быть предложено перейти на рабочий Teams в другое время; выберите Teams веб-приложение, когда это произойдет.
Вам может быть предложено выполнить вход. В этом случае войдите с учетной записью M365.
Если вам предложено установить приложение на Teams, выберите Добавить.
После загрузки приложения вы будете доставлены непосредственно в сеанс чата с ботом. Вы можете ввести
intro
, чтобы просмотреть ознакомительную карточку, иshow
, чтобы просмотреть свои данные в Microsoft Graph. (Для этого потребуется утверждение дополнительных разрешений).Отладка работает надлежащим образом — попробуйте сами! Откройте файл
bot/dialogs/rootDialog.js
и найдите методtriggerCommand(...)
. Задайте точку останова для варианта по умолчанию. Затем введите какой-нибудь текст.
При нажатии клавиши F5 Teams набор средств:
- Регистрирует приложение с помощью Azure Active Directory.
- Регистрирует приложение для «боковой загрузки» в Microsoft Teams.
- Запускает локализованную работу backend приложения с помощью основных средств Azure Function.
- Запускает туннель ngrok, чтобы Teams взаимодействовать с приложением.
- Начинается Microsoft Teams с командой Teams для загрузки приложения.
Чтобы запустить приложение в Teams, у вас должна быть учетная запись разработчика Microsoft 365, позволяющая устанавливать неопубликованные приложения. Дополнительные сведения о создании учетной записи см. в разделе Необходимые компоненты.
Важно!
В настоящее время приложения для облако сообщества для государственных организаций (GCC), GCC High и DOD.
Совет
Перед установкой неопубликованного приложения проверьте наличие проблем с помощью средства проверки приложений, которое входит в набор средств. Исправьте ошибки, чтобы успешно установить неопубликованное приложение.
Развертывание приложения в Azure
Развертывание состоит из двух этапов. Сначала создаются необходимые облачные ресурсы (также известные как подготовка), затем код, который составляет ваше приложение, копируется в созданные облачные ресурсы.
Откройте Visual Studio Code.
Выберите Teams набор средств на боковой панели, выбрав значок Teams.
Выберите Положение в облаке.
При необходимости выберите подписку для использования для ресурсов Azure.
Примечание
Для размещения приложения всегда используются некоторые ресурсы Azure.
Диалоговое окно предупреждает, что при запуске ресурсов в Azure могут возникнуть затраты. Press Provision.
Процесс подготовка создает ресурсы в облаке Azure. Это занимает некоторое время. Вы можете отслеживать ход, наблюдая за диалогами в правом нижнем углу. Через несколько минут вы увидите следующее уведомление:
Как только подготовка завершена, выберите Развертывание в облаке. Как и в случае с подготовками, этот процесс занимает некоторое время. Вы можете отслеживать процесс, наблюдая диалоги в правом нижнем углу. Через несколько минут вы увидите уведомление о завершении.
В окне терминала:
Запустите
teamsfx provision
.teamsfx provision
Возможно, вам будет предложено войти в свою подписку Azure. При необходимости вам будет предложено выбрать подписку Azure для использования для ресурсов Azure.
Примечание
Для размещения приложения всегда используются некоторые ресурсы Azure.
Запустите
teamsfx deploy
.teamsfx deploy
Примечание
В чем разница между Provision и Deploy?
Шаг Provision создает ресурсы в Azure и M365 для вашего приложения, но код (HTML, CSS, JavaScript и т.д.) не копируется в ресурсы. Шаг Развертывание копирует код приложения на ресурсы, созданные во время шага по предоставлению. Часто развертывается несколько раз без предоставления новых ресурсов. Так как этап предоставления может занять некоторое время, он отделен от шага развертывания.
После завершения этапов подготовка и развертывание:
- С Visual Studio Code откройте панель отключки (Ctrl+Shift+D / ⌘⇧-D или Просмотр > Run)
- Выберите Пульт запуска (Edge) из выпадаемой конфигурации запуска.
- Нажмите кнопку Play, чтобы запустить приложение — теперь он работает удаленно из Azure!
До развертывания приложение работает локально:
Серверная часть работает с использованием Azure Functions Core Tools.
Конечная точка HTTP приложения, в которую Microsoft Teams загружает приложение, работает локально.
Развертывание включает подготовку ресурсов для активной подписки Azure и развертывание (загрузку) внутреннего и внешнего кода приложения в Azure. Серверная часть использует различные службы Azure, включая службу приложений Azure и службу Azure Bot.
См. также
Как сделать чат-бота своими руками
По результатам исследования Google, 65% клиентов предпочитают не звонить, а писать компаниям, чтобы уточнить детали или сделать заказ. Кроме того, людям удобно пользоваться чат-ботами, потому что с ними можно не стесняться и узнать ответы на вопросы, которые живому консультанту задать было бы неловко. К такому выводу пришла команда Kia после 6 месяцев работы их онлайн-помощника.
Готовы перенимать опыт крупных компаний и создать свой первый чат-бот? Тогда вооружайтесь терпением, идеями, временем и внимательно читайте инструкции Дарины Даниленко, СЕО Why.Agency — агентства, которое помогает бизнесам строить коммуникацию через чат-боты.
В конце мы поделимся ссылкой на простой демобот, сделанный по этому гайду.
С чего начать создание чат-бота?
Дарина:
«Боты состоят из заранее продуманных сценариев. Кроме обычных сервисных ботов, которые могут сообщать, что ваша еда уже в пути, можно создавать целую вселенную, общаться с клиентами, лучше узнавать их запросы — и использовать это в дальнейшей коммуникации.
Чтобы сделать чат-бота в большинстве популярных мессенджеров, не обязательно быть программистом — понимания бизнес-процессов будет достаточно.
Я всегда советую начать с создания смысла: определите, чем ваш бот будет полезен клиентам и бизнесу. Какие задачи вы ставите перед этой сущностью? И только потом прописывайте логику бота, работайте над его сценарием и реализацией.
В статье идет речь о медийных ботах, но эта инструкция применима к любому помощнику в мессенджерах».
Вспомогательные сервисы
Сегодня мы попробуем создать чат-бот на pipe.bot, который позволяет оформлять карты в майндмэпах от coggle.it.
Обе площадки доступны в платной и бесплатной версии. Объема функций free trial достаточно для того, чтобы сделать двух простых ботов.
Разберем весь процесс поэтапно на примере создания помощника в Telegram.
Подготовка
Регистрируемся на упомянутых выше сервисах. Дальше:
#1. Заходим в бот @botfather.
#2. Следуя инструкциям, создаем бота.
#3. Копируем токен, который дает @botfather.
#4. Подключаем свежесозданный бот к Pipe: вводим токен на сайте https://pipe.bot.
#5. Cвязываем его с сайтом https://coggle.it.
#6. Если вы уже создали карту в Coggle, можно сразу ее привязать. Если нет, вернитесь к этому шагу позже.
Чтобы объединить карты из Coggle и Pipe, зайдите в Pipe и выберите нужную папку с картами. После этого нажмите Connect.
Главные знания и формулы
Наш чат-бот состоит из сценариев — определенной логики взаимодействия пользователя с помощником, продуманного на несколько шагов, и вариантов развития диалога. Под «капотом» у каждого сценария — карта вопросов-ответов, созданная в Coggle.
Вот базовые команды, с которыми вы будете работать:
Метки @start и @end — с них начинается и ими заканчивается каждый сценарий. @start — это сигнал для бота о том, что взаимодействие началось, @end используем для завершения конкретного сценария или всего диалога.
В рамках одного бота могут существовать несколько сценариев или активностей.
Обычное сообщение — это то, что бот пришлет человеку. Для его создания дополнительные знаки не нужны.
//Ответ — это кнопка в боте, которая будет выступать в качестве реплики вашего клиента. Перед ней должны стоять две черточки.
@link — метка. С ее помощью можно определять, на каком этапе взаимодействия пользователь «отпал», путешествовать по боту и переключать разные ветки сценария.
%colour — переменная. Это определенное качество, по которому мы можем оценить пользователя, добавить его в базу. Например, если у вас бот зоомагазина, то с помощью этой метки можно разбить пользователей на владельцев собак, кошек и хомячков.
%colour=red — значение переменной. То есть какое это явление. %Colour=red — читать как «его цвет — красный».
%%name — открытый ответ. При стандартном взаимодействии пользователь может только нажимать на кнопки, отвечая по заданному вами сценарию. Если же нужно получить какую-то личную информацию — например, имя или адрес доставки, — нужно создать для пользователя возможность вводить текст. С этой командой значение переменной введет сам пользователь.
@mapНазвание карты — это команда для вызова другой карты. Важно! Чтобы все работало, название карты нужно указывать точно так, как вы ее назвали — проще всего скопировать и вставить этот текст.
Не всегда для полноценного бота достаточно одной карты — если у вас подробный сценарий, то чтобы не заблудиться в нем, удобнее будет сделать несколько карт и переводить пользователя по ним внутри бота. Название карты можно копировать с центрального сообщения в Coggle.
Создаем первую карту
Зайдите на Coggle, создайте свою первую папку и назовите ее. В названиях лучше использовать смайлики — когда папок и карт станет много, это поможет различать их между собой и удобно переключаться между ними.
Теперь создайте свою первую карту.
Вы видите первый прямоугольный блок — здесь внутри нужно ввести название карты. Оно может быть написано на любом языке — главное, чтобы вы сами понимали, о чем речь. Это техническая информация, которую пользователи видеть не будут.
Перед названием также советуем использовать эмодзи. Они помогают не потеряться в дальнейшем.
Лайфхак: есть типы карт, для которых лучше использовать универсальные эмодзи:
✅ Root
👋 Onboarding
🛠 Menu
Этап 1: Начало сценария
Начните свою карту с метки @start — это позволит вам возвращать пользователей в начало карты и корректно переводить из одной карты в другую.
Теперь вы можете ввести первое сообщение. Добавьте новую ветку от метки @start.
Введите сообщение. У Coggle есть ограничение по символам — не более 120 знаков в одном сообщении. При необходимости это правило можно обойти. Если вам все же нужно больше текста — используйте команду %text = сообщение.
Простейший сценарий онбординга будет выглядеть так:
В этом сценарии бот представляется человеку, спрашивает его имя и узнает о желании обучаться. Всех, кто прошел этот этап, бот отмечает отдельной функцией — %onboarding=true.
Метки и переходы
Между ветвями сценария могут быть метки. Они добавляются с помощью команды @link, называть их можно как угодно, но одним словом. Желательно, чтобы название соответствовало контексту метки — зачем вы ставите ее именно здесь и что хотите отследить на этом этапе.
Чтобы перебросить человека в вашу метку:
#1. Выберите сообщение, из которого она будет перепрыгивать.
#2. Нажмите на него правой кнопкой мыши.
#3. Удерживая мышку, нажмите Shift. Вместо значка с горизонтальным ромбом появится пунктирная линия.
#4. Выберите пунктирную линию.
#5. Перетащите до метки, тяните прямо на название.
Открытые вопросы
В боте вы можете не только использовать кнопки, но и задавать открытые вопросы. Например, узнать, как зовут человека, какое у него мнение по определенному вопросу, или получить от него личную информацию — возраст, рост, должность, семейное положение — то, что необходимо вашему бизнесу.
Чтобы человек мог ввести ответ — используйте команду %% …. Например, %%name, %%position, %%strangeAnimal.
Переменная такого человека будет записываться следующим образом: %name=Роман.
Расставляйте переменные между ветвями сценария, чтобы понять, как далеко человек прошел по сюжету. Например, %onboarding=true — это значит, что пользователь закончил обучающую часть или знакомство с ботом.
С помощью таких меток вы сможете отследить, какие темы человек просмотрел, а где — застрял.
Весь бизнес-контент в удобном формате. Интервью, кейсы, лайфхаки корп. мира — в нашем телеграм-канале. Присоединяйтесь!
Лайфхак: как правильно организовать структуру бота
Если вы попытаетесь изложить обширную тему в одном сценарии, то карта станет слишком большой, а в метках и переходах можно будет потеряться.
Чтобы этого не происходило, нужно использовать прием «Карта в картах» и дробить каждый отдельный этап общения на одну карту. После того как вы создали все карты, соединяем их в одну, основную.
Чтобы перебросить человека из одной карты на другую — введите команду @mapНазвание карты.
Проверьте, чтобы в команде не было лишних пробелов или дополнительных знаков, иначе она не будет читаться.
Легче всего потренироваться с «картами в картах» в меню. Вот как выглядит типичное меню любого бота.
С помощью карт в картах вы можете создать общую логику бота.
Вот так выглядит наиболее простой вариант. Здесь написано: если человек прошел онбординг — перебросьте его в меню, если не прошел — переведите в онбординг.
Как это работает в реальности?
Чтобы не быть голословным, автор прошел с вами от начала и до конца весь процесс создания чат-бота. Потестировать простейший бот в три шага, построенный на одной карте, и убедиться, что он работает, можно здесь: t.me/DemoLabaBot.
Подписывайтесь на нашу рассылку
Спасибо за подписку!
Последние материалы
О чем не знают маркетологи: 10 фактов из книги Байрона ШарпаКак растут бренды.
Эстонское такси за $4,75 млрд. Как работает заказ поездок BoltСергей Павлик, руководитель направления поездок Bolt о новых рынках и возможностях.
Как продвигать свой продукт без Forbes — Павел ПеденкоGrowth Manager в Preply рассказывает, как и где сегодня заявлять о своем продукте.
Как создать чат-бот для Telegram-канала — инструкция для администраторов
Как регулярно вести Telegram-канал и не тратить на публикации половину рабочего дня? Я подготовила советы, которые пригодятся и SMM-специалистам, и авторам личных каналов. Все начинается с ControllerBot. Это один из самых полезных инструментов для администраторов каналов в Telegram. Установите бот, потому что с его помощью удобно:
- смотреть базовую статистику;
- планировать отложенные посты;
- форматировать текст;
- добавлять визуал;
- прикреплять к постам реакции и встроенные URL-кнопки.
Как настроить чат-бот
Перейдите в чат с ботом ControllerBot, нажмите /start. Затем задайте команду /addchannel и выполните простую пошаговую инструкцию по подключению бота.
Перейдите в диалог с ботом BotFather.
Нажмите /start и выберите команду /newbot.
Придумайте своему боту имя (оно будет отображаться в диалоговом списке) и юзернейм (уникальное имя, которое заканчивается на «bot» и пишется через @)
Вы получите токен. Теперь скопируйте его, перешлите в чат с ControllerBot и выполните одно из условий по добавлению канала (например, можно просто скинуть боту ник вашего канала).
Готово: вы создали бота. Добавьте его в администраторы канала. И обязательно укажите свой город, чтобы бот настроил часовой пояс и смог управлять отложенными постами.
{«0»:{«lid»:»1573230077755″,»ls»:»10″,»loff»:»»,»li_type»:»em»,»li_name»:»email»,»li_ph»:»Email»,»li_req»:»y»,»li_nm»:»email»},»1″:{«lid»:»1596820612019″,»ls»:»20″,»loff»:»»,»li_type»:»hd»,»li_name»:»country_code»,»li_nm»:»country_code»}}
Истории бизнеса и полезные фишки
Как использовать чат-бот в управлении каналом
1. Создать пост
Нажмите на команду /создать пост.
Затем выберите канал (в моем случае это Netpeak).
Поле отправки сообщения, бот предложит вам несколько функций.
Воспользуйтесь привычными горячими клавишами для форматирования текста прямо в диалоговом окне:
- жирный шрифт — «Ctrl+B»;
- курсив — «Ctrl+I»;
- залинковать ссылку — «Ctrl+K».
2. Добавить изображение
Нажмите на команду /прикрепить медиафайл и отправьте боту фото либо гифку (не обязательно сохранять изображение, можно его скопировать и вставить).
Если вдруг вам не понравилось, как выглядит пост с конкретным изображением, его всегда можно изменить. Нажмите на команду /открепить медиафайл и проделайте все заново.
3. Добавить реакции к посту
Кликните по команде /добавить реакции и выберите эмоджи (не более шести на один пост, разделяя каждый через /). Посмотрите, как визуально улучшилось оформление поста.
После публикации вы увидите рядом с каждым постом эмоджи для голосования и количество кликов по ним от пользователей.
4. Добавить URL-кнопки
Выберите команду /добавить URL-кнопки и отправьте боту текстовое сообщение со ссылками, разделенные дефисом «-». Вот так это будет выглядеть.
После нажатия на кнопку подписчик попадет на указанный сайт.
5. Опубликовать пост
После подготовки поста нажмите «Далее».
Вы увидите меню с несколькими вариантами публикации:
- «Опубликовать» — при нажатии на команду пост публикуется в ваш канал сразу же после повторного подтверждения, это страхует от случайных публикаций недоработанных черновиков;
- «Задать таймер для удаления» — укажите количество часов, через которое пост автоматически удалится;
- «Отложить» — тот самый любимый отложенный постинг в любой день и время.
- «Редактируем опубликованный пост» — если после публикации вы обнаружили опечатку или некорректную ссылку, вызовите бота и в меню нажмите «Редактировать». После этого перешлите боту сообщение, которое нужно отредактировать. Отправьте исправленный вариант поста, сохраните изменения и пост автоматически обновится.
6. Посмотреть статистику
Выберите команду «Статистика» и нажмите на название канала.
Бот покажет количество подписавшихся/отписавшихся пользователей за месяц и за неделю.
Готово! Теперь вы умеете самостоятельно создавать собственного бота в Telegram. Если возникнут вопросы, с радостью отвечу в комментариях.
{«0»:{«lid»:»1531306243545″,»ls»:»10″,»loff»:»»,»li_type»:»nm»,»li_name»:»name»,»li_ph»:»Имя»,»li_req»:»y»,»li_nm»:»name»},»1″:{«lid»:»1573230091466″,»ls»:»20″,»loff»:»»,»li_type»:»ph»,»li_name»:»phone»,»li_req»:»y»,»li_masktype»:»a»,»li_nm»:»phone»},»2″:{«lid»:»1573567927671″,»ls»:»30″,»loff»:»y»,»li_type»:»in»,»li_name»:»surname»,»li_ph»:»Фамилия»,»li_req»:»y»,»li_nm»:»surname»},»3″:{«lid»:»1531306540094″,»ls»:»40″,»loff»:»»,»li_type»:»in»,»li_name»:»domains»,»li_ph»:»Адрес сайта»,»li_rule»:»url»,»li_req»:»y»,»li_nm»:»domains»},»4″:{«lid»:»1573230077755″,»ls»:»50″,»loff»:»»,»li_type»:»em»,»li_name»:»email»,»li_ph»:»Email»,»li_req»:»y»,»li_nm»:»email»},»5″:{«lid»:»1575903646714″,»ls»:»60″,»loff»:»»,»li_type»:»hd»,»li_name»:»comment»,»li_value»:»Автоматический коммент: заявка из блога, без пользовательского комментария»,»li_nm»:»comment»},»6″:{«lid»:»1575903664523″,»ls»:»70″,»loff»:»»,»li_type»:»hd»,»li_name»:»lead_channel_id»,»li_value»:»24″,»li_nm»:»lead_channel_id»},»7″:{«lid»:»1584374224865″,»ls»:»80″,»loff»:»»,»li_type»:»hd»,»li_name»:»ip»,»li_nm»:»ip»},»8″:{«lid»:»1609939499483″,»ls»:»90″,»loff»:»»,»li_type»:»hd»,»li_name»:»post_id»,»li_nm»:»post_id»}}
Найти клиентов
в Telegram
Как создать бота и автоматизировать свою повседневную работу
Большинство заданий связаны с повторяющимися задачами, которые можно автоматизировать, что освобождает часть вашего драгоценного времени. Это делает автоматизацию ключевым навыком, который нужно приобрести.
Небольшая группа квалифицированных инженеров по автоматизации и экспертов в предметной области может автоматизировать многие из самых утомительных задач целых команд.
В этой статье мы исследуем основы автоматизации рабочих процессов с использованием Python — мощного и простого в изучении языка программирования.Мы будем использовать Python для написания простого и полезного небольшого сценария автоматизации, который очистит заданную папку и поместит каждый файл в соответствующую папку.
Наша цель не в том, чтобы с самого начала написать идеальный код или создать идеальную архитектуру.
Ничего «нелегального» строить не будем. Вместо этого мы рассмотрим, как создать сценарий, который автоматически очищает данную папку и все ее файлы.
- Области автоматизации и с чего начать
- Простая автоматизация
- Автоматизация общедоступного API
- Обратный инжиниринг API
- Этические аспекты автоматизации
- Создание сценария очистки каталога
- Полное руководство по созданию ботов и автоматизации повседневной работы
Области автоматизации и с чего начать
Начнем с определения того, какие виды автоматизации бывают.
Искусство автоматизации применимо к большинству секторов. Во-первых, он помогает с такими задачами, как извлечение адресов электронной почты из группы документов, чтобы вы могли быстро рассылать сообщения электронной почты. Или более сложные подходы, такие как оптимизация рабочих процессов и процессов внутри крупных корпораций.
Конечно, переход от небольших личных сценариев к большой инфраструктуре автоматизации, заменяющей реальных людей, предполагает процесс обучения и совершенствования. Итак, давайте посмотрим, с чего вы можете начать свое путешествие.
Простая автоматизация
Простая автоматизация обеспечивает быструю и прямую точку входа.Это может охватывать небольшие независимые процессы, такие как очистка проекта и реструктуризация файлов внутри каталогов, или части рабочего процесса, такие как автоматическое изменение размера уже сохраненных файлов.
Автоматизация общедоступного API
Автоматизация общедоступного API — это наиболее распространенная форма автоматизации, поскольку в настоящее время мы можем получить доступ к большинству функций с помощью HTTP-запросов к API. Например, если вы хотите автоматизировать полив самодельного умного сада в домашних условиях.
Для этого вы хотите проверить погоду текущего дня, чтобы узнать, нужен ли вам полив или идет дождь.
Обратный инжиниринг API
Автоматизация на основе обратного инжиниринга API более распространена в реальных ботах и в разделе «Бот-самозванец» диаграммы в разделе «Этические соображения» ниже.
Путем реверс-инжиниринга API мы понимаем пользовательский поток приложений. Одним из примеров может быть вход в онлайн-браузерную игру.
Понимая процесс входа в систему и аутентификации, мы можем продублировать это поведение с помощью нашего собственного скрипта. Затем мы можем создать собственный интерфейс для работы с приложением, даже если они сами его не предоставляют.
Какой бы подход вы ни выбрали, всегда учитывайте, законен он или нет.
Вы же не хотите попасть в беду? ?
Этические соображения
Однажды со мной связался какой-то парень с GitHub и сказал мне следующее:
«Лайки и вовлеченность — это цифровая валюта, и вы их обесцениваете».
Это запомнилось мне и заставило меня усомниться в инструменте, который я создал именно для этой цели.
Тот факт, что эти взаимодействия и взаимодействие могут быть автоматизированы и все больше и больше «подделывать» приводит к искаженной и неработающей системе социальных сетей.
Люди, которые создают ценный и качественный контент, невидимы для других пользователей и рекламных компаний, если они не используют ботов и другие системы взаимодействия.
Мой друг придумал следующую ассоциацию с «Девятью кругами ада» Данте, где с каждым шагом, приближающимся к тому, чтобы стать социальным влиятельным лицом, вы все меньше и меньше понимаете, насколько на самом деле сломана вся эта система.
Я хочу поделиться этим с вами здесь, поскольку я считаю, что это чрезвычайно точное представление того, что я видел во время активной работы с инфлюенсерами с InstaPy.
Уровень 1: Лимбо — Если вы вообще не работаете с ботом
Уровень 2: Флирт — Когда вы вручную ставите лайки и подписываетесь на как можно больше людей, чтобы заставить их подписаться на вас в ответ / лайкнуть ваши сообщения
Уровень 3: Заговор — когда вы присоединяетесь к группе Telegram, чтобы поставить лайк и прокомментировать 10 фотографий, чтобы следующие 10 человек лайкнули и прокомментировали вашу фотографию
Уровень 4: Неверность — Когда вы используете недорогой виртуальный помощник, чтобы поставить лайк и подписывайтесь от своего имени
Уровень 5: Похоть — Когда вы используете бота, чтобы ставить лайки и не получаете взамен никаких лайков (но вы не платите за это — например, расширение Chrome)
Уровень 6: Распущенность — Когда вы используете бота, чтобы поставить 50+ лайков, чтобы получить 50+ лайков, но вы не платите за это — например, расширение Chrome
Уровень 7: Жадность или крайняя жадность — Когда вы используете бота, чтобы лайкать / подписываться / комментировать от 200 до 700 фотографий, игнорируя шанс быть забаненным 9 0009 Уровень 8: Проституция — Когда вы платите неизвестной сторонней службе, чтобы автоматически получать лайки / подписки для вас, но они используют вашу учетную запись, чтобы лайкать / подписываться в ответ
Уровень 9: Мошенничество / ересь — Когда вы покупаете подписчиков и лайков, и попытаться продать себя брендам как влиятельного лица
Уровень ботов в социальных сетях настолько распространен, что , если вы не будете использовать бот, вы застрянете на уровне 1, Limbo , без роста числа подписчиков и низкая вовлеченность по сравнению с вашими сверстниками.
В экономической теории это известно как дилемма заключенного и игра с нулевой суммой . Если я не бот, а вы бот, вы выиграете. Если вы не бот, а я бот, я выиграю. Если никто не работает, все выигрывают. Но поскольку у всех нет стимула не заниматься ботами, все боты, поэтому никто не выигрывает.
Помните об этом и никогда не забывайте, какое значение имеет весь этот инструмент для социальных сетей.Источник: SignalSciences.com
Мы не хотим иметь дело с этическими последствиями и по-прежнему работаем над проектом автоматизации здесь.Вот почему мы создадим простой скрипт очистки каталогов, который поможет вам организовать ваши беспорядочные папки.
Создание сценария очистки каталога
Теперь мы хотим взглянуть на довольно простой сценарий. Он автоматически очищает данный каталог, перемещая эти файлы в соответствующие папки в зависимости от расширения файла.
Итак, все, что мы хотим сделать, это следующее:
Настройка анализатора аргументов
Поскольку мы работаем с такими функциями операционной системы, как перемещение файлов, нам нужно импортировать библиотеку os
.В дополнение к этому мы хотим дать пользователю некоторый контроль над очищаемой папкой. Для этого мы будем использовать библиотеку argparse
.
импорт ОС
import argparse
После импорта двух библиотек давайте сначала настроим парсер аргументов. Обязательно дайте описание и текст справки к каждому добавленному аргументу, чтобы оказать ценную помощь пользователю при вводе --help
.
Наш аргумент будет называться --path
. Двойные дефисы перед именем говорят библиотеке, что это необязательный аргумент.По умолчанию мы хотим использовать текущий каталог, поэтому установите значение по умолчанию "."
.
parser = argparse.ArgumentParser (
description = "Очистите каталог и поместите файлы в соответствующие папки."
)
parser.add_argument (
"--дорожка",
type = str,
по умолчанию = ".",
help = "Путь к очищаемому каталогу",
)
# разбираем аргументы, данные пользователем, и извлекаем путь
args = parser.parse_args ()
путь = args.path
print (f "Очистка каталога {path}")
На этом уже заканчивается раздел разбора аргументов — он довольно простой и читаемый, не так ли?
Запустим наш скрипт и проверим на наличие ошибок.
python directory_clean.py --path ./test
=> Очистка каталога ./test
После выполнения мы видим, что имя каталога выводится на консоль, отлично.
Давайте теперь воспользуемся библиотекой os
, чтобы получить файлы по заданному пути.
Получение списка файлов из папки
Используя метод os.listdir (path)
и указав ему действительный путь, мы получаем список всех файлов и папок внутри этого каталога.
После перечисления всех элементов в папке мы хотим различать файлы и папки, поскольку мы не хотим очищать папки, а только файлы.
В этом случае мы используем понимание списка Python для перебора всех элементов и помещения их в новые списки, если они соответствуют заданному требованию быть файлом или папкой.
# получить все файлы из заданного каталога
dir_content = os.listdir (путь)
# создать относительный путь от пути к файлу и имени документа
path_dir_content = [os.path.join (path, doc) для документа в dir_content]
# фильтруем содержимое нашего каталога в список документов и папок
docs = [документ для документа в path_dir_content, если os.path.isfile (doc)]
папки = [папка для папки в path_dir_content, если os.path.isdir (папка)]
# счетчик для отслеживания количества перемещенных файлов
# и список уже созданных папок, чтобы избежать многократного создания
перемещено = 0
created_folders = []
print (f "Очистка {len (docs)} элементов {len (dir_content)}.")
Как всегда, давайте позаботимся о том, чтобы наши пользователи получили обратную связь.Поэтому добавьте оператор печати, который дает пользователю представление о том, сколько файлов будет перемещено.
python directory_clean.py --path ./test
=> Очистка каталога ./test
=> Очистка 60 из 60 элементов.
После повторного выполнения скрипта python мы теперь видим, что созданная мной папка / test
содержит 60 файлов, которые будут перемещены.
Создание папки для каждого расширения файла
Следующим и более важным шагом теперь является создание папки для каждого расширения файла.Мы хотим сделать это, просмотрев все наши отфильтрованные файлы, и если у них есть расширение, для которого еще нет папки, создайте его.
Библиотека os
помогает нам с более приятными функциями, такими как разделение типа файла и пути для данного документа, извлечение самого пути и имени документа.
# просмотреть все файлы и переместить их в соответствующие папки
для документа в документах:
# отделить имя от расширения файла
full_doc_path, filetype = os.path.splitext (документ)
doc_path = os.path.dirname (полный_doc_path)
doc_name = os.path.basename (полный_doc_path)
печать (тип файла)
печать (full_doc_path)
печать (doc_path)
печать (doc_name)
break
Оператор break в конце приведенного выше кода гарантирует, что наш терминал не получит спама, если наш каталог содержит десятки файлов.
После того, как мы это настроили, давайте выполним наш сценарий, чтобы увидеть результат, подобный этому:
python directory_clean.py --path ./test
=> ...
=> .pdf
=> ./test/test17
=> ./test
=> test17
Теперь мы видим, что приведенная выше реализация разделяет тип файла, а затем извлекает части из полного пути.
Поскольку теперь у нас есть тип файла, мы можем проверить, существует ли уже папка с именем этого типа.
Прежде чем мы это сделаем, мы хотим пропустить несколько файлов. Если мы используем текущий каталог "."
в качестве пути, нам нужно избегать перемещения самого скрипта python.Об этом позаботится простое условие if.
Кроме того, мы не хотим перемещать скрытые файлы, поэтому давайте также включим все файлы, которые начинаются с точки. Файл .DS_Store
в macOS является примером скрытого файла.
# пропустить этот файл, когда он находится в каталоге
если doc_name == "directory_clean" или doc_name.startswith ('.'):
Продолжить
# получить имя подпапки и создать папку, если она не существует
subfolder_path = os.path.join (путь, тип файла [1:].ниже())
если subfolder_path не в папках:
# создать папку
После того, как мы позаботились о скрипте Python и скрытых файлах, мы можем перейти к созданию папок в системе.
В дополнение к нашей проверке, если папка уже была там, когда мы читаем содержимое каталога, вначале нам нужен способ отслеживать папки, которые мы уже создали. По этой причине мы объявили список created_folders = []
. Он будет служить памятью для отслеживания названий папок.
Для создания новой папки библиотека os
предоставляет метод под названием os.mkdir (folder_path)
, который берет путь и создает там папку с заданным именем.
Этот метод может вызвать исключение, сообщающее нам, что папка уже существует. Так что давайте также обязательно поймем эту ошибку.
если subfolder_path не в папках и subfolder_path не в created_folders:
пытаться:
os.mkdir (путь к подпапке)
created_folders.добавить (путь к подпапке)
print (f "Папка {subfolder_path} создана.")
кроме FileExistsError как err:
print (f "Папка уже существует по адресу {subfolder_path} ... {err}")
После настройки создания папки давайте повторно выполним наш скрипт.
python directory_clean.py --path ./test
=> ...
=> Создана папка ./test/pdf.
При первом запуске мы видим список журналов, сообщающих нам, что папки с заданными типами расширений файлов были созданы.
Перемещение каждого файла в правую подпапку
Последний шаг теперь — фактически переместить файлы в их новые родительские папки.
При работе с операциями операционной системы важно понимать, что иногда операции нельзя отменить. Это, например, случай с удалением. Поэтому имеет смысл сначала выйти из системы только так, как наш скрипт достиг бы, если бы мы его выполнили.
Вот почему здесь был прокомментирован метод os.rename (...)
.
# получить новый путь к папке и переместить файл
new_doc_path = os.path.join (subfolder_path, doc_name) + filetype
# os.rename (doc, new_doc_path)
перемещен + = 1
print (f "Файл {doc} перемещен в {new_doc_path}")
После выполнения нашего скрипта и проверки правильности ведения журнала мы теперь можем удалить хэш комментария перед нашим методом os.rename ()
и дать ему окончательный идти.
# получить новый путь к папке и переместить файл
new_doc_path = os.path.join (путь к подпапке, имя_документа) + тип файла
os.rename (doc, new_doc_path)
перемещен + = 1
print (f "Файл {doc} перемещен в {new_doc_path}")
print (f "Переименовано {перемещено} файлов {len (docs)}.")
python directory_clean.py --path ./test
=> ...
=> Файл ./test/test17.pdf перемещен в ./test/pdf/test17.pdf
=> ...
=> Переименовано 60 из 60 файлов.
Это последнее выполнение теперь переместит все файлы в соответствующие папки, и наш каталог будет хорошо очищен без необходимости ручных действий.
На следующем этапе мы могли бы теперь использовать созданный выше сценарий и, например, запланировать его выполнение каждый понедельник, чтобы очистить нашу папку «Загрузки» и получить дополнительную структуру.
Это именно то, что мы создаем в продолжение нашего курса Udemy по созданию ботов и автоматизации рабочих процессов.
Мы с Феликсом создали онлайн-видеокурс , чтобы научить вас создавать своих собственных ботов на основе того, что мы узнали о создании InstaPy и его Travian-Bot .Фактически, его даже заставили снести, так как он был слишком эффективен.
Присоединяйтесь и начинайте учиться.
Промо-видео для курса UdemyЕсли у вас есть какие-либо вопросы или отзывы, не стесняйтесь обращаться к нам в Twitter или непосредственно в разделе обсуждения курса?
Как создать бота
Пора предприятиям рассматривать чат-ботов как эффективный бизнес-инструмент, а не как второстепенную мысль или «может быть».Если задуматься, современные технологии оказывают серьезное влияние на бизнес-операции сегодня. Независимо от размера вашего бизнеса, бесспорно, чат-боты могут обеспечить как материальные, так и нематериальные преимущества, такие как помощь и удобство, как поставщику, так и потребителю.
Это руководство о том, как создать простого чат-бота, научит вас советам и приемам, которые позволят создать бота, даже если у вас нет большого количества денег на вашем счету или степени ИТ, чтобы поддержать его. С помощью новейших технологий любой может создать бота, который может помочь бэкэнду бизнеса, при этом обеспечивая результаты, требуемые клиентами.
В этом руководстве мы поговорим о том, что такое чат-бот, о различных типах чат-ботов, о том, когда их следует использовать, о том, как создать чат-бота с нуля, и о 6 надежных советах при создании собственного.
Сводка
Что такое чат-бот? И, прежде всего, почему они важны?
Чат-боты играют огромную роль, когда речь идет о революционных изменениях в способах общения компаний со своими клиентами. В сегодняшней загруженной деловой среде крайне важно взаимодействовать с клиентами как можно быстрее и четче.
До того, как появились чат-боты, клиентам оставалось только связаться с компанией, позвонив в службу поддержки клиентов или отправив электронное письмо. Сейчас есть несколько компаний, которые предлагают чат-робота, который обеспечивает удобное обслуживание клиентов 24/7. Чат-боты — это диалоговые компьютерные программы или приложения, которые предназначены для имитации письменной речи человека. Пользователи могут общаться с помощью этого инструмента, используя платформы обмена сообщениями или веб-сайт компании, так же, как они общаются с другим человеком.
Эти продвинутые боты необходимы для любого бизнеса, тем более что большинство магазинов электронной коммерции конкурируют с такими корпоративными гигантами, как Google, Facebook, Microsoft и Amazon, которые устанавливают довольно высокие стандарты обслуживания клиентов; их безупречно быстрая скорость ответа на запрос — одна из причин, которые помогли им доминировать на рынке в течение многих лет.
Эти огромные неумолимые силы непреднамеренно изменили ожидания как пользователя, так и клиента. Это особое отношение, хотите верьте, хотите нет, подсознательно заложено в каждом покупателе.Клиенты ожидают, что они получат такие же безупречные, незамедлительные и актуальные ответы от службы поддержки клиентов, когда они задают вопрос и ждут ответа. При таком весе, который ложится на плечи человеческих ресурсов, практически невозможно обеспечить постоянное обслуживание клиентов, соответствующее этим стандартам. К счастью, здесь могут помочь чат-боты. Просто убедитесь, что вы используете правильного чат-бота для работы.
Какие бывают типы чат-ботов?
Понимание факторов, влияющих на эффективность чат-ботов, может помочь компаниям принять осознанное решение о том, какой чат-бот лучше всего подходит для их платформ.Существует два разных чат-бота: чат-боты на основе правил и чат-боты с ИИ.
1. Чат-боты на основе правил
Самым простым объяснением для чат-ботов на основе правил является то, что эти боты могут давать только предопределенный ответ на очень конкретные вопросы. Важно помнить, что он не может отвечать на вопросы, выходящие за рамки установленных правил. Чат-боты на основе правил эффективны и действенны только в тех сценариях, которым вы их обучили.
Ботов, основанных на правилах, обучаются значительно быстрее, чем ботов с ИИ, но у этого есть ограничения — одно из них заключается в том, что они не могут обучаться самостоятельно.Ответы, которые они дают клиентам, во многом зависят от ответов людей, которые их обучают. Хотя это приносит пользу компании, когда дело доходит до последовательности. Учитывая, что боты, основанные на правилах, включены в программу, по которой они проходят обучение, они будут давать последовательный и единообразный ответ клиентам. Если беседа действительно входит в неизвестное поле для бота, он передаст беседу представителю-человеку, чтобы справиться с ситуацией.
2. Чат-боты AI
Напротив, боты с ИИ — это самообучающиеся боты.Эти продвинутые боты работают через обработку естественного языка (NLP). НЛП — это точно такой же психологический подход, который создавал системы распознавания голоса, используемые известными виртуальными помощниками, такими как Siri, Google Now и Microsoft Cortana.
Используя NLP в качестве основы для AI-ботов, оно предназначено для понимания контекста и цели вопроса перед составлением плана ответа. Чем больше обучаются эти боты, тем большему они учатся. Хотя на их обучение уходит много времени; как только они будут должным образом обучены и оснащены, они смогут не отставать от пользователя, независимо от того, насколько сложна ситуация.
Чат-боты с искусственным интеллектом полезны для глубокого обучения. В отличие от чат-ботов, основанных на правилах, чат-ботов с ИИ можно запрограммировать так, чтобы они понимали эмоции или текущее настроение клиента, даже без помощи человеческих сил. Он предоставляет индивидуальные услуги каждому клиенту, и если он достаточно долго обучен, он также может понимать и общаться на разных языках.
В каких ситуациях следует создавать чат-бота?
Требования заказчика довольно просты.Им нужен , самые быстрые и эффективные решения своих проблем — даже если они задают вопрос посреди ночи. Похоже, это не так уж сложно сделать, правда? Дополнительная проблема здесь заключается в том, что помимо быстрой доставки ваших ответов клиентам необходимо чувствовать, что их ценят. Лидеры отрасли сейчас сталкиваются с камнем преткновения: им нужно найти масштабируемый способ помочь клиентам решить их проблемы, заставляя их чувствовать себя важными.
Обеспечить высокий уровень обслуживания клиентов — непростая задача. Клиенты хотят только лучшего и безупречного опыта общения с представителями бизнеса. Автоматизированные сервисы, такие как чат-боты, идеально подходят для этой обуви. Они не идеальны, это само собой разумеющееся. Но чат-боты запрограммированы так, чтобы понимать намерения клиента и очень быстро работают над этим элементом, чтобы помочь им . Успешное внедрение чат-бота может дать бизнесу следующие преимущества:
- Экономия рабочего времени
- Повышение лояльности к бренду
- Более высокий коэффициент конверсии
- Определите голос и индивидуальность бренда
- Выделитесь из множества конкурентов
- Повышение вовлеченности и взаимодействия
- Расширенная база данных для лучшего понимания пользователей и потенциальных клиентов
Инвестирование в эту новую норму обслуживания клиентов поможет компании оставаться впереди всех и без особых усилий завоевать отличную репутацию.Знание о том, что клиенты убегают, когда они недовольны услугами и более чем готовы выразить свое недовольство в Интернете, лишь подчеркивает необходимость современных изменений.
Как создать бота с нуля?
Создание чат-бота с нуля сначала звучит пугающе, но это не так. Прежде чем мы погрузимся глубже, вам необходимо понять несколько вещей. Что такое фреймворк для разработки ботов и чем он отличается от платформы для ботов?
Bot Development Frameworks предоставляет инструменты и встроенные функции, которые устраняют всю ручную работу, необходимую при создании чат-бота.Это помогает разработчикам и кодировщикам быстрее писать коды для лучшего применения. С другой стороны, бот-платформы обычно используются новичками, которые не являются техническими пользователями. Это платформы, на которых назначенные профессионалы будут помогать маркетологам компании при создании и обслуживании своих чат-ботов.
Фреймворки на основе кода для разработки ботов
Для работы чат-бота необходимы предварительно разработанные веб-приложения. Коннекторы платформы обмена сообщениями получают разговоры от различных сред чата, NLP для обработки сообщений и сервера для обеспечения непроницаемой связи с API.Существует несколько фреймворков на основе кода, которые могут помочь в разработке ботов: API. AI, Microsoft Bot Framework, IBM’s Watson Conversation и Ada.
1. API. AI
Программное обеспечение API.AI обеспечивает плавность всего процесса создания бота, помогая разработчикам предоставлять конкретную информацию, адаптированную к потребностям бота. Он работает с намерением, распознаванием речи и управлением контекстом бота.
API.AI — это фреймворк кода с простым веб-интерфейсом. Он разрешает пользователям создавать увлекательные беседы с использованием различных библиотек и SDK.Сюда входят Android, Webkit HTML5, IOS, Node.js и Python API.
2. Microsoft Bot Framework
Microsoft Bot Framework позволяет разрабатывать чат-ботов на нескольких платформах, таких как SMS и сторонние платформы. Напротив, эта структура особенно эффективна в сочетании с другими инструментами и службами Microsoft. Примерами инструментов и служб Microsoft являются служба Azure Bot, BotBuilder и Cognitive Services.
Бот-платформа для создания вашего бота
1.IBM’s Watson Conversation
Что делает Watson Conversation особенным, так это то, что он использует машинное обучение для обучения и построения диалоговых взаимодействий между ботом и клиентом. Watson Conversation программирует бота, чтобы он отвечал клиенту в манере, напоминающей естественный человеческий разговор.
2. Ада
Ada помогает компаниям создавать простых и сложных чат-ботов без необходимости программирования. Любой бизнес может автоматизировать обслуживание клиентов с помощью наглядного конструктора, который упрощает создание структурированных рабочих процессов для любого отдела.
Как создать чат-бота на Python
Чтобы создать чат-бота на Python, все необходимые переменные, которые вы хотите использовать и встроить в своего чат-бота, должны быть готовы и импортированы.
Библиотеки и необходимые данные
1. chatgui.py — код, позволяющий пользователям легко взаимодействовать с ботом.
2. train_chatbot.py — код для чтения на естественном языке и превращающий его в обучающий набор.
3. classes.pkl — список различных типов и категорий ответов.
4. words.pkl — список, в котором хранятся различные слова, которые входят в наш словарь и которые могут быть использованы для распознавания образов ботов.
5. intents.json — файл данных, в котором есть предопределенные ответы и шаблоны.
chatbot_model.h5 — обученная модель, содержащая всю информацию о конкретной модели.
Пошаговая процедура
1.Импортировать все файлы и переменные
Прежде всего, импорт библиотеки в вашу систему является решающим шагом при создании чат-бота на Python. Импортируйте все необходимые пакеты и файлы для своего чат-бота и разделите переменные, которые вы будете использовать в этом проекте Python.
2. Данные постобработки
Работа с текстовыми данными требует предварительной обработки перед созданием модели машинного обучения. Есть несколько рабочих требований, которые необходимо выполнить для эффективной предварительной обработки данных.Самая простая постобработка текстовых данных называется «токенизация». Это процесс разбиения всего текста на более мелкие части или слова.
3. Создайте тестовые данные
Создание тестовых данных предоставит все необходимые шаблоны ввода и вывода. Цель создания и тестирования данных состоит в том, чтобы сузить все до самой простой формы. Это сэкономит много времени и предотвратит возникновение мелких ошибок, когда слова проходят процесс машинного обучения.
4. Построение модели
.Когда все данные для обучения готовы, вы можете начать процесс построения модели глубокого обучения из керасов, называемых «Последовательная». Последовательная модель, в частности, имеет 3 уровня. Первый слой имеет 128 нейронов, второй — 64, а последний имеет количество намерений как конечное количество нейронов.
5. Ожидайте ответа (графический интерфейс пользователя)
Прежде всего, вам необходимо ввести те же данные, что и при обучении бота.Это создаст несколько функций, которые будут выполнять предварительную обработку текста, а затем предсказывать класс.
На данный момент вашим приоритетом является наличие всех необходимых процедур для запуска графического интерфейса пользователя. Clean_up_sentence () — это первая функция, которую вам нужно использовать — она полирует вводимые предложения. Затем функция clean_up_sentence () используется в функции bow (). Функция bow () берет отшлифованные предложения и генерирует список слов, которые используются для предсказания их классов.После того, как вы предскажете класс, скорее всего, вы получите случайный ответ из списка намерений.
6. Запускаем чат-бота
Заключительный этап — тестирование бота. Для этого этапа необходимы два основных файла: chatapp.py и train_chatbot.py.
Во-первых, вы должны обучить модель, используя python train_chatbot.py в терминале. Если он работает без сбоев и ошибок не обнаружено, это означает, что вы успешно создали своего бота. Чтобы запустить файл, бот автоматически появится в окне графического интерфейса в течение нескольких секунд.
Как создать бота с нуля для нетехнических пользователей
Прочитав о фреймворках на основе кода, вы, возможно, открыли новую вкладку и набрали «Как создать чат-бота без программирования» в строке поиска Google. Мы получим это. Это может быть слишком много для нетехнических пользователей, но есть конструкторы платформ чат-ботов, которые могут помочь вам создать чат-бота без сложного кода.
Конструкторы чат-ботов без кода, такие как Ada
Ada дает своим пользователям простой и понятный план, которому нужно следовать при создании своего бота в первый раз.Преимущество использования Ada в том, что вы можете общаться с AI. Он автоматически учится на настроении и эмоциях клиентов, читает опечатки и понимает простой и сложный жаргон. Расширенные функции Ada даже поддерживают более 100 языков, а также персонализированные приветствия и ответы, которые предоставят премиум-услуги каждому клиенту — вашим клиентам даже не будет казаться, что они разговаривают с роботом.
Если вы хотите заказать демонстрацию, щелкните здесь.
Как создать чат-бота в Facebook
Неудивительно, что Facebook Messenger — одна из наиболее часто используемых коммуникационных платформ во всем мире.С 1,3 миллиардами активных пользователей в месяц, нет никаких сомнений в том, что чат-боты определенно являются полезным инструментом для их платформы.
При правильном использовании чат-бота каждое взаимодействие с клиентом будет автоматизировано. Все, что нужно сделать пользователям, — это нажать кнопку «Сообщение» на странице Facebook, после чего автоматически запустится инструмент обмена сообщениями или чат-бот. Этот быстрый и простой инструмент позволяет пользователю ввести вопрос и мгновенно начать общение с ботом.
В зависимости от сложности чат-бота и типа разговоров, которые он предназначен для общения, лучший способ установить и разработать его — это обратиться за внешней помощью.Чат-бот, оснащенный заранее запрограммированными ответами, обычно разрабатывается быстрее, чем чат-боты, использующие обработку естественного языка в качестве основного элемента своих намерений.
Для более подробного и пошагового объяснения того, как создать и установить чат-бота Facebook, у Facebook есть краткое руководство для разработчиков.
6 советов по созданию своего первого чат-бота
Создание простого чат-бота с нуля открывает множество полезных навыков, которые можно использовать в науке о данных и общем программировании.Теперь, когда вы почти готовы к работе, вот 6 полезных советов, которые следует учитывать, когда вы, наконец, создали своего первого чат-бота:
1. Убедитесь, что ваш чат-бот не звучит как робот.
То, что чат-боты — это роботы, не означает, что это должно быть похоже на одного человека. Чат-боты умнее и созданы для того, чтобы выполнять гораздо больше функций, чем обычный тон * I-am-a-robot * .
Обработка естественного языка запрограммирует вашего чат-бота на начало и завершение естественного разговора, который звучит так, как будто он просто разговаривает со старым другом.Убедившись, что ваш чат-бот не похож на робота, он позволяет клиентам легче задавать вопросы и понимать решение.
2. Сборка. Тренироваться. Развертывать. Мера.
Build: Совершенно очевидно, что создание чат-бота — это первый начальный шаг. После того, как вы создали своего чат-бота, следующий важный шаг в процессе разработки. Для чего нужен бот? С какими типами разговоров он предназначен? Какие типы ответов они должны давать? Вы можете задать эти общие вопросы всякий раз, когда тренируете бота для реального взаимодействия с людьми.
Train: Процесс обучения вашего чат-бота прост и, без сомнения, требует повторения. Процесс зависит от того, насколько продвинутым вы хотите, чтобы ваш чат-бот был. Он предназначен для ответов на простые и распространенные вопросы или для сложных и спонтанных вопросов? Ответ на эти вопросы станет основой того, сколько вам нужно для обучения своего бота. Просто убедитесь, что у вас действительно есть время, чтобы удовлетворить все потребности ботов, чтобы они были эффективными.
Развертывание: теперь, когда он обучен и готов к работе, вы, наконец, можете развернуть его в действии.Вы можете использовать разные платформы, такие как Facebook, веб-страницу вашей компании или другие средства массовой информации, на которых вы можете это продемонстрировать. После развертывания клиенты могут начать задавать вопросы о вашей компании, продуктах, которые вы продаете, и услугах, которые вы предоставляете. По сути, все, на что бот был обучен реагировать.
Измерение: этот последний шаг заключается в измерении и отслеживании бота после нескольких взаимодействий с людьми. Вы даже можете следить за своими клиентами и спрашивать их, как прошел их опыт работы с чат-ботом.Очень важно получить их отзывы, поскольку чат-бот технически разработан для их обслуживания.
Если вы получили отрицательный отзыв, это нормально. Не ругайте себя за это. Вы всегда можете определить каждую ошибку и начать ее улучшать, чтобы повысить успешность чат-бота в будущем.
3. Если вы создаете с нуля или используете тарифный план бесплатного чат-бота для трудоемкого процесса
Когда вы создаете чат-бота, вы должны учитывать количество времени, которое вам нужно потратить на обучение и анализ потока их разговоров.Планирование добавляемого вами контента также занимает много времени. С технической точки зрения вы обучаете робота думать и говорить как человек. Одна только эта идея уже кажется большой работой.
4. Дайте чат-боту настоящий голос
Клиенты абсолютно ненавидят, когда ответы «слишком роботизированы». Представьте, что вам приходится повторять один и тот же вопрос снова и снова, но ответы чат-бота слишком запрограммированы и бесполезны. Убедитесь, что когда вы запускаете своего чат-бота, у него реалистичный голос и характер, которые могут легко адаптироваться к окружающей среде, в которой он находится.
5. Разбирайтесь с наиболее частыми запросами клиентов
Глубокое понимание общих запросов ваших клиентов является ключом к достижению ваших бизнес-целей. Независимо от того, пытаетесь ли вы оптимизировать их обслуживание клиентов или создавая более интересный контент для своего чат-бота, знание своих клиентов лучше, чем кто-либо, по-прежнему является королем.
6. Работайте со своей командой CX — или даже поручите им руководить
Основная цель команды CX — совместно создавать новые захватывающие впечатления от клиентов.Они централизуют и анализируют отзывы клиентов и записывают ценные данные. Они — лучшая команда для работы с чат-ботами, потому что они определяют сложные метрики, которые позволяют им отслеживать и контролировать, влияют ли эти метрики положительно на бизнес-результаты. Имеет смысл, что они возглавляют контент и развитие вашего чат-бота.
Как создать бота Discord на Python — настоящий Python
Смотреть сейчас В этом руководстве есть связанный видеокурс, созданный командой Real Python.Посмотрите его вместе с письменным руководством, чтобы углубить свое понимание: Создание бота Discord на Python
В мире, где видеоигры так важны для многих людей, общение и сообщество вокруг игр имеют жизненно важное значение. Discord предлагает и то, и другое в одном хорошо продуманном пакете. В этом руководстве вы узнаете, как создать бота Discord на Python, чтобы максимально использовать возможности этой фантастической платформы.
К концу этой статьи вы узнаете:
- Что такое Discord и почему он так ценен
- Как создать бота Discord через Портал разработчиков
- Как создавать подключения к Discord
- Как обрабатывать события
- Как принимать команды и проверять предположения
- Как взаимодействовать с различными API Discord
Вы начнете с того, что узнаете, что такое Discord и почему он так ценен.
Что такое раздор?
Discord — это платформа голосового и текстового общения для геймеров.
Игроки, стримеры и разработчики используют Discord для обсуждения игр, ответов на вопросы, общения во время игры и многого другого. У него даже есть игровой магазин с критическими отзывами и услугой подписки. Это почти универсальный магазин для игровых сообществ.
Хотя есть много вещей, которые вы можете создать с помощью API Discord, в этом руководстве основное внимание будет уделено конкретному результату обучения: как создать бота Discord на Python.
Что такое бот?
Популярность Discord растет. Таким образом, автоматические процессы, такие как блокировка неподходящих пользователей и реагирование на запросы пользователей, жизненно важны для процветания и роста сообщества.
Автоматизированные программы, которые выглядят и действуют как пользователи и автоматически реагируют на события и команды в Discord, называются пользователями-ботами . Пользователи ботов Discord (или ботов ) имеют практически неограниченное количество приложений.
Например, предположим, что вы управляете новой гильдией Discord, и пользователь присоединяется к ней впервые.Взволнованный, вы можете лично обратиться к этому пользователю и поприветствовать его в своем сообществе. Вы также можете рассказать им о своих каналах или попросить их представиться.
Пользователь чувствует себя желанным гостем и наслаждается обсуждениями, которые происходят в вашей гильдии, а он, в свою очередь, приглашает друзей.
Со временем ваше сообщество разрастается настолько, что уже невозможно лично связаться с каждым новым членом, но вы все равно хотите послать им что-нибудь, чтобы признать их новым членом гильдии.
С помощью бота можно автоматически реагировать на присоединение нового члена к вашей гильдии. Вы даже можете настроить его поведение в зависимости от контекста и контролировать, как он взаимодействует с каждым новым пользователем.
Это здорово, но это лишь один небольшой пример того, как бот может быть полезным. У вас так много возможностей для творчества с ботами, если вы знаете, как их создавать.
Примечание: Хотя Discord позволяет создавать ботов, которые работают с голосовой связью, эта статья будет придерживаться текстовой части службы.
При создании бота необходимо выполнить два основных этапа:
- Создайте пользователя бота на Discord и зарегистрируйте его в гильдии.
- Напишите код, который использует API Discord и реализует поведение вашего бота.
В следующем разделе вы узнаете, как создать бота Discord на портале разработчиков Discord.
Как создать бота Discord на портале разработчиков
Прежде чем вы сможете погрузиться в какой-либо код Python для обработки событий и создания захватывающей автоматизации, вам необходимо сначала создать несколько компонентов Discord:
- Счет
- Приложение
- Бот
- Гильдия
Вы узнаете больше о каждой детали в следующих разделах.
После того, как вы создадите все эти компоненты, вы свяжете их вместе, зарегистрировав своего бота в своей гильдии.
Вы можете начать с портала разработчиков Discord.
Создание учетной записи Discord
Первое, что вы увидите, это целевая страница, на которой вам нужно будет либо войти в систему, если у вас уже есть учетная запись, либо создать новую:
Если вам нужно создать новую учетную запись, нажмите кнопку «Регистрация» под «Вход в систему» и введите данные своей учетной записи.
Важно: Вам нужно будет подтвердить свой адрес электронной почты, прежде чем вы сможете продолжить.
Когда вы закончите, вы будете перенаправлены на главную страницу портала разработчиков, где вы создадите свое приложение.
Создание приложения
Приложение позволяет вам взаимодействовать с API Discord, предоставляя токены аутентификации, назначая разрешения и т. Д.
Чтобы создать новое приложение, выберите Новое приложение :
Затем вам будет предложено назвать ваше приложение.Выберите имя и нажмите Создать :
Поздравляем! Вы подали заявку на Discord. На появившемся экране вы увидите информацию о своем приложении:
Имейте в виду, что для любой программы, взаимодействующей с API Discord, требуется приложение Discord, а не только боты. API, связанные с ботами, — это лишь часть всего интерфейса Discord.
Однако, поскольку это руководство посвящено созданию бота Discord, перейдите на вкладку Bot в левом списке навигации.
Создание бота
Как вы узнали в предыдущих разделах, пользователь-бот — это тот, кто слушает и автоматически реагирует на определенные события и команды в Discord.
Чтобы ваш код действительно отображался в Discord, вам нужно создать пользователя-бота. Для этого выберите Добавить бота :
После того, как вы подтвердите, что хотите добавить бота в свое приложение, вы увидите нового пользователя бота на портале:
Обратите внимание, что по умолчанию ваш пользователь-бот унаследует имя вашего приложения.Вместо этого обновите имя пользователя на что-то более похожее на бота, например RealPythonTutorialBot
и Сохранить изменения :
Теперь бот настроен и готов к работе, но куда?
Пользователь-бот бесполезен, если он не взаимодействует с другими пользователями. Затем вы создадите гильдию, чтобы ваш бот мог взаимодействовать с другими пользователями.
Создание гильдии
Гильдия (или сервер , как его часто называют в пользовательском интерфейсе Discord) — это особая группа каналов, на которых пользователи собираются для общения.
Примечание: Хотя гильдия и сервер являются взаимозаменяемыми, в этой статье будет использоваться термин гильдия в первую очередь потому, что в API используется один и тот же термин. Термин сервер будет использоваться только для обозначения гильдии в графическом интерфейсе.
Например, вы хотите создать пространство, где пользователи могут собраться вместе и рассказать о вашей последней игре. Вы бы начали с создания гильдии. Тогда в вашей гильдии у вас может быть несколько каналов, например:
- Общее обсуждение: Канал, где пользователи могут говорить обо всем, что они хотят.
- Спойлеры, Осторожно: Канал для пользователей, которые закончили игру, чтобы рассказать обо всех открытиях в конце игры.
- Объявления: Канал, где вы можете сообщать об обновлениях игры и чтобы пользователи могли их обсуждать
Создав гильдию, вы приглашаете других пользователей в нее.
Итак, чтобы создать гильдию, зайдите на свою домашнюю страницу в Discord:
С этой домашней страницы вы можете просматривать и добавлять друзей, личные сообщения и гильдии. Отсюда выберите значок + в левой части веб-страницы, чтобы добавить сервер :
Будет представлено два варианта: Создать сервер и Присоединиться к серверу . В этом случае выберите Создайте сервер и введите имя для своей гильдии:
Когда вы закончите создание своей гильдии, вы сможете увидеть пользователей справа и каналы слева:
Последний шаг в Discord — зарегистрировать своего бота в новой гильдии.
Добавление бота в гильдию
Бот не может принимать приглашения, как обычный пользователь. Вместо этого вы добавите своего бота, используя протокол OAuth3.
Технические детали: OAuth3 — это протокол для работы с авторизацией, при котором служба может предоставить клиентскому приложению ограниченный доступ на основе учетных данных приложения и разрешенных областей.
Для этого вернитесь на портал разработчика и выберите страницу OAuth3 в левой навигационной панели:
В этом окне вы увидите Генератор URL-адресов OAuth3.
Этот инструмент генерирует URL-адрес авторизации, который обращается к Discord OAuth3 API и разрешает доступ к API с использованием учетных данных вашего приложения.
В этом случае вы захотите предоставить пользователю-боту своего приложения доступ к API Discord, используя учетные данные OAuth3 вашего приложения.
Для этого прокрутите вниз и выберите bot из SCOPES options и Administrator from BOT PERMISSIONS :
Теперь Discord сгенерировал URL-адрес авторизации вашего приложения с выбранной областью действия и разрешениями.
Заявление об отказе от ответственности: Хотя мы используем Administrator для целей этого руководства, вы должны быть максимально детализированными при предоставлении разрешений в реальном приложении.
Выберите Скопируйте рядом с URL-адресом, который был сгенерирован для вас, вставьте его в свой браузер и выберите свою гильдию из раскрывающихся опций:
Нажмите Авторизовать , и готово!
Примечание: Вы можете получить reCAPTCHA, прежде чем двигаться дальше.В таком случае вам нужно будет доказать, что вы человек.
Если вы вернетесь в свою гильдию, то увидите, что бот добавлен:
Таким образом, вы создали:
- Приложение , которое ваш бот будет использовать для аутентификации с помощью API Discord
- Бот , пользователь , которого вы будете использовать для взаимодействия с другими пользователями и событиями в вашей гильдии
- гильдия , в которой будут активны ваша учетная запись и ваш пользователь-бот
- Аккаунт Discord , с помощью которого вы создали все остальное и которое будете использовать для взаимодействия со своим ботом
Теперь вы знаете, как создать бота Discord с помощью портала разработчика.Далее следует самое интересное: реализация вашего бота на Python!
Как создать бота Discord на Python
Поскольку вы учитесь создавать бота Discord на Python, вы будете использовать discord.py
.
discord.py
— это библиотека Python, которая полностью реализует API Discord эффективным и питоническим способом. Это включает использование реализации Python Async IO.
Начните с установки discord.py
с pip
:
$ pip install -U discord.ру
Теперь, когда вы установили discord.py
, вы будете использовать его для создания первого подключения к Discord!
Создание подключения к Discord
Первым шагом в реализации вашего пользователя-бота является создание подключения к Discord. С discord.py
вы делаете это, создавая экземпляр Client
:
# bot.py
импорт ОС
вносить разлад
из dotenv import load_dotenv
load_dotenv ()
ТОКЕН = os.getenv ('DISCORD_TOKEN')
клиент = разлад.Клиент ()
@ client.event
async def on_ready ():
print (f '{client.user} подключился к Discord!')
client.run (ТОКЕН)
Клиент
— это объект, который представляет соединение с Discord. Клиент
обрабатывает события, отслеживает состояние и обычно взаимодействует с API Discord.
Здесь вы создали клиент
и реализовали его обработчик событий on_ready ()
, который обрабатывает событие, когда клиент
установил соединение с Discord и завершил подготовку данных, отправленных Discord, например в качестве состояния входа, данных гильдии и канала и т. д.
Другими словами, on_ready ()
будет вызываться (и ваше сообщение будет напечатано), как только клиент
будет готов к дальнейшим действиям. Подробнее об обработчиках событий вы узнаете позже в этой статье.
Когда вы работаете с секретами, такими как токен Discord, рекомендуется считывать его в свою программу из переменной среды. Использование переменных среды поможет вам:
- Избегайте передачи секретов в систему управления версиями
- Используйте разные переменные для сред разработки и производства без изменения кода
Хотя вы можете экспортировать DISCORD_TOKEN = {your-bot-token}
, более простым решением является сохранение .env
на всех машинах, на которых будет выполняться этот код. Это не только проще, поскольку вам не нужно экспортировать
свой токен каждый раз, когда вы очищаете оболочку, но и защищает вас от сохранения ваших секретов в истории оболочки.
Создайте файл с именем .env
в том же каталоге, что и bot.py
:
# .env
DISCORD_TOKEN = {ваш-бот-токен}
Вам нужно будет заменить {your-bot-token}
на токен вашего бота, который вы можете получить, вернувшись на страницу Bot на портале разработчика и нажав Копировать в разделе TOKEN :
Оглядываясь назад на бота .py
, вы увидите библиотеку под названием dotenv
. Эта библиотека удобна для работы с файлами .env
. load_dotenv ()
загружает переменные среды из файла .env
в переменные среды вашей оболочки, чтобы вы могли использовать их в своем коде.
Установите dotenv
с точкой
:
$ pip install -U python-dotenv
Наконец, client.run ()
запускает ваш Client
, используя токен вашего бота.
Теперь, когда вы настроили bot.py
и .env
, вы можете запустить свой код:
$ python bot.py
RealPythonTutorialBot # 9643 подключился к Discord!
Отлично! Ваш Клиент
подключился к Discord с помощью токена вашего бота. В следующем разделе вы построите этот Client
, взаимодействуя с другими API Discord.
Взаимодействие с API Discord
Используя клиент
, вы получаете доступ к широкому спектру API Discord.
Например, предположим, вы хотите записать на консоль имя и идентификатор гильдии, в которой вы зарегистрировали своего пользователя-бота.
Сначала вам нужно добавить новую переменную среды:
# .env
DISCORD_TOKEN = {ваш-бот-токен}
DISCORD_GUILD = {имя-вашей-гильдии}
Не забывайте, что вам нужно будет заменить два заполнителя на фактические значения:
-
{ваш-бот-токен}
-
{your-guild-name}
Помните, что Discord вызывает on_ready ()
, который вы использовали ранее, после того, как клиент
установил соединение и подготовил данные.Таким образом, вы можете полагаться на данные гильдии, доступные внутри on_ready ()
:
# bot.py
импорт ОС
вносить разлад
из dotenv import load_dotenv
load_dotenv ()
ТОКЕН = os.getenv ('DISCORD_TOKEN')
ГИЛЬДИЯ = os.getenv ('DISCORD_GUILD')
client = discord.Client ()
@ client.event
async def on_ready ():
для гильдии в client.guilds:
если guild.name == ГИЛЬДИЯ:
перерыв
Распечатать(
f '{client.user} связан со следующей гильдией: \ n'
f '{guild.name} (id: {guild.я бы})'
)
client.run (ТОКЕН)
Здесь вы просмотрели данные гильдии, которые Discord отправил client
, а именно client.guilds
. Затем вы нашли гильдию с совпадающим именем и напечатали отформатированную строку в stdout
.
Примечание: Несмотря на то, что на этом этапе обучения вы можете быть вполне уверены, что ваш бот подключен только к одной гильдии (так что client.guilds [0]
будет проще), важно понимать, что бот Пользователь может быть связан со многими гильдиями.
Следовательно, более надежное решение — пройти через client.guilds
, чтобы найти тот, который вы ищете.
Запустите программу, чтобы увидеть результат:
$ python bot.py
RealPythonTutorialBot # 9643 связан со следующей гильдией:
RealPythonTutorialServer (идентификатор: 571759877328732195)
Отлично! Вы можете увидеть имя своего бота, имя вашего сервера и идентификационный номер сервера.
Еще одна интересная информация, которую вы можете получить из гильдии, — это список пользователей, которые являются членами гильдии:
# бот.ру
импорт ОС
вносить разлад
из dotenv import load_dotenv
load_dotenv ()
ТОКЕН = os.getenv ('DISCORD_TOKEN')
ГИЛЬДИЯ = os.getenv ('DISCORD_GUILD')
client = discord.Client ()
@ client.event
async def on_ready ():
для гильдии в client.guilds:
если guild.name == ГИЛЬДИЯ:
перерыв
Распечатать(
f '{client.user} связан со следующей гильдией: \ n'
f '{guild.name} (id: {guild.id}) \ n'
)
members = '\ n -' .join ([member.name члена в guild.members])
print (f'Члены гильдии: \ n - {members} ')
клиент.запустить (ТОКЕН)
Перебрав guild.members
, вы вытащили имена всех членов гильдии и напечатали их с форматированной строкой.
Когда вы запустите программу, вы должны увидеть хотя бы имя учетной записи, с которой вы создали гильдию, и имя самого пользователя-бота:
$ python bot.py
RealPythonTutorialBot # 9643 связан со следующей гильдией:
RealPythonTutorialServer (идентификатор: 571759877328732195)
Члены гильдии:
- aronq2
- RealPythonTutorialBot
Эти примеры едва касаются поверхности API, доступных в Discord, обязательно ознакомьтесь с их документацией, чтобы увидеть все, что они могут предложить.
Далее вы узнаете о некоторых служебных функциях и о том, как они могут упростить эти примеры.
Использование служебных функций
Давайте еще раз посмотрим на пример из последнего раздела, где вы напечатали имя и идентификатор гильдии бота:
# bot.py
импорт ОС
вносить разлад
из dotenv import load_dotenv
load_dotenv ()
ТОКЕН = os.getenv ('DISCORD_TOKEN')
ГИЛЬДИЯ = os.getenv ('DISCORD_GUILD')
client = discord.Client ()
@ client.event
async def on_ready ():
для гильдии в клиенте.гильдии:
если guild.name == ГИЛЬДИЯ:
перерыв
Распечатать(
f '{client.user} связан со следующей гильдией: \ n'
f '{guild.name} (id: {guild.id})'
)
client.run (ТОКЕН)
Вы можете очистить этот код, используя некоторые служебные функции, доступные в discord.py
.
discord.utils.find ()
— это утилита, которая может улучшить простоту и читаемость этого кода, заменив цикл на
интуитивно понятной абстрактной функцией:
# бот.ру
импорт ОС
вносить разлад
из dotenv import load_dotenv
load_dotenv ()
ТОКЕН = os.getenv ('DISCORD_TOKEN')
ГИЛЬДИЯ = os.getenv ('DISCORD_GUILD')
client = discord.Client ()
@ client.event
async def on_ready ():
guild = discord.utils.find (лямбда g: g.name == ГИЛЬДИЯ, client.guilds)
Распечатать(
f '{client.user} связан со следующей гильдией: \ n'
f '{guild.name} (id: {guild.id})'
)
client.run (ТОКЕН)
find ()
принимает функцию, называемую предикатом , которая идентифицирует некоторую характеристику элемента в итерации, которую вы ищете.Здесь вы использовали в качестве предиката анонимную функцию определенного типа, называемую лямбда.
В этом случае вы пытаетесь найти гильдию с тем же именем, что и та, которую вы сохранили в переменной среды DISCORD_GUILD
. Как только find ()
находит в итерации элемент, удовлетворяющий предикату, он вернет этот элемент. Это по сути эквивалентно оператору break
в предыдущем примере, но более чистое.
раздор.py
даже абстрагировался от этой концепции на один шаг дальше с помощью утилиты get ()
:
# bot.py
импорт ОС
вносить разлад
из dotenv import load_dotenv
load_dotenv ()
ТОКЕН = os.getenv ('DISCORD_TOKEN')
ГИЛЬДИЯ = os.getenv ('DISCORD_GUILD')
client = discord.Client ()
@ client.event
async def on_ready ():
гильдия = discord.utils.get (client.guilds, имя = ГИЛЬДИЯ)
Распечатать(
f '{client.user} связан со следующей гильдией: \ n'
f '{guild.name} (id: {guild.id})'
)
клиент.запустить (ТОКЕН)
get ()
принимает аргументы итерации и некоторые ключевые слова. Ключевое слово arguments представляет атрибуты элементов в итерируемом объекте, которые должны быть удовлетворены, чтобы функция get ()
возвратила элемент.
В этом примере вы определили name = GUILD
как атрибут, который должен быть удовлетворен.
Технические детали: Под капотом get ()
фактически использует аргументы ключевого слова attrs
для построения предиката, который затем используется для вызова find ()
.
Теперь, когда вы изучили основы взаимодействия с API, вы немного углубитесь в функцию, которую вы использовали для доступа к ним: on_ready ()
.
Ответ на события
Вы уже узнали, что on_ready ()
— это событие. Фактически, вы могли заметить, что он определяется как таковой в коде декоратором client.event
.
Но что такое событие?
Событие — это то, что происходит в Discord, и вы можете использовать его для запуска реакции в своем коде.Ваш код будет прислушиваться к событиям, а затем реагировать на них.
Используя пример, который вы уже видели, обработчик события on_ready ()
обрабатывает событие, когда клиент
установил соединение с Discord и подготовил данные своего ответа.
Итак, когда Discord запускает событие, discord.py
перенаправляет данные события соответствующему обработчику событий на вашем подключенном клиенте
.
В discord.py
есть два способа реализовать обработчик событий:
- Использование клиента
.событие
декоратор - Создание подкласса
Client
и переопределение методов его обработчика
Вы уже видели реализацию с использованием декоратора. Затем посмотрим, как создать подкласс Клиент
:
# bot.py
импорт ОС
вносить разлад
из dotenv import load_dotenv
load_dotenv ()
ТОКЕН = os.getenv ('DISCORD_TOKEN')
класс CustomClient (discord.Client):
async def on_ready (сам):
print (f '{self.user} подключился к Discord!')
client = CustomClient ()
клиент.запустить (ТОКЕН)
Здесь, как и раньше, вы создали клиентскую переменную
и вызвали .run ()
с вашим токеном Discord. Однако реальный клиент
отличается. Вместо использования обычного базового класса, клиент
является экземпляром CustomClient
, который имеет переопределенную функцию on_ready ()
.
Нет никакой разницы между двумя стилями реализации событий, но в этом руководстве в первую очередь будет использоваться версия декоратора, потому что она похожа на то, как вы реализуете команды Bot
, и это тема, о которой вы немного поговорите.
Технические детали: Независимо от того, как вы реализуете свой обработчик событий, одно должно быть непротиворечивым: все обработчики событий в discord.py
должны быть сопрограммами.
Теперь, когда вы узнали, как создать обработчик событий, давайте рассмотрим несколько различных примеров обработчиков, которые вы можете создать.
Приветствие новых членов
Ранее вы видели пример реакции на событие, когда член присоединяется к гильдии. В этом примере ваш пользователь-бот может отправить им сообщение, приветствуя их в сообществе Discord.
Теперь вы реализуете это поведение в своем Client
, используя обработчики событий, и проверите его поведение в Discord:
# bot.py
импорт ОС
вносить разлад
из dotenv import load_dotenv
load_dotenv ()
ТОКЕН = os.getenv ('DISCORD_TOKEN')
client = discord.Client ()
@ client.event
async def on_ready ():
print (f '{client.user.name} подключился к Discord!')
@ client.event
async def on_member_join (член):
ожидание member.create_dm ()
ждите member.dm_channel.Отправить(
f'Привет, {member.name}, добро пожаловать на мой сервер Discord! '
)
client.run (ТОКЕН)
Как и раньше, вы обработали событие on_ready ()
, распечатав имя пользователя-бота в форматированной строке. Новым, однако, является реализация обработчика событий on_member_join ()
.
on_member_join ()
, как следует из названия, обрабатывает событие присоединения нового члена к гильдии.
В этом примере вы использовали member.create_dm ()
для создания канала прямого сообщения.Затем вы использовали этот канал для .send ()
прямого сообщения этому новому участнику.
Технические детали: Обратите внимание на ключевое слово await
перед member.create_dm ()
и member.dm_channel.send ()
.
await
приостанавливает выполнение окружающей сопрограммы до завершения выполнения каждой сопрограммы.
А теперь давайте проверим новое поведение вашего бота.
Сначала запустите новую версию бота .py
и дождитесь запуска события on_ready ()
, записав ваше сообщение на stdout
:
$ python bot.py
RealPythonTutorialBot подключился к Discord!
Теперь перейдите в Discord, войдите в систему и перейдите к своей гильдии, выбрав ее в левой части экрана:
Выберите Пригласить людей рядом со списком гильдий, в котором вы выбрали свою гильдию. Установите флажок с надписью Установить эту ссылку, чтобы срок ее действия не истекал , и скопируйте ссылку:
Теперь, когда ссылка для приглашения скопирована, создайте новую учетную запись и присоединитесь к гильдии, используя ссылку для приглашения:
Во-первых, вы увидите, что Discord по умолчанию познакомил вас с гильдией с помощью автоматического сообщения.Что еще более важно, обратите внимание на значок в левой части экрана, который уведомляет вас о новом сообщении:
Когда вы выберете его, вы увидите личное сообщение от вашего пользователя-бота:
Отлично! Ваш пользователь-бот теперь взаимодействует с другими пользователями с минимальным кодом.
Далее вы узнаете, как отвечать на определенные сообщения пользователя в чате.
Ответ на сообщения
Давайте расширим предыдущую функциональность вашего бота, обработав событие on_message ()
.
on_message ()
возникает, когда сообщение публикуется в канале, к которому у вашего бота есть доступ. В этом примере вы ответите на сообщение '99! '
с однострочником из телешоу Brooklyn Nine-Nine:
@ client.event
async def on_message (сообщение):
если message.author == client.user:
возвращение
brooklyn_99_quotes = [
'Я человеческая форма 💯 смайлика.',
'Bingpot!',
(
'Прохладный. Круто круто круто круто круто круто '
«без сомнения, без сомнения, без сомнения, без сомнения.'
),
]
если message.content == '99! ':
response = random.choice (brooklyn_99_quotes)
ждите message.channel.send (ответ)
Основная часть этого обработчика событий просматривает message.content
, проверяет, равно ли оно '99! '
, и в ответ отправляет случайную цитату в канал сообщения, если это так.
Другой важный предмет:
, если message.author == client.user:
возвращение
Поскольку клиент
не может отличить пользователя-бота от обычного пользователя, обработчик on_message ()
должен защищать от потенциально рекурсивного случая, когда бот отправляет сообщение, которое он сам может обработать.
Для иллюстрации, допустим, вы хотите, чтобы ваш бот слушал, как пользователи говорят друг другу «С Днем Рождения»
. Вы можете реализовать обработчик on_message ()
следующим образом:
@ client.event
async def on_message (сообщение):
если "с днем рождения" в message.content.lower ():
await message.channel.send ('С Днем Рождения! 🎈🎉')
Помимо потенциально спамовой природы этого обработчика событий, он также имеет разрушительный побочный эффект. Сообщение, которым отвечает бот, содержит то же сообщение, которое он собирается обработать!
Итак, если один человек на канале скажет другому «С Днем Рождения», то бот тоже перезвонит… снова… и снова… и снова:
Вот почему так важно сравнить сообщение .автор
на client.user
(ваш пользователь-бот) и игнорирует любые его собственные сообщения.
Итак, давайте исправим bot.py
:
# bot.py
импорт ОС
случайный импорт
вносить разлад
из dotenv import load_dotenv
load_dotenv ()
ТОКЕН = os.getenv ('DISCORD_TOKEN')
client = discord.Client ()
@ client.event
async def on_ready ():
print (f '{client.user.name} подключился к Discord!')
@ client.event
async def on_member_join (член):
ожидание member.create_dm ()
жду участника.dm_channel.send (
f'Привет, {member.name}, добро пожаловать на мой сервер Discord! '
)
@ client.event
async def on_message (сообщение):
если message.author == client.user:
возвращение
brooklyn_99_quotes = [
'Я человеческая форма 💯 смайлика.',
'Bingpot!',
(
'Прохладный. Круто круто круто круто круто круто '
«без сомнения, без сомнения, без сомнения, без сомнения».
),
]
если message.content == '99! ':
response = random.choice (brooklyn_99_quotes)
жду сообщения.channel.send (ответ)
client.run (ТОКЕН)
Не забудьте указать import random
в верхней части модуля, поскольку обработчик on_message ()
использует random.choice ()
.
Запускаем программу:
$ python bot.py
RealPythonTutorialBot подключился к Discord!
Наконец, зайдите в Discord, чтобы проверить это:
Отлично! Теперь, когда вы увидели несколько различных способов обработки некоторых распространенных событий Discord, вы узнаете, как бороться с ошибками, которые могут вызывать обработчики событий.
Обработка исключений
Как вы уже видели, discord.py
— это система, управляемая событиями. Этот акцент на событиях распространяется даже на исключения. Когда один обработчик событий вызывает Exception
, Discord вызывает on_error ()
.
По умолчанию on_error ()
записывает сообщение об ошибке и трассировку стека на stderr
. Чтобы проверить это, добавьте специальный обработчик сообщений в on_message ()
:
# бот.ру
импорт ОС
случайный импорт
вносить разлад
из dotenv import load_dotenv
load_dotenv ()
ТОКЕН = os.getenv ('DISCORD_TOKEN')
client = discord.Client ()
@ client.event
async def on_ready ():
print (f '{client.user.name} подключился к Discord!')
@ client.event
async def on_member_join (член):
ожидание member.create_dm ()
ждать member.dm_channel.send (
f'Привет, {member.name}, добро пожаловать на мой сервер Discord! '
)
@ client.event
async def on_message (сообщение):
если message.author == client.Пользователь:
возвращение
brooklyn_99_quotes = [
'Я человеческая форма 💯 смайлика.',
'Bingpot!',
(
'Прохладный. Круто круто круто круто круто круто '
«без сомнения, без сомнения, без сомнения, без сомнения».
),
]
если message.content == '99! ':
response = random.choice (brooklyn_99_quotes)
ждите message.channel.send (ответ)
elif message.content == 'поднять исключение':
вызвать Discord.DiscordException
client.run (ТОКЕН)
Новый обработчик сообщений raise-exception
позволяет вам вызывать DiscordException
по команде.
Запустите программу и введите raise-exception
в канал Discord:
Теперь вы должны увидеть исключение Exception
, которое было вызвано вашим обработчиком on_message ()
в консоли:
$ python bot.py
RealPythonTutorialBot подключился к Discord!
Игнорирование исключения в on_message
Отслеживание (последний вызов последний):
Файл "/Users/alex.ronquillo/.pyenv/versions/discord-venv/lib/python3.7/site-packages/discord/client.py", строка 255, в _run_event
ждать coro (* args, ** kwargs)
Файл "бот.py ", строка 42, в on_message
вызвать Discord.DiscordException
discord.errors.DiscordException
Исключение было перехвачено обработчиком ошибок по умолчанию, поэтому выходные данные содержат сообщение Игнорирование исключения в on_message
. Давайте исправим это, обработав эту конкретную ошибку. Для этого вы перехватите DiscordException
и вместо этого запишете его в файл.
Обработчик события on_error ()
принимает событие
в качестве первого аргумента.В этом случае мы ожидаем, что событие
будет 'on_message'
. Он также принимает * args
и ** kwargs
как гибкие, позиционные и ключевые аргументы, передаваемые исходному обработчику событий.
Итак, поскольку on_message ()
принимает единственный аргумент, сообщение
, мы ожидаем, что args [0]
будет сообщением
, которое пользователь отправил в канал Discord:
@ client.event
async def on_error (событие, * args, ** kwargs):
с открытым ('err.log ',' a ') как f:
если event == 'on_message':
f.write (f'Необработанное сообщение: {args [0]} \ n ')
еще:
поднимать
Если исключение Exception
возникло в обработчике события on_message ()
, вы .write ()
форматируете строку в файл err.log
. Если другое событие вызывает исключение Exception
, тогда мы просто хотим, чтобы наш обработчик повторно вызвал исключение, чтобы вызвать поведение по умолчанию.
Запуск бота.py
и отправьте сообщение об исключении
еще раз, чтобы просмотреть вывод в err.log
:
$ cat err.log
Необработанное сообщение: 4084 pinned = False author = >
Вместо только трассировки стека у вас есть более информативная ошибка, показывающая сообщение
, которое заставило on_message ()
вызвать исключение DiscordException
, сохраненное в файл для более длительного хранения.
Технические детали: Если вы хотите принять во внимание фактическое исключение Exception
при записи сообщений об ошибках в err.log
, тогда вы можете использовать функции из sys
, такие как exc_info ()
.
Теперь, когда у вас есть некоторый опыт обработки различных событий и взаимодействия с API Discord, вы узнаете о подклассе Client
под названием Bot
, который реализует некоторые удобные функции, специфичные для ботов.
Подключение бота
A Bot
— это подкласс Client
, который добавляет немного дополнительных функций, которые могут быть полезны при создании пользователей-ботов. Например, Bot
может обрабатывать события и команды, вызывать проверки и многое другое.
Прежде чем перейти к особенностям, характерным для Bot
, преобразуйте bot.py
для использования Bot
вместо клиента
:
# bot.py
импорт ОС
случайный импорт
из dotenv import load_dotenv
# 1
от разлада.команды импорта ext
load_dotenv ()
ТОКЕН = os.getenv ('DISCORD_TOKEN')
# 2
bot = commands.Bot (command_prefix = '!')
@ bot.event
async def on_ready ():
print (f '{bot.user.name} подключился к Discord!')
bot.run (ТОКЕН)
Как видите, Bot
может обрабатывать события так же, как Client
. Однако обратите внимание на различия между Client
и Bot
:
-
Бот
импортирован из файлаdiscord.ext.модуль команд
. - Инициализатор
Bot
требуетcommand_prefix
, о котором вы узнаете больше в следующем разделе.
Библиотека расширений, ext
, предлагает несколько интересных компонентов, которые помогут вам создать Discord Bot
. Одним из таких компонентов является команда
.
Использование бота
КомандыВ общих чертах, команда — это приказ, который пользователь дает боту, чтобы он что-то сделал.Команды отличаются от событий, потому что они:
- Произвольно определено
- Вызывается пользователем напрямую
- Гибкие, с точки зрения интерфейса
С технической точки зрения, Command
— это объект, который является оболочкой для функции, вызываемой текстовой командой в Discord. Текстовая команда должна начинаться с command_prefix
, определенного объектом Bot
.
Давайте посмотрим на старое событие, чтобы лучше понять, как оно выглядит:
# бот.ру
импорт ОС
случайный импорт
вносить разлад
из dotenv import load_dotenv
load_dotenv ()
ТОКЕН = os.getenv ('DISCORD_TOKEN')
client = discord.Client ()
@ client.event
async def on_message (сообщение):
если message.author == client.user:
возвращение
brooklyn_99_quotes = [
'Я человеческая форма 💯 смайлика.',
'Bingpot!',
(
'Прохладный. Круто круто круто круто круто круто '
«без сомнения, без сомнения, без сомнения, без сомнения».
),
]
если message.content == '99! ':
ответ = случайный.выбор (brooklyn_99_quotes)
ждите message.channel.send (ответ)
client.run (ТОКЕН)
Здесь вы создали обработчик события on_message ()
, который получает строку сообщения
и сравнивает ее с предопределенной опцией: '99! '
.
Используя команду
, вы можете преобразовать этот пример в более конкретный:
# bot.py
импорт ОС
случайный импорт
из команд импорта discord.ext
из dotenv import load_dotenv
load_dotenv ()
ТОКЕН = os.getenv ('DISCORD_TOKEN')
bot = commands.Bot (command_prefix = '!')
@ bot.command (имя = '99 ')
async def nine_nine (ctx):
brooklyn_99_quotes = [
'Я человеческая форма 💯 смайлика.',
'Bingpot!',
(
'Прохладный. Круто круто круто круто круто круто '
«без сомнения, без сомнения, без сомнения, без сомнения».
),
]
response = random.choice (brooklyn_99_quotes)
ждать ctx.send (ответ)
bot.run (ТОКЕН)
Есть несколько важных характеристик, которые следует понимать при использовании команды
:
Вместо использования бота
.событие
, как и раньше, вы используетеbot.command ()
, передавая команду вызова (имя
) в качестве аргумента.Функция теперь будет вызываться только при упоминании в чате
! 99
. Это отличается от событияon_message ()
, которое запускалось каждый раз, когда пользователь отправлял сообщение, независимо от содержимого.Команда должна начинаться с восклицательного знака (
!
), потому что этоcommand_prefix
, который вы определили в инициализаторе для вашегоBot
.Любая функция
Command
(технически называемая обратным вызовомctx
, который является контекстом
A Контекст
содержит такие данные, как канал и гильдия, из которых пользователь вызвал команду
.
Запускаем программу:
Теперь, когда ваш бот запущен, вы можете перейти в Discord, чтобы опробовать свою новую команду:
С точки зрения пользователя, практическое отличие состоит в том, что префикс помогает формализовать команду, а не просто реагировать на конкретное событие on_message ()
.
Это дает и другие большие преимущества. Например, вы можете вызвать команду ! Help
, чтобы увидеть все команды, которые обрабатывает ваш Bot
:
Если вы хотите добавить описание к своей команде, чтобы сообщение help
было более информативным, просто передайте описание help
в декоратор .command ()
:
# bot.py
импорт ОС
случайный импорт
из команд импорта discord.ext
из dotenv import load_dotenv
load_dotenv ()
ТОКЕН = os.getenv ('DISCORD_TOKEN')
bot = commands.Bot (command_prefix = '!')
@ bot.command (name = '99 ', help =' Отвечает случайной цитатой из Бруклина 99 ')
async def nine_nine (ctx):
brooklyn_99_quotes = [
'Я человеческая форма 💯 смайлика.',
'Bingpot!',
(
'Прохладный. Круто круто круто круто круто круто '
«без сомнения, без сомнения, без сомнения, без сомнения».
),
]
response = random.choice (brooklyn_99_quotes)
ждать ctx.send (ответ)
bot.run (ТОКЕН)
Теперь, когда пользователь вызывает команду ! Help
, ваш бот представит описание вашей команды:
Имейте в виду, что все эти функции существуют только для подкласса Bot
, а не суперкласса Client
.
Команда
имеет еще одну полезную функцию: возможность использовать преобразователь
для изменения типов своих аргументов.
Автоматическое преобразование параметров
Еще одним преимуществом использования команд является возможность преобразования параметров в .
Иногда требуется, чтобы параметр был определенного типа, но аргументы функции Command
по умолчанию являются строками. Преобразователь
позволяет преобразовать эти параметры в ожидаемый тип.
Например, если вы хотите создать команду
для пользователя-бота, чтобы имитировать бросание кубиков (зная, что вы уже узнали), вы можете определить ее так:
@ bot.command (name = 'roll_dice', help = 'Имитирует бросание игральных костей.')
async def roll (ctx, number_of_dice, number_of_sides):
игральные кости = [
str (random.choice (диапазон (1, число_сторон + 1)))
для _ в диапазоне (число_кости)
]
ожидание ctx.send (',' .join (игра в кости))
Вы определили roll
, чтобы принять два параметра:
- Количество бросаемых кубиков
- Количество граней на матрицу
Затем вы украсили его .command ()
, чтобы вы могли вызвать его с помощью команды ! roll_dice
. Наконец, вы .send ()
результаты в сообщении обратно на канал
.
Хотя это выглядит правильным, это не так. К сожалению, если вы запустите bot.py
и вызовете команду ! Roll_dice
в своем канале Discord, вы увидите следующую ошибку:
$ python bot.py
Игнорирование исключения в команде roll_dice:
Отслеживание (последний вызов последний):
Файл "/ Пользователи / alex.ronquillo / .pyenv / versions / discord-venv / lib / python3.7 / site-packages / discord / ext / commands / core.py ", строка 63, в упаковке
ret = ждать coro (* аргументы, ** kwargs)
Файл "bot.py", строка 40, в рулоне
для _ в диапазоне (число_кости)
TypeError: объект 'str' нельзя интерпретировать как целое число
Вышеупомянутое исключение явилось прямой причиной следующего исключения:
Отслеживание (последний вызов последний):
Файл "/Users/alex.ronquillo/.pyenv/versions/discord-venv/lib/python3.7/site-packages/discord/ext/commands/bot.py ", строка 860, в invoke
ждать ctx.command.invoke (ctx)
Файл "/Users/alex.ronquillo/.pyenv/versions/discord-venv/lib/python3.7/site-packages/discord/ext/commands/core.py", строка 698, в вызове
ожидание введено (* ctx.args, ** ctx.kwargs)
Файл "/Users/alex.ronquillo/.pyenv/versions/discord-venv/lib/python3.7/site-packages/discord/ext/commands/core.py", строка 72, в оболочке
поднять CommandInvokeError (exc) из exc
discord.ext.commands.errors.CommandInvokeError: команда вызвала исключение: TypeError: объект 'str' не может быть интерпретирован как целое число
Другими словами, range ()
не может принимать str
в качестве аргумента.Вместо этого это должно быть int
. Хотя вы можете преобразовать каждое значение в int
, есть способ лучше: вы можете использовать преобразователь Converter
.
В discord.py
преобразователь
определен с использованием аннотаций функций Python 3:
@ bot.command (name = 'roll_dice', help = 'Имитирует бросание игральных костей.')
async def roll (ctx, number_of_dice: int, number_of_sides: int):
игральные кости = [
str (random.choice (диапазон (1, число_сторон + 1)))
для _ в диапазоне (число_кости)
]
ждите ctx.send (',' .join (игра в кости))
Вы добавили аннотации : int
к двум параметрам, которые должны иметь тип int
. Повторите команду еще раз:
С этим небольшим изменением ваша команда работает! Разница в том, что теперь вы конвертируете аргументы команды в int
, что делает их совместимыми с логикой вашей функции.
Примечание: A Converter
может быть любым вызываемым, а не только типом данных. Аргумент будет передан вызываемому объекту, а возвращаемое значение будет передано команде
.
Далее вы узнаете об объекте Проверить
и о том, как он может улучшить ваши команды.
Проверка командных предикатов
A Check
— это предикат, который оценивается перед выполнением команды
, чтобы гарантировать, что контекст
, окружающий вызов команды
, действителен.
В предыдущем примере вы сделали что-то подобное, чтобы убедиться, что пользователь, отправивший сообщение, которое обрабатывает бот, сам не является пользователем-ботом:
, если сообщение.автор == client.user:
возвращение
Команды Расширение
обеспечивает более чистый и удобный механизм для выполнения такого рода проверки, а именно использование объектов Проверить
.
Чтобы продемонстрировать, как это работает, предположим, что вы хотите поддерживать команду ! Create-channel
, которая создает новый канал. Однако вы хотите разрешить администраторам только создавать новые каналы с помощью этой команды.
Во-первых, вам нужно создать новую роль участника в админке.Войдите в гильдию Discord и выберите {Имя сервера} → Настройки сервера меню :
Затем выберите ролей в левом списке навигации:
Наконец, выберите значок + рядом с РОЛИ , введите имя admin
и выберите Сохранить изменения :
Итак, вы создали роль администратора
, которую можно назначить определенным пользователям. Затем вы обновите bot.py
до . Проверьте
роль пользователя, прежде чем разрешить ему инициировать команду:
# бот.ру
импорт ОС
вносить разлад
из команд импорта discord.ext
из dotenv import load_dotenv
load_dotenv ()
ТОКЕН = os.getenv ('DISCORD_TOKEN')
bot = commands.Bot (command_prefix = '!')
@ bot.command (имя = 'создать-канал')
@ commands.has_role ('админ')
async def create_channel (ctx, channel_name = 'real-python'):
guild = ctx.guild
existing_channel = discord.utils.get (guild.channels, name = имя_канала)
если не существует_канал:
print (f'Создание нового канала: {channel_name} ')
жду гильдию.create_text_channel (имя_канала)
bot.run (ТОКЕН)
В bot.py
у вас есть новая функция Command
, называемая create_channel ()
, которая принимает необязательное имя channel_name
и создает этот канал. create_channel ()
также украшен проверкой Check
с именем has_role ()
.
Вы также используете discord.utils.get ()
, чтобы не создавать канал с тем же именем, что и у существующего.
Если вы запустите эту программу как она есть и введите ! Create-channel
в свой канал Discord, то вы увидите следующее сообщение об ошибке:
$ python bot.py
Игнорирование исключения в команде create-channel:
Отслеживание (последний вызов последний):
Файл "/Users/alex.ronquillo/.pyenv/versions/discord-venv/lib/python3.7/site-packages/discord/ext/commands/bot.py", строка 860, в вызове
ждать ctx.command.invoke (ctx)
Файл "/Users/alex.ronquillo/.pyenv/versions/discord-venv/lib/python3.7 / site-packages / discord / ext / commands / core.py ", строка 691, в invoke
ждать self.prepare (ctx)
Файл "/Users/alex.ronquillo/.pyenv/versions/discord-venv/lib/python3.7/site-packages/discord/ext/commands/core.py", строка 648, готовится
ждать self._verify_checks (ctx)
Файл "/Users/alex.ronquillo/.pyenv/versions/discord-venv/lib/python3.7/site-packages/discord/ext/commands/core.py", строка 598, в _verify_checks
Raise CheckFailure ('Функция проверки для команды {0.qualified_name} завершилась неудачно.'. format (self))
разлад.ext.commands.errors.CheckFailure: не удалось выполнить функции проверки для команды create-channel.
Этот CheckFailure
говорит, что has_role ('admin')
не удалось. К сожалению, эта ошибка выводится только на stdout
. Лучше было бы сообщить об этом пользователю в канале. Для этого добавьте следующее событие:
@ bot.event
async def on_command_error (ctx, ошибка):
если isinstance (ошибка, commands.errors.CheckFailure):
await ctx.send ('У вас нет правильной роли для этой команды.')
Это событие обрабатывает событие ошибки от команды и отправляет информативное сообщение об ошибке обратно в исходный контекст
вызванной команды
.
Попробуйте все еще раз, и вы должны увидеть ошибку в канале Discord:
Отлично! Теперь, чтобы решить эту проблему, вам нужно назначить себе роль администратора , :
. С ролью admin ваш пользователь пройдет проверку
и сможет создавать каналы с помощью команды.
Примечание: Имейте в виду, что для назначения роли ваш пользователь должен иметь правильные разрешения. Самый простой способ убедиться в этом — войти в систему под пользователем, с которым вы создали гильдию.
Когда вы снова наберете ! Create-channel
, вы успешно создадите канал real-python :
Также обратите внимание, что вы можете передать необязательный аргумент channel_name
, чтобы присвоить каналу любое имя!
В этом последнем примере вы объединили команду
, событие, Check
и даже утилиту get ()
, чтобы создать полезного бота Discord!
Заключение
Поздравляем! Теперь вы узнали, как создать бота Discord на Python.Вы можете создавать ботов для взаимодействия с пользователями в гильдиях, которые вы создаете, или даже ботов, которых другие пользователи могут приглашать для взаимодействия со своими сообществами. Ваши боты смогут отвечать на сообщения и команды, а также на множество других событий.
В этом уроке вы узнали основы создания собственного бота Discord. Теперь вы знаете:
- Что такое Discord
- Почему
discord.py
так ценен - Как сделать бота Discord на портале разработчиков
- Как создать соединение Discord в Python
- Как обрабатывать события
- Как создать соединение
Bot
- Как использовать команды, проверки и преобразователи ботов
Чтобы узнать больше о мощном Discord .py
и выведите своих ботов на новый уровень, ознакомившись с их обширной документацией. Кроме того, теперь, когда вы знакомы с API Discord в целом, у вас есть лучшая основа для создания других типов приложений Discord.
Смотреть сейчас В этом руководстве есть связанный видеокурс, созданный командой Real Python. Посмотрите его вместе с письменным руководством, чтобы углубить свое понимание: Создание бота Discord на Python
Как создать бота для бизнеса
В наши дни люди предпочитают обмен сообщениями любой другой форме общения.Фактически, большинство людей заинтересованы в использовании обмена сообщениями для общения с бизнесом. Вот где пригодится знание того, как создать бота для бизнеса. Боты дают предприятиям возможность автоматически общаться с клиентами в приложениях чата , SMS, и текстовом .
Использование маркетингового бота для вашего бизнеса гарантированно повысит рентабельность инвестиций. Приложение для чата №1 в США — это Facebook Messenger, а автоматизированный маркетинг через Messenger обеспечивает максимальное вовлечение, превосходя вовлеченность Facebook Newsfeed, рекламы и маркетинга по электронной почте в 10 раз и более.
Сегодня в дикой природе всего 400 000 ботов Facebook, но каждый месяц через Messenger отправляется более 10 миллиардов сообщений. Это дает компаниям большую возможность использовать ботов для расширения взаимодействия с клиентами.
Сегодня мы поговорим о том, как создать бота для бизнеса и когда эти боты пригодятся.
Инструкции по созданию бота для бизнеса следующие:
- Решите, что бот будет делать для вашего бизнеса.
- Перейдите в конструктор ботов MobileMonkey.
- Выберите «Чат-боты» на боковой панели.
- Выберите «Диалоги», чтобы начать создание своего бота.
- Добавьте параметры диалога.
- Добавьте триггеры вопросов и ответов.
- Проверьте своего бота!
Присоединяйтесь к сегодняшнему вебинару с Ларри Кимом!
(Или зарегистрируйтесь для бесплатного воспроизведения)
Узнайте все о НОВЫХ инструментах от MobileMonkey до 10-кратное взаимодействие с Instagram с автоматизацией обмена сообщениями.
Как создать бота для бизнеса
Прежде чем мы начнем изучать, как создать бота для бизнеса, рассмотрите возможность попробовать бота для опроса клиентов MobileMonkey, чтобы лично убедиться, как бизнес-боты работают в режиме реального времени.
А теперь приступим!
1. Решите, что бот будет делать для вашего бизнеса.
Итак, вы решили научиться создавать бота для бизнеса. Это должно означать, что у вас есть бизнес, и вы хотите, чтобы бот что-то для него сделал.
Но что вы хотите, чтобы бот делал?
Есть много типов ботов для бизнеса. Например, боты могут помочь с лидогенерацией B2B. Некоторые компании используют ботов для выполнения задач по обслуживанию клиентов. Другие используют ботов для выполнения задач электронной коммерции.
Ваш бот будет использоваться для экономии вашего времени и доходов при одновременном повышении рентабельности инвестиций, поэтому подумайте, какие услуги и задачи вы хотите, чтобы бот выполнял для вашего бизнеса.
В рамках этого руководства мы сделаем вид, что цель, которую вы выбрали для бота вашего бизнеса, — помочь вашим клиентам больше узнать о ботах и вашем продукте.Примеры на следующих этапах отражают эту цель.
2. Перейдите в конструктор ботов MobileMonkey.
Самый удобный для бизнеса конструктор визуальных ботов на сегодняшний день — MobileMonkey. Зарегистрируйте бесплатную учетную запись или войдите в свою существующую учетную запись.
Хотите узнать об эффективных стратегиях маркетинга ботов для вашего бизнеса?
УMobileMonkey есть ресурсы, где вы можете узнать больше о ботах, как создать бота для бизнеса (или для удовольствия), а также о маркетинге в Facebook Messenger через наш блог и справочную документацию.
Вы также можете легко получить доступ к конкретной информации о ботах через нашу страницу Chatbot University. Запишитесь на саммит, где вы сможете принять участие в вебинаре и из первых рук узнать, как создать бота для бизнеса или других интересных вещей в маркетинговой индустрии. Кроме того, узнайте, насколько успешны боты, прочитав некоторые примеры из практики.
3. Выберите «боты» на боковой панели.
После того, как вы зарегистрируетесь в бесплатной учетной записи MobileMonkey и изучите наши ресурсы, чтобы узнать больше о маркетинге в Facebook Messenger и о том, как создать бота для бизнеса, вы можете приступить к созданию своего первого чат-бота.
Идите вперед и выберите «Чат-боты» на боковой панели.
4. Выберите «Диалоги», чтобы начать сборку бота.
После того, как вы перешли к построителю ботов, вы готовы создать бота для бизнеса!
Теперь вам нужно выбрать опцию «Диалоги».
Эти два варианта на самом деле идут рука об руку, но чтобы создать бота для бизнеса, вам нужно начать с опции «Диалоги». Диалоги — это то, как взаимодействуют пользователь и ваш бот.Они будут вести разговор.
5. Добавьте параметры диалога.
Здесь вы действительно начинаете создавать бота для бизнеса!
Когда вы перейдете на панель инструментов сбоку от конструктора ботов, вы увидите все свои диалоги. Это разговоры, которые ваш бот будет вести с взаимодействующим с ним пользователем.
Начните с приветственного сообщения.
Лучше всего включать в приветственное сообщение изображение или GIF. Это заставляет пользователя чувствовать, что он ведет более персонализированный разговор с ботом, более похожим на человека.
Вы можете добавить список вариантов ответа для выбора пользователем. Так разговор продвигается вперед.
Чтобы направить пользователя в разные области при выборе вариантов ответа, вы должны создать больше диалогов на боковой панели и использовать их в качестве диалогового окна ответа.
В дополнение к тексту и дополнительным кнопкам вы можете включить URL-адрес в свой ответный диалог.
Затем вы должны убедиться, что ответные диалоги действительно куда-то ведут вашего пользователя.Вы настраиваете диалоги ответов с помощью различных виджетов, которые есть в конструкторе ботов.
Например, в диалоге «Узнать о чат-ботах» я решил включить несколько текстовых виджетов, которые дают немного больше информации о ботах.
Затем я даю пользователю еще один вариант того, что он хотел бы сделать дальше.
Существует множество различных вариантов создания бота для бизнеса. Вы можете использовать различные ответные диалоги, чтобы заинтересовать пользователя.Вы также можете использовать некоторые из них для сбора информации о пользователях.
Здесь я добавил виджет «формы», который будет всплывать, если пользователь запрашивает демонстрацию MobileMonkey.
Эта форма заставляет бота запрашивать номер телефона пользователя, чтобы с ним можно было связаться, чтобы установить время для получения демонстрации.
В этом случае не нужно запрашивать номер телефона. Это действительно зависит от цели вашего бота. Если вы ищете адреса электронной почты для добавления в список рассылки, это может быть отличным местом, чтобы спросить адрес электронной почты пользователя, потому что тогда бот получит эту информацию.
6. Добавьте триггеры вопросов и ответов.
Вы действительно на пути к тому, чтобы научиться создавать бота для бизнеса!
После того, как все параметры диалога настроены, вы можете упростить задачу для пользователя, введя триггеры Q + A.
Это триггерные слова, которые приведут к диалогам, которые вы настроили ранее, без необходимости для пользователя проходить весь процесс диалога.
Например, я подумал, что вполне вероятно, что пользователь свяжется с моей страницей просто для того, чтобы запросить демонстрацию.
В этом случае пользователь выберет сообщение боту и может просто ввести «Demo».
Итак, я установил слово-триггер «демо», чтобы вызвать диалог формы, который запрашивает номер телефона пользователя.
7. Проверьте своего бота!
Ах, вы сделали это! Вы узнали, как создать бота для бизнеса.
Последний шаг, однако, — протестировать вашего бота, чтобы убедиться, что все работает правильно.
Здесь вы увидите, что когда я перехожу к своей странице сообщения, есть опция «Начать.«Вот как вы узнаете, что собираетесь взаимодействовать с ботом.
Когда я нажимаю «Начать», бот отвечает приветственным сообщением. Я немного изменил его, чтобы у меня было два варианта: «Узнать о ботах» или «Покажи мне единорога!»
Я решил пойти с «Покажи мне единорога!» сначала (ради радости и счастья, конечно). Бот отвечает GIF-изображением единорога и возможностью увидеть другого (если вы помните, вы можете настроить эти параметры в диалогах).
Впрочем, пока хватит единорогов.Поэтому я выбираю «Нет!» которое, как я решил, вернет меня к первому сообщению, предлагающему выбрать вариант.
На этот раз я выбираю «Узнать больше». Бот отвечает первой частью диалога «Узнать больше о ботах», который я ранее создал.
Однако я решил попробовать прервать его, поэтому набираю «Demo», прежде чем он сможет закончиться.
Обратите внимание на значок набора текста здесь, в Facebook Messenger. Это виджет, который вы можете добавить в свои диалоги, чтобы ваш бот выглядел более человечным, как если бы он печатал.
Теперь бот отвечает диалогом формы, который я установил ранее. В моем случае Facebook автоматически загружает мой номер телефона (который я заблокировал!), Поэтому я могу легко щелкнуть по нему и предоставить боту.
И, вау-лах! Вы протестировали своего бота и официально узнали, как создать бота для бизнеса.
Присоединяйтесь к сегодняшнему вебинару с Ларри Кимом!
(Или зарегистрируйтесь для бесплатного воспроизведения)
Узнайте все о НОВЫХ инструментах от MobileMonkey до 10-кратное взаимодействие с Instagram с автоматизацией обмена сообщениями.
Как создать бота для бизнеса: напоминание
Это было много информации, поэтому, возможно, нам следует быстро рассмотреть шаги по созданию бота для бизнеса.
Во-первых, в вашем стремлении узнать, как создать бота для бизнеса, вы захотите решить, что этот бот будет делать для вашего бизнеса. Ответит ли он на вопросы пользователей? Будет ли он собирать информацию о лидах?
Затем вы хотите перейти на MobileMonkey.com и создать бесплатную учетную запись.Это совсем не займет времени, и тогда у вас будет доступ ко многим бесплатным функциям, которые предлагает MobileMonkey!
Затем вы хотите выбрать «Чат-боты» на боковой панели и выбрать между опциями бота «Диалоги» и «Q + A».
Теперь вам нужно создать различные варианты диалога. Вот как пользователь взаимодействует с ботом и как развивается разговор с ботом. С помощью этих параметров вы можете включать варианты ответов, URL-адреса, контактные формы и различные виджеты, которые персонализируют взаимодействие с пользователем.
После заполнения параметров диалога вы захотите добавить триггеры Q + A, чтобы пользователь мог легко получить доступ к вашим диалогам, набирая простые слова или фразы вместо разговора с ботом.
Наконец, когда вы научились создавать бота для бизнеса и создали своего первого бота, вы захотите протестировать бота, чтобы убедиться, что он работает должным образом.
Итак, вы узнали, как создать бота для бизнеса, и теперь можете добавить его на свою страницу Facebook, веб-сайт, WordPress и многое другое!
Важные следующие шаги
- Создайте своего первого чат-бота сегодня после регистрации в MobileMonkey.
- Обсудите и узнайте о чат-ботах с другими энтузиастами. Присоединяйтесь к MobileMonkey Island, нашей группе в Facebook, состоящей из 40 тысяч маркетологов и предпринимателей, готовых поддержать вас.
- Повысьте эффективность своего маркетинга с помощью Chatbot University, бесплатного учебного пособия и области обучения для маркетологов в чате.
ПОЛУЧИТЕ НОВЫЕ ИНСТРУМЕНТЫ INSTAGRAM ОТ MOBILEMONKEY
Увеличивайте число подписчиков в Instagram и вовлекайте их с помощью новых инструментов для влиятельных лиц, художников, брендов и компаний D2C.Зарегистрируйтесь, чтобы первыми использовать инструменты, которые генерируют элитное взаимодействие через личные сообщения Instagram.
Как создать бота для бизнеса: часто задаваемые вопросы (FAQ)
Можно ли зарабатывать деньги с помощью чат-ботов?
Да, вы можете зарабатывать деньги с помощью чат-ботов для электронной коммерции. Чтобы научиться продавать товары в Интернете с помощью чат-ботов, вам потребуется лишь незначительное количество проб и ошибок с вашими собственными продуктами или услугами. А чат-боты — это популярный маркетинговый инструмент в онлайн-бизнесе, потому что хорошо запрограммированный чат-бот — это помощник по продажам для вашего бизнеса 24/7.
Чат-боты также являются одним из самых популярных маркетинговых инструментов электронной коммерции для стимулирования маркетинговых кампаний с прямым откликом. Это особенно актуально для аффилированных лиц, поскольку чат-боты в целом стали обязательным инструментом партнерского маркетинга.
Вовлеченность — это игра в современном мире динамичного цифрового маркетинга, и продажи с помощью веб-чата могут дать вам преимущество, поскольку для ваших клиентов нет ничего более привлекательного, чем наличие виджета живого чата, с которым можно было бы взаимодействовать.
Добавление веб-чата для компонента поддержки клиентов на ваш веб-сайт и другие каналы открывает двери для многих новых возможностей продаж.
Как чат-боты помогают бизнесу?
Список примеров использования чат-ботов и веб-чатов растет с каждым днем. Для бизнеса важно знать, когда и где использовать чат-ботов в своих интересах. Программное обеспечение чат-бота для бизнеса чаще всего используется для маркетинга, поддержки клиентов и продаж. Кроме того, чат-ботов можно использовать в различных маркетинговых каналах, таких как Messenger для Facebook и Instagram, текстовый маркетинг по SMS и чат в реальном времени (также иногда называемый веб-чатом) для вашего веб-сайта.
Платформы чат-ботов, такие как MobileMonkey, работают по всем вышеупомянутым каналам и считаются инструментами кросс-канального маркетинга.
Некоторые из наиболее распространенных вариантов использования чат-ботов включают капельные кампании, автоматизацию распространения контента и рост списков контактов электронной почты.
Чат-боты также часто используются для чата поддержки клиентов, а также в качестве инструментов маркетинга электронной коммерции для продажи большего количества товаров в Интернете.
Чат-боты Facebook Messenger и Instagram Messenger также имеют свои собственные варианты использования.Существует множество шаблонов чат-ботов Facebook Messenger на выбор, когда дело доходит до маркетинга в Facebook Messenger, например, Free Facebook Lead Generator от MobileMonkey.
Даже в последнее время платформы чат-ботов все чаще используют инструменты SMS-маркетинга, которые могут выполнять такие задачи, как отправка текстовых сообщений и текстов напоминаний о встрече, используя ключевые слова SMS в качестве триггеров. Вы даже можете использовать своего SMS-чат-бота, чтобы получить больше подписчиков на SMS.
Какие самые лучшие чат-боты?
Есть много отличных платформ для чат-ботов на выбор.Чтобы определить лучшего чат-бота для вашего бизнеса, вам нужно подумать, для чего вам нужно использовать чат-ботов. Например, вы ищете лучшего маркетингового бота, лучшие инструменты SMS-маркетинга или, может быть, лучшего чат-бота для обслуживания клиентов?
Независимо от ваших сценариев использования вам также необходимо учитывать стоимость и узнать о ценах на чат-ботов. Кроме того, если вы ищете простой в использовании сервис чат-бота, вам нужно найти программное обеспечение для чат-бота с конструктором чат-ботов с перетаскиванием.
Как один из лучших чат-ботов для бизнеса, MobileMonkey имеет собственную запатентованную технологию OmniChatⓇ. OmniChatⓇ от MobileMonkey объединяет решения для чат-маркетинга из Facebook Messenger, Instagram Messenger, программного обеспечения для онлайн-чата на веб-сайтах, маркетинга текстовых SMS-сообщений и других наиболее эффективных маркетинговых каналов — все на одной платформе.
Если вашей целью является создание продвинутых ботов с большим количеством настроек, MobileMonkey также имеет усовершенствованный конструктор чат-ботов, а также мощные инструменты автоматизации маркетинга.
Где используются чат-боты?
Поскольку программное обеспечение чат-ботов является относительно новым для делового мира, некоторые фундаментальные вопросы все еще остаются актуальными, например, где и когда лучше всего использовать чат-ботов?
Есть несколько распространенных мест для использования чат-ботов:
Добавить чат на ваш сайт довольно просто и имеет много преимуществ. Кроме того, существуют многоканальные чат-боты, где вы можете использовать единую платформу чат-бота для подключения всех ваших маркетинговых каналов в чате.Например, чат-бот вашего веб-сайта может быть виджетом живого чата Facebook. Это означает, что вы можете использовать на своих веб-страницах того же чат-бота, что и для Facebook Messenger для бизнеса.
Многие компании делают это, чтобы использовать всемирно известное чат-приложение, такое как Facebook Messenger, для чата с клиентами на WordPress и других веб-сайтах.
Говоря о Messenger, в Facebook и Instagram есть несколько мест для бизнеса, где вы можете использовать чат-ботов в качестве мощного инструмента маркетинга в социальных сетях.Например, вы можете добавить ботов ко всем своим сообщениям в Facebook или Instagram, чтобы использовать их в качестве автоответчика комментариев Facebook.
Количество мест для использования чат-ботов продолжает быстро расти. От традиционных бесплатных рекламных сайтов до новых вариантов использования, таких как использование чат-ботов для конференц-связи Zoom.
Что такое MobileMonkey?
MobileMonkey помогает предприятиям автоматически связываться с клиентами в уже используемых приложениях для обмена сообщениями.
Компании используют MobileMonkey, чтобы мгновенно привлекать и квалифицировать потенциальных клиентов, поддерживать обслуживание клиентов, а также привлекать и повторно привлекать клиентов с помощью обмена сообщениями один на один в режиме реального времени в универсальном чате и платформе автоматизации для SMS, онлайн-чата , Facebook Messenger, Instagram и WhatsApp.
MobileMonkey — лучшая платформа чат-ботов для маркетинга, продаж и поддержки клиентов, объединенная во всех приложениях для обмена сообщениями на базе технологии OmniChatⓇ.
Как сделать чат-бота | Создание чат-бота
Существует множество способов создания чат-бота, которые делают это пространство настолько интересным, но создание чат-ботов не должно быть сложным процессом. Что важно, так это найти правильный тип чат-бота, который может сыграть важную роль в улучшении вашего бизнеса, обслуживания клиентов и маркетинговых кампаний.
Давайте рассмотрим, как создать чат-бота и что вам нужно учесть. Если вам нужно больше информации о чат-ботах, ознакомьтесь с нашим Руководством по чат-ботам, в котором подробно рассказывается обо всем, что касается чат-ботов.
Способы создания чат-бота
Давайте сначала обсудим инструменты разработки чат-ботов и то, как они соотносятся с типом чат-бота, который вы, возможно, захотите создать. Быстрый поиск в Google позволит вам увидеть, что существует множество платформ для чат-ботов. Однако основных способов создания чат-ботов всего три:
1.Создайте чат-бота с помощью Visual Tool
Первый — с помощью визуального инструмента. Эти инструменты созданы в первую очередь для создания ботов по сценариям. Эти инструменты, такие как Chatfuel, Motion.ai, Manychat, Flowxo и Octane.ai, отлично подходят для создания простых скриптовых ботов.
Чтобы создать чат-бота с этими инструментами, вам нужно визуально определить поток разговора бота. Например, вам нужно будет определить, какие варианты выбора будет у пользователя на каждом этапе разговора, а затем определить, как бот будет реагировать, когда пользователь щелкает данный вариант.Вам нужно будет определить дальнейшие варианты выбора, которые он разрешит в этот момент, и так далее, пока взаимодействие не будет завершено или завершено пользователем.
Каждый из этих инструментов имеет несколько разную направленность, и некоторые из них позволяют настраивать больше, чем другие, включая «интеллектуальные» функции, например, возможность реагировать на слово или фразу. Упор делается на простоту использования, а не на функциональность. Настоящие настраиваемые функции, необходимые для интеллектуальных ботов и ботов приложений, такие как настраиваемый искусственный интеллект, системная интеграция и настраиваемые графические интерфейсы, невозможны с использованием этих типов инструментов.
2. Как создать чат-бота с нуля
Второй способ создания чат-бота путем написания кода чат-бота. Это означает использование языка программирования и соответствующих инструментов и библиотек разработчика для создания чат-бота. Использование кода дает много преимуществ по сравнению с использованием визуального инструмента. Нет ограничений на настройку (в пределах возможностей чат-платформы), и процессом разработки можно управлять профессионально, используя все инструменты и подходы, существующие для разработки программного обеспечения, включая контроль версий и тестирование.
Если требуется настройка или интеграция с внутренними системами, лучше всего закодировать бота. Конечно, проблемы с созданием бота таким способом — это те же проблемы, что и при разработке любого программного обеспечения.
Для программирования программного обеспечения в целом требуется высокий уровень знаний. Хотя создание бота в коде не является особенно сложной задачей для разработчика программного обеспечения, для этого требуются определенные знания и понимание. С другой стороны, бот со сценарием может быть построен очень быстро на платформе без кода без каких-либо знаний.
Другая проблема заключается в том, что разработчики программного обеспечения могут снова и снова писать общие функции с нуля, дублируя усилия, особенно когда нет хорошего источника общих стандартных компонентов. Это приводит к большим потерям усилий и потенциально неоптимальным решениям общих проблем.
Разработчики, особенно когда их заставляют сокращать время из-за нехватки времени, могут в конечном итоге получить архитектуру и кодовую базу, которая не является расширяемой или даже простой в использовании.
Чат-бот, разработанный с помощью кода, может быть скриптовым ботом, интеллектуальным ботом или прикладным ботом.
3. Создание интеллектуальных чат-ботов
Интеллектуальные боты создаются с использованием ИИ, включая инструменты понимания естественного языка, такие как Watson, DialogFlow, Wit.ai и Rasa NLU. Вам не нужно быть специалистом по данным, чтобы использовать эти инструменты, и некоторая работа может быть выполнена не разработчиками с использованием графического интерфейса. Однако необходим разработчик для интеграции инструмента естественного языка с действиями, которые будет выполнять бот.
Упомянутые выше инструменты позволяют разработчикам определять «намерение», связанное с фразой, которая произносится или записывается на естественном языке. Например, все следующие фразы предназначены для бронирования рейса.
- Я хочу забронировать рейс в Париж.
- Мне нужно ехать из Дубая в Париж.
- Мне нужен рейс в Париж из Дубая.
Разработчик сможет связать все приведенные выше фразы (и многие другие версии) с намерением BOOK_FLIGHT.Всякий раз, когда любая из этих фраз (и фразы, которые вычисляет инструмент NLU, являются связанными фразами) записываются или произносятся чат-боту, система NLU будет вызывать функцию в коде чат-бота с BOOK_FLIGHT в качестве параметра намерения. Затем разработчик добавит код, который действует в соответствии с намерением BOOK_FLIGHT. Система NLU также будет передавать другие соответствующие параметры, которые система NLU извлекла из разговора, например, соответствующие аэропорты и соответствующие даты.
Важно отметить, что многие движки NLU в настоящее время предлагают только размещенное решение.Таким образом, как и в случае с решениями для разработки ботов без кода, с этими механизмами вы не сможете легко получить доступ к своим данным или управлять ими, реализовать контроль версий, повторно использовать работу между ботами или переключать системы.
Создание разговора
Точно так же, как вы разрабатываете графический интерфейс для приложения, чат-ботам нужен дизайн разговора. Это определит, насколько естественным будет ощущение взаимодействия с чат-ботом. Это все еще очень редкая дисциплина, и мы только начинаем видеть появление некоторых классов и руководств.Дизайн разговора — это сочетание психологии, UX-дизайна и копирайтинга. При нынешнем состоянии дизайна разговоров мы начинаем видеть появление некоторых передовых практик. Однако платформа, которую вы используете для создания своего чат-бота, или платформа обмена сообщениями, используемая в качестве канала, изменит то, как вы применяете эти передовые практики.
ПоначалуConversation Design может показаться простым, но на самом деле это непростая задача. Вы знаете, как вы иногда интерпретируете электронное письмо или текстовое сообщение из-за отсутствия визуальных подсказок? То же самое и с чат-ботами.Как разработчик беседы, вы должны начать с глубокого понимания своей личности, прежде чем начинать, потому что это повлияет на то, как вы будете писать сообщения, чтобы поддерживать их заинтересованность. Вам необходимо разработать такой разговор, который поощрял бы очередность; вы не хотите, чтобы ваш пользователь смотрел разговор, не зная, что сказать или сделать дальше.
Вы можете узнать больше о дизайне разговоров на онлайн-курсе Conversation Design Institute, который поможет вам освоить это ремесло.
Данные для обучения вашего NLU
Это одна из самых сложных задач ИИ и, следовательно, НЛП.Создание, маркировка и поддержание чистого набора данных для обучения вашего NLU — сложная задача. Других способов поставить действительно нет. Вот почему на рынке есть множество инструментов, которые помогут вам управлять набором данных. Вы можете начать с малого. Некоторые NLU позволят вам начать работу с ограниченным набором данных, только с дюжиной высказываний для намерения, но по мере использования чат-бота вы получаете все больше и больше данных для маркировки и поддержки.
Ваш набор данных — самая важная часть вашего чат-бота. Он определит, может ли ваш NLU понять намерение, может ли извлекать сущности, может ли заполнять слот и многое другое.Это задача, к которой нельзя относиться легкомысленно. Наиболее частая проблема, с которой вы столкнетесь, — это сбивание вашего NLU, и это может быть по разным причинам:
- Намерения слишком расплывчаты
- Подобные высказывания обнаруживаются в нескольких намерениях
- Высказывания чрезмерно соответствуют определенному слову
- Отсутствие синонимов в ваших высказываниях
- Структуры ваших предложений всегда одинаковы
Вы можете прочитать наши рекомендации NLU, чтобы помочь создать отличный набор данных.
Использование богатых компонентов в чат-ботах
Кодирование чат-бота также позволяет разработчикам включать сложные графические интерфейсы в поведение чат-бота. Эти интерфейсы можно использовать только в том случае, если чат-платформа позволяет их использовать. Например, в SMS невозможно добавить расширенные компоненты, поэтому чат-бот по SMS не будет иметь связанного с ним сложного графического виджета.
Некоторые платформы, такие как WeChat и Facebook Messenger, позволяют разработчикам размещать веб-представления в чате.Это означает, что нет ограничений на то, какой интерфейс может быть показан. Богатые компоненты часто намного более эффективны, чем текстовые интерфейсы для работы на настольных компьютерах и мобильных устройствах, и поэтому должны всегда использоваться, когда это дает конечному пользователю преимущество.
Лучший фреймворк для создания чат-бота
Botpress — это фреймворк, который позволяет разработчикам легко создавать ботов с помощью кода. Что отличает Botpress от других фреймворков для создания ботов с кодом, так это то, что он имеет компонентную архитектуру, которая допускает высокую степень повторного использования общих компонентов.Это означает, что общие функции ботов, такие как подписка или трансляция, не нужно создавать с нуля. Вместо этого соответствующий компонент может быть добавлен к боту или доступен через api, мгновенно предоставив ему необходимую функциональность. Однако эту функциональность можно дополнительно настроить, отредактировав исходный код рассматриваемого компонента. Таким образом, Botpress предоставляет все преимущества кодирования бота с нуля, но значительно ускоряет и упрощает создание ботов из-за повторного использования модулей кода.
Модульная архитектура не только выгодна с точки зрения обеспечения высокой степени повторного использования компонентов, но также полезна тем, что заставляет разработчиков использовать высоко расширяемую архитектуру передового опыта для создания своих ботов. Это также означает, что Botpress фактически стал промежуточным ПО для сторонних инструментов разработки чат-ботов, таких как Botkit и Microsoft Bot Framework.
Кроме того, Botpress представил инструменты, которые еще больше увеличивают продуктивность создателей ботов.Например, существует разделение ролей между теми, кто создает и управляет поведением бота (разработчики), и теми, кто создает и управляет контентом бота (создатели контента и персонал первой линии) и управляет учетными записями пользователей. Botpress имеет встроенные в структуру функции для управления этим разделением, такие как безопасность на основе ролей и многопользовательское управление. Botpress изобрел Universal Message Markdown, который является широко используемым языком разметки в пространстве ботов, чтобы решить эту проблему.
Конструктор чат-ботов
Третий способ создания чат-бота — использовать готовый инструмент. Очевидно, что выполнение этого ограничивает вас теми функциями, которые разрешены поставщиком. Скорее всего, это будет процесс настройки бота, а не его создание. Обычно такого рода решения нацелены на конкретную отраслевую вертикаль и предназначены для крупных предприятий. Эти предприятия способны оценить компромисс между удобством использования функций аутсорсинга и долгосрочными преимуществами, связанными с контролем над своими данными и лежащими в их основе процессами.
Как создать чат-бота: Резюме
Вот и все! Теперь вы узнали самые важные вещи, которые вам нужно знать, чтобы начать свой новый бот-проект. Я надеюсь, что вы лучше понимаете шаги, необходимые для автоматизации разговоров.
Итак, есть много способов сделать своего собственного чат-бота. Методы создания ботов отражают методы, доступные для создания программного обеспечения в более общем плане. Существует четкая аналогия между созданием чат-бота и созданием веб-сайта.Можно создать веб-сайт, используя платформу без кода, такую как Wix, или запрограммировать его с нуля, используя HTML и CSS. Между этими двумя подходами находится подход WordPress, в котором веб-сайт создается из компонентов. Использование Botpress для создания бота эквивалентно использованию WordPress для создания веб-сайта.
Статьи по теме
Почему будущее за чат-ботами
Делаете ли вы какие-либо из следующих ошибок при создании чат-ботов?
Изучение будущего взаимодействия с клиентами с помощью ботов
Почему каждое агентство должно создавать ботов по обслуживанию клиентов для своих корпоративных клиентов
Что такое разговорный искусственный интеллект (AI)
Начало работы — Создайте своего первого диалогового бота — Команды
- 6 минут на чтение
В этой статье
В этом руководстве вы узнаете, как создавать, запускать и развертывать бот-приложение Teams.Бот действует как посредник между пользователем Teams и веб-службой. Пользователи могут общаться с ботом, чтобы быстро получать информацию, запускать рабочие процессы или делать что-нибудь еще, что может делать ваш веб-сервис.
Важно
В настоящее время боты доступны в правительственном облаке сообщества (GCC), но не доступны в GCC-High и Министерстве обороны (DOD).
Прежде чем начать
Убедитесь, что ваша среда разработки настроена, установив необходимые компоненты.
Создайте свой проект
Используйте набор инструментов Teams для создания своего первого проекта:
Откройте код Visual Studio.
Щелкните значок Teams на боковой панели, чтобы открыть набор инструментов Teams.
Выберите Создать новый проект .
Выберите Создайте новое приложение Teams .
В разделе Выберите возможности выберите Bot , снимите флажок Tab и выберите OK .
В разделе Регистрация бота выберите Создать новую регистрацию бота .
В разделе Programming Language выберите JavaScript .
Выберите папку рабочего пространства. В папке рабочей области будет создана папка для создаваемого вами проекта.
Введите подходящее имя для своего приложения, например
helloworld
. Название приложения должно содержать только буквенно-цифровые символы. Нажмите Введите , чтобы продолжить.
Ваше приложение Teams будет создано в течение нескольких секунд.
Используйте интерфейс командной строки teamfx
для создания своего первого проекта. Начните с папки, в которой вы хотите создать папку проекта.
teamfx новые
Интерфейс командной строки задает несколько вопросов для создания проекта. Каждый вопрос расскажет вам, как на него ответить (например, использовать клавиши со стрелками для выбора варианта). Когда вы ответили на вопрос, подтвердите свой выбор, нажав Введите .
- Выберите Создать новое приложение Teams .
- Выберите Bot и отмените выбор Tab .
- Выберите Создайте новую регистрацию бота .
- Выберите JavaScript в качестве языка программирования.
- Нажмите Введите , чтобы выбрать папку рабочего пространства по умолчанию.
- Введите подходящее имя для своего приложения, например
helloworld
. Название приложения должно состоять только из буквенно-цифровых символов.
Ваш проект будет создан после того, как будут даны ответы на все вопросы.
Ознакомьтесь с исходным кодом
Если вы хотите пока пропустить этот раздел, вы можете запустить приложение локально.
Расширение обмена сообщениями использует Bot Framework, чтобы позволить пользователю взаимодействовать с вашим сервисом через диалог. После строительных лесов ваш проект будет выглядеть так:
Код бота хранится в каталоге bot
. Бот / teamBot.js
является основной точкой входа для бота, а диалоги хранятся в каталоге dialogs
.
Подсказка
Ознакомьтесь с ботами за пределами Teams, прежде чем интегрировать своего первого бота в Teams. Вы можете найти дополнительную информацию о ботах, просмотрев руководства по службе Azure Bot.
Запустите приложение локально
Teams Toolkit позволяет размещать ваше приложение локально. Для этого:
- Приложение Azure Active Directory зарегистрировано в клиенте M365.
- Манифест приложения отправляется в Центр разработчиков для Teams.
- API запускается локально с помощью основных инструментов Функций Azure для поддержки вашего приложения. Установлен
- ngrok, который используется для создания туннеля между Teams и кодом вашего бота.
Чтобы собрать и запустить приложение локально:
В Visual Studio Code нажмите клавишу F5 , чтобы запустить приложение в режиме отладки.
При первом запуске приложения загружаются все зависимости и создается приложение. Окно браузера автоматически открывается после завершения сборки.Это может занять 3-5 минут.
Ваш веб-браузер запустит приложение. Если будет предложено открыть рабочий стол Teams, выберите Отменить , чтобы оставаться в браузере. Вам также может быть предложено переключиться на рабочий стол Teams в другое время; в этом случае выберите веб-приложение Teams.
Вам может быть предложено войти в систему. Если это так, войдите в свою учетную запись M365.
Когда будет предложено установить приложение в Teams, выберите Добавить .
После загрузки приложения вы попадете прямо в сеанс чата с ботом. Вы можете ввести
intro
, чтобы показать вводную карточку, иshow
, чтобы показать свои данные из Microsoft Graph. (Это потребует утверждения дополнительных разрешений).Отладка работает нормально — попробуйте сами! Откройте файл
bot / dialogs / rootDialog.js
и найдите методtriggerCommand (...)
. Установите точку останова для случая по умолчанию.Затем введите текст.
При нажатии клавиши F5 набор инструментов Teams:
- Регистрирует приложение в Azure Active Directory.
- Регистрирует приложение для «боковой загрузки» в Microsoft Teams.
- Запускает серверную часть вашего приложения локально с помощью инструментов ядра функций Azure.
- Запускает туннель ngrok, чтобы команды могли взаимодействовать с вашим приложением.
- Запускает Microsoft Teams с помощью команды, указывающей Teams на загрузку неопубликованного приложения.
Для успешного запуска приложения в Teams у вас должна быть учетная запись разработки Microsoft 365, которая позволяет загружать неопубликованные приложения. Для получения дополнительной информации об открытии счета см. Предварительные требования.
Важно
В настоящее время приложения для загрузки неопубликованных приложений доступны в правительственном облаке сообщества (GCC), GCC-High и DOD.
Подсказка
Проверьте наличие проблем перед загрузкой неопубликованного приложения с помощью инструмента проверки приложения, который включен в набор инструментов. Исправьте ошибки, чтобы успешно загрузить приложение.
Разверните приложение в Azure
Развертывание состоит из двух этапов. Сначала создаются необходимые облачные ресурсы (также известные как подготовка), затем код, составляющий ваше приложение, копируется в созданные облачные ресурсы.
Откройте код Visual Studio.
Выберите Teams Toolkit на боковой панели, щелкнув значок Teams.
Выберите Provision in the Cloud .
При необходимости выберите подписку для использования ресурсов Azure.
Примечание
Для размещения вашего приложения всегда используются некоторые ресурсы Azure.
Диалоговое окно предупреждает о том, что при запуске ресурсов в Azure могут возникнуть расходы. Нажмите Положение .
В процессе подготовки создаются ресурсы в облаке Azure.На это нужно время. Вы можете следить за прогрессом, наблюдая за диалогами в правом нижнем углу. Через несколько минут вы увидите следующее уведомление:
После завершения подготовки выберите Развернуть в облаке . Как и в случае с подготовкой, этот процесс занимает некоторое время. Вы можете следить за процессом, наблюдая за диалогами в правом нижнем углу. Через несколько минут вы увидите уведомление о завершении.
В окне вашего терминала:
Запустите
teamfx provision
.резерв teamfx
Вам может быть предложено войти в свою подписку Azure. При необходимости вам будет предложено выбрать подписку Azure для использования для ресурсов Azure.
Примечание
Для размещения вашего приложения всегда используются некоторые ресурсы Azure.
Запустите
teamfx deploy
.Развертывание командfx
Примечание
В чем разница между подготовкой и развертыванием?
На этапе Provision создаются ресурсы в Azure и M365 для вашего приложения, но без кода (HTML, CSS, JavaScript и т. Д.)) копируется в ресурсы. На этапе Deploy код вашего приложения копируется в ресурсы, созданные на этапе подготовки. Обычно развертывание выполняется несколько раз без предоставления новых ресурсов. Поскольку этап подготовки может занять некоторое время, он отделен от этапа развертывания.
После завершения этапов подготовки и развертывания:
- В Visual Studio Code откройте панель отладки ( Ctrl + Shift + D / ⌘⇧-D или View> Run )
- Выберите Launch Remote (Edge) из раскрывающегося списка конфигурации запуска.
- Нажмите кнопку Play, чтобы запустить приложение — теперь оно работает удаленно из Azure!
Перед развертыванием приложение выполнялось локально:
Серверная часть работает с использованием Базовых инструментов функций Azure .
Конечная точка HTTP приложения, в которую Microsoft Teams загружает приложение, запускается локально.
Развертываниевключает в себя подготовку ресурсов в активной подписке Azure и развертывание (загрузку) кода серверной части и внешнего интерфейса для приложения в Azure.Серверная часть использует различные службы Azure, включая службу приложений Azure и службу Azure Bot.
См. Также
Создание ресурса бота с помощью службы Azure Bot — служба ботов
- Читать 3 минуты
В этой статье
ПРИМЕНЯЕТСЯ К: SDK v4
Ресурс Azure Bot позволяет зарегистрировать своего бота в службе Azure Bot.Вы можете создавать, подключать и управлять ботами для взаимодействия с пользователями, где бы они ни находились, от вашего приложения или веб-сайта до Teams, Messenger и многих других каналов. Чтобы узнать, как создать бота, см. Статью для быстрого старта, применимую к вашему языку программирования.
Подсказка
Если вы новичок в разработке ботов, мы рекомендуем использовать Bot Framework Composer. Вы можете продолжать использовать SDK для уже созданных вами ботов. Однако мы рекомендуем использовать Composer для новых разработок.
Предварительные требования
Создать ресурс
Создайте ресурс Azure Bot , который позволит вам зарегистрировать своего бота в службе Azure Bot.
Предупреждение
Web App Bot и Регистрация каналов бота будет прекращена, но существующие ресурсы будут продолжать работать. Вместо этого следует использовать Azure Bot .
Перейдите на портал Azure.
На правой панели выберите Создать ресурс .
В поле поиска введите bot , затем нажмите Введите .
Выберите карту Azure Bot .
Выберите Создать .
Введите требуемые значения. На следующем рисунке показано, что Create new Microsoft App ID выбрано.
Вы также можете выбрать Использовать существующую регистрацию приложения и ввести свой существующий идентификатор приложения и пароль .
Выбрать Просмотр + создать .
Если проверка прошла успешно, выберите Создать .
Выберите Перейти к группе ресурсов . Вы должны увидеть бота и соответствующие ресурсы Azure Key Vault , перечисленные в выбранной вами группе ресурсов.
Подсказка
Секрет приложения (пароль) хранится в хранилище ключей, и на каждую группу ресурсов приходится одно хранилище ключей. Вместо копирования и хранения конфиденциальных данных рекомендуется использовать хранилище ключей.
Выберите Получите SDK с Github , чтобы создать своего бота с помощью Bot Framework SDK.
Хранилище ключей Azure
Когда Azure создает ресурс Azure Bot, он также генерирует идентификатор приложения и пароль и сохраняет пароль в Azure Key Vault.
Key Vault — это служба, которая обеспечивает централизованное управление секретами с полным контролем над политиками доступа и журналом аудита. Дополнительные сведения см. В разделе Использование справочников по хранилищу ключей для службы приложений и функций Azure.Обратите внимание, что за использование услуги с вас будет взиматься небольшая плата. Для получения дополнительной информации см. Цены на Key Vault.
Идентификатор приложения и пароль
Для настройки бота для развертывания вам понадобится ресурс для бота Azure, идентификатор приложения и пароль . Вы назначите их значения связанным переменным: MicrosoftAppId
и MicrosoftAppPassword
, содержащимся в файле конфигурации вашего проекта бота. Файл различается в зависимости от языка программирования, который вы используете для создания бота.
Файл appsettings.json
содержит следующие настройки:
{
"MicrosoftAppId": "<идентификатор вашего приложения>",
"MicrosoftAppPassword": "<ваш пароль>"
}
Файл .env
содержит следующие настройки:
MicrosoftAppId = "<идентификатор вашего приложения>"
MicrosoftAppPassword = "<ваш пароль>"
Файл application.properties
содержит следующие настройки:
MicrosoftAppId = "<идентификатор вашего приложения>"
MicrosoftAppPassword = "<ваш пароль>"
Конфигурация .Файл py
содержит следующие настройки:
APP_ID = os.environ.get ("MicrosoftAppId", "<идентификатор вашего приложения>")
APP_PASSWORD = os.environ.get ("MicrosoftAppPassword", "<ваш пароль>")
Получить идентификатор приложения ресурсов для ботов Azure
- Перейдите на портал Azure.