- Делаем своего первого чат-бота
- Уровень: начинающий
- Первая строка
- Переменные
- Расчёт дня рождения
- Что ещё посмотреть
- Создание бота для Microsoft Teams Build a bot for Microsoft Teams
- Назначение Your assignment
- Что вы узнаете What you’ll learn
- Прежде чем начать Before you begin
- 1. Создайте проект приложения 1. Create your app project
- 2. Определение соответствующих компонентов проекта приложения 2. Identify relevant app project components
- Конфигурации приложений App configurations
- Скафаолдинг приложений App scaffolding
- 3. Настройка безопасного туннеля для приложения 3. Set up a secure tunnel to your app
- 4. Настройте бота 4. Configure your bot
- 5. Сборка и запуск приложения 5. Build and run your app
- 6. Загрузка нео sideload бота в Teams 6. Sideload your bot in Teams
- 7. Тестирование бота 7. Test your bot
- Прекрасно Well done
- Устранение неполадок Troubleshooting
- Бот не подключен к Teams Bot isn’t connected to Teams
Делаем своего первого чат-бота
Уровень: начинающий
Материал рассчитан на тех, кто в жизни не написал ни строчки кода. Если вы уже в курсе основ программирования, прочитайте лучше о чистых функциях.
Многие слышали про чат-ботов и роботов для общения: им пишешь, они отвечают, получается диалог с машиной. Чат-бот может рассказать анекдот, поискать за вас в интернете, забронировать столик в ресторане и что угодно ещё, чему его обучат создатели.
Иногда такое общение выглядит как общение с человеком. Может даже показаться, что там работает искусственный интеллект — и иногда так действительно бывает. Но часто всё проще: это алгоритм, который умеет распознавать некоторые ваши слова и давать ответы по заранее заготовленным шаблонам. Чем алгоритм более разветвлённый, тем естественнее и полезнее бот.
Давайте сделаем собственного чат-бота с очень простым алгоритмом. Позже вы сможете усложнить его, как захотите. Но сначала — самая база для тех, кто никогда не писал код.
Обычно, чтобы создать какую-то программу, нужно выполнить несколько действий: например, скачать программу-обработчик языка, завести проект, написать задуманную программу, скомпилировать. И только потом ей можно пользоваться. Но мы пойдём по более простому пути: напишем программу, работающую прямо в браузере, через который вы читаете эту статью. Сделать это можно лишь на компьютере, на телефоне придётся пользоваться ботом.
Мы будем решать задачу на языке JavaScript — это язык программирования, который встроен в ваш браузер и на котором написать код можно прямо сейчас, ничего не устанавливая.
Чтобы сделать что-то на JavaScript, нужно открыть консоль. Почти во всех современных браузерах это делается сочетанием клавиш Shift + Ctrl + J или Cmd + Alt + J. Справа или снизу появится дополнительное окно, в котором уже будет что-то происходить:
Если у вас не открылась консоль, зайдите в верхнее меню и поищите слово «Консоль». Обычно этот пункт прячется в разделе «Инструменты разработчика».
Когда вы открываете консоль, она сразу готова выполнять ваши команды. Если в неё вставить программу, написанную на JavaScript, и нажать Enter, ваш браузер её реализует. Если в коде есть ошибки, консоль сама подсветит их. Можно отправлять в неё программу кусками или даже построчно: браузер будет помнить всё, что происходило в вашей программе, пока вы не перезагрузите страницу.
Первая строка
В консоли можно не только писать код, но и выводить туда результаты. Давайте для начала сделаем самую простую программу, которая отобразит в консоли слово «Привет!». Для этого используем команду console.log(‘Привет!’);
Вставим её в консоль и нажмём Enter:
Поздравляем, вы только что написали свою первую программу для компьютера! Она очень простая: компьютер всего лишь говорит «Привет!». Но оцените момент: это вы его научили так говорить. Попробуйте научить его и другим словам.
Если написать несколько команд, получим сообщение из нескольких строк:
Вот мы и начали создавать своего чат-бота, который нас уже поприветствовал в консоли. Теперь сделаем так, чтобы мы тоже могли ему что-нибудь ответить. Для этого нам понадобятся переменные.
Переменные
Чтобы дать понять компьютеру, что у нас сейчас будет переменная, нужно сказать ему слово var, после которого вписать название переменной — так нам проще к ней обращаться. Например, следующая строка создаст переменную name и положит в неё слово «Код»:
Название тут может быть практически любым, главное, чтобы оно начиналось с буквы. По-русски переменные называть нельзя, только буквами латинского алфавита. Можно было бы использовать вариант imya или zovut, но программисты считают, что чем проще название переменной, тем лучше.
Теперь посмотрим содержимое элемента. Следующая команда выведет то, что сейчас записано в переменной name:
Можно посмотреть, какое сегодня число. Это внутренняя системная переменная. Строго говоря, это не совсем переменная, но для начала давайте считать так:
Но это мы всё смотрим во внутренности компьютера. А нам нужно спросить что-то у пользователя. Чтобы мы могли ввести новые данные в нашу программу, используем команду prompt()
Вставьте в консоль команду var name = prompt(‘Как вас зовут?’); и посмотрите, что произойдёт. Компьютер выведет окно и будет ждать, пока вы внесёте туда своё имя. Интерфейс выглядит красиво: давайте в диалоге общаться с компьютером не через консоль, а через такие появляющиеся окошки. Для этого напишем новые команды:
Пусть компьютер проявит вежливость и скажет, что ему приятно с нами познакомиться. Чтобы он смог обратиться к нам по имени, используем переменную name — в ней как раз хранится то, что мы ответили компьютеру:
Чтобы вывести осмысленную фразу, мы взяли начало ‘Привет, ‘, затем с помощью плюсика соединили со значением переменной name , которая хранит наше имя, а потом ещё одним плюсиком добавили к фразе концовку. Чтобы компьютер знал, что мы хотим вывести на экран текст, а не числа, используются кавычки. Компьютер воспринимает как текст то, что внутри кавычек. И выводит точно в том виде, в котором написано.
Расчёт дня рождения
Давайте соединим все наши команды в одну программу и допишем несколько новых фраз:
Обратите внимание: у нас появился новый вопрос и новая переменная hobby, в которой хранится информация об увлечении. А ещё — комментарии, которых можно добавлять сколько угодно. JavaScript не обращает внимания на то, что написано после двух косых черт:
Теперь у вас есть всё, что нужно, чтобы написать свою версию чат-бота для общения. Если продолжите решать наши задачки, то сможете научить компьютер по-разному реагировать на ваши ответы и даже вести осмысленный диалог.
Что ещё посмотреть
Вот кое-что, что может вам пригодиться при создании первого чат-бота.
performance.now() — эта команда возвращает время в миллисекундах с момента открытия текущей страницы. Можно поделить на 1 000, и вы узнаете, сколько секунд вы сидите на какой-то странице. Если поделить на 60 000 — сколько минут.
setTimeout() — позволяет выполнить любой код через определённое время. Например, вы можете задать вопрос и предоставить ровно минуту на размышление, после чего появится окно для ответа.
setInterval() — то же самое, что и предыдущее, но выполнение кода повторяется с равномерным интервалом, например раз в 5 минут. Если вы хотите научить чат-бота, чтобы он раз в час напоминал попить воды, эта команда — то, что нужно.
Как пользоваться этими штуками, мы расскажем в одной из будущих статей, но вы всегда можете самостоятельно поискать в интернете, как они работают. Пользуясь этими тремя возможностями JavaScript, получится создать неплохого бота, который будет следить за вашей продуктивностью и интервалами работы. Подписывайтесь на «Код», чтобы не пропустить новые разборы.
Создание бота для Microsoft Teams Build a bot for Microsoft Teams
В этом руководстве вы создадим базовое бот-приложение. You’ll build a basic bot app in this tutorial. Бот действует как посредник между пользователями Teams и веб-службой. A bot acts as an intermediary between Teams users and your web service. Люди могут общаться с ботом, чтобы быстро получить информацию или инициировать рабочий процесс и задачи, выполняемые вашей службой. People can chat with a bot to quickly get information or initiate workflows and tasks performed by your service.
Назначение Your assignment
На рабочем месте создано приложение Teams, использующее вкладки для получения важных контактных данных. Your workplace created a Teams app that uses tabs to surface important contact information. Например, у коллег есть быстрый доступ к номеру телефона службы поддержки. For example, colleagues have quick access to the help desk phone number. Но что делать, если бы люди могли обращаться в службу поддержки с помощью чат-робота? But instead of calling, what if people could contact the help desk using a chatbot? Ваш начальник просит вас узнать, как быстро вы можете получить базовый бот для бесед в Teams. Your boss asks you to look at how quickly you can get a basic conversational bot up and running in Teams.
Что вы узнаете What you’ll learn
- Создание проекта приложения и бота с помощью microsoft Teams набор средств для Visual Studio Code Create an app project and bot using the Microsoft Teams Toolkit for Visual Studio Code
- Определение некоторых конфигураций приложений и скаолдинг, релевантный для ботов Identify some of the app configurations and scaffolding relevant to bots
- Локальное приложение Host an app locally
- Настройка бота для Teams Configure a bot for Teams
- Загрузка неогрузки и тестирование бота в Teams Sideload and test a bot in Teams
Прежде чем начать Before you begin
Если вы еще не знаете и не установили необходимые условия для разработки Teams. If you haven’t yet, make sure you understand and install the Teams development prerequisites.
1. Создайте проект приложения 1. Create your app project
Microsoft Teams набор средств поможет вам настроить следующие компоненты для вашего приложения: The Microsoft Teams Toolkit helps you set up the following components for your app:
- Конфигурации приложений и скафолдинг, релевантные для ботов App configurations and scaffolding relevant to bots
- Бот, автоматически зарегистрированный в службе ботов Microsoft Azure Bot that’s automatically registered with the Microsoft Azure Bot Service
Если вы еще не создавали проект приложения Teams, возможно, вам будет полезно следовать этим инструкциям, чтобы подробнее объяснить проекты. If you haven’t created a Teams app project before, you might find it helpful to follow these instructions that explain projects in more detail.
- В Visual Studio кода выберите Microsoft Teams в левой панели действий и выберите «Создать новое приложение Teams».
- При запросе во sign in with your Microsoft 365 development account. When prompted, sign in with your Microsoft 365 development account.
- On the Add capabilities screen, select Bot then Next. On the Add capabilities screen, select Bot then Next.
- Введите имя приложения Teams. Enter a name for your Teams app. (Это имя приложения по умолчанию, а также имя каталога проекта приложения на локальном компьютере.) (This is the default name for your app and also the name of the app project directory on your local machine.)
- Go to Configure bot and select Create a new Bot then Create Bot Registration. Go to Configure bot and select Create a new Bot then Create Bot Registration. В случае успеха новый бот будет иметь зарегистрированный статус. If successful, your new bot will have a Registered status.
- Выберите «Готово» в нижней части экрана и выберите расположение для создания проекта. Select Finish at the bottom of the screen and choose a location to create your project.
2. Определение соответствующих компонентов проекта приложения 2. Identify relevant app project components
Большая часть конфигураций и скафаолдинга приложений автоматически заданная при создании проекта с помощью командной набор средств. Much of the app configurations and scaffolding are set up automatically when you create your project with the Teams Toolkit. Рассмотрим основные компоненты для создания бота. Let’s look at the main components for building a bot.
Конфигурации приложений App configurations
Чтобы просмотреть или обновить конфигурации бота, выберите App Studio в наборе средств и перейдите к ботам. To view or update your bot’s configurations, select App Studio in the toolkit and go to Bots.
Скафаолдинг приложений App scaffolding
Скафолдинг приложения предоставляет файл, расположенный в корневом каталоге проекта, для обработки того, как бот обрабатывает действия в Teams (например, как бот реагирует на определенные сообщения, такие как botActivityHandler.js «Hello»). The app scaffolding provides a botActivityHandler.js file, located in the root directory of your project, for handling how your bot processes activities in Teams (for example, how the bot responds to specific messages such as «Hello»).
3. Настройка безопасного туннеля для приложения 3. Set up a secure tunnel to your app
Для тестирования разберем ваше приложение на локальном веб-сервере (порт 3978). For testing purposes, let’s host your app on a local web server (port 3978).
- Если вы еще не сделали этого, установите ngrok. If you haven’t already, install ngrok.
- В терминале запустите ngrok http -host-header=rewrite 3978 . In a terminal, run ngrok http -host-header=rewrite 3978 .
- Скопируйте URL-адрес HTTPS в выходных данных (например, ),так как https://468b9ab725e9.ngrok.io Teams требует подключения HTTPS. Copy the HTTPS URL in the output (for example, https://468b9ab725e9.ngrok.io ) since Teams requires HTTPS connections.
С помощью этого URL-адреса Teams (для которого требуются подключения ПО HTTPS) будет иметь туннель, в котором размещено приложение (через порт localhost 3978). With this URL, Teams (which requires HTTPS connections) will be able tunnel to where you’re hosting your app ( localhost on port 3978).
4. Настройте бота 4. Configure your bot
Чтобы использовать бота в Teams, необходимо зарегистрировать его в службе ботов Azure. To use a bot in Teams, you must register it with the Azure Bot Service. Это делается автоматически при настройках приложения с помощью командной набор средств. Lucky for you, this is done automatically when you set up your app using the Teams Toolkit.
Вам по-прежнему необходимо указать адрес конечной точки для получения и обработки пользовательских сообщений (то есть запросов), отправленных боту. You still must specify an endpoint address to receive and process user messages (i.e., requests) sent to the bot. Как правило, URL-адрес https://HOST_URL/api/messages выглядит. Typically, the URL looks like https://HOST_URL/api/messages . Это можно быстро настроить в наборе средств. You can configure this quickly in the toolkit.
- В Visual Studio code выберите Microsoft Teams в левой панели действий и выберите команду «Открыть Microsoft Teams набор средств.
- Перейдите в > регистрации существующих ботов и выберите бота, созданного во время установки. Go to Bots > Existing bot registrations and select the bot you created during setup.
- В поле адреса конечной точки бота введите URL-адрес ngrok (например, url-адрес), в котором размещен бот, и https://468b9ab725e9.ngrok.io введите /api/messages его. In the Bot endpoint address field, enter the ngrok URL (for example, https://468b9ab725e9.ngrok.io ) where you’re hosting the bot and append /api/messages to it.
Бот сможет отвечать на сообщения в Teams. Your bot will be able to respond to messages in Teams.
5. Сборка и запуск приложения 5. Build and run your app
Вы настроили URL-адрес для своего бота и настроили его для обработки сообщений. You’ve set up a URL to host your bot and configured it to handle messages. Пора приумножите свое приложение к работе. It’s time to get your app up and running.
- В терминале перейдите в корневой каталог проекта приложения и запустите npm install его. In a terminal, go to the root directory of your app project and run npm install .
- Запустите npm start . Run npm start .
В случае успеха вы увидите следующее сообщение, указывающее, что ваш бот прослушивает действия на вашем localhost компьютере: If successful, you see the following message indicating your bot is listening for activity at your localhost :
Bot/ME service listening at http://localhost:3978
6. Загрузка нео sideload бота в Teams 6. Sideload your bot in Teams
С помощью бота вы можете установить его в Teams. With your bot running, you can install it in Teams.
Если вы еще не выгружали неогруженные приложения Teams и не могли с ним работать, следуйте этим инструкциям. If you haven’t sideloaded a Teams app before and run into issues, follow these instructions.
- В Visual Studio Code нажмите клавишу F5, чтобы запустить веб-клиент Teams. In Visual Studio Code, press the F5 key to launch a Teams web client.
- В диалоговом окте «Установка приложения» выберите «Добавить для меня». In the app install dialog, select Add for me. (You could add the bot to a channel or chat, but it’s less intrusive to others to test a bot in a one-on-one chat.) (You could add the bot to a channel or chat, but it’s less intrusive to others to test a bot in a one-on-one chat.)
7. Тестирование бота 7. Test your bot
Теперь для интересной части: скажите «Hello» вашему боту. Now for the fun part: Let’s say «Hello» to your bot.
- В поле составить Hello сообщение. In the compose box, send a Hello message.
Бот отвечает следующим сообщением: Your bot replies with something like the following message.
Прекрасно Well done
Поздравляем! Congratulations! У вас есть базовый бот Teams, который может взаимодействовать с пользователями по одному или в параметрах группы (каналах и чатах). You have a basic Teams bot that can communicate with users one-on-one or in group settings (channels and chats).
Устранение неполадок Troubleshooting
Следующие сведения могут помочь, если у вас были проблемы с выполнением этого руководства. The following information may help if you had issues completing this tutorial.
Бот не подключен к Teams Bot isn’t connected to Teams
Если вы установили приложение, но бот не работает, убедитесь, что бот подключен к каналу Teams службы ботов Azure. If you installed your app but the bot isn’t working, make sure the bot is connected to the Azure Bot Service’s Teams channel.
Важно понимать, что это не то же самое, что канал в Teams. It’s important to understand that this isn’t the same as a channel in Teams. В этом случае служба ботов Azure подключает бота к Teams или другому поддерживаемом приложению Майкрософтили стороннему приложению для связи. In this case, a channel is how the Azure Bot Service connects your bot to Teams or another supported Microsoft or third-party communications app.