Найти в Дзене
В поиске

Делаем чат - бота с ИИ на Python в 30 строк кода.

Здравствуйте! Сегодня я расскажу как сделать умного чат - бота с которым можно поговорить и так же мы дадим ему функционал ассистента. Если тема понравится, то мы продолжим улучшать нашего бота и сделаем его ещё умнее. Для тех, кто не знает, что такое питон(Немного про язык и установку). Python - высокоуровневый интерепритируемый язык программирования. Его преимущества - простой синтаксис. И огромное количество дополнительных библиотек. Для установки переходим на сайт python.org. В раздел "Downloads". И выбираете подходящую версию, выбирайте python 3.x, так как python 2 отличается от python 2 синтаксисом и не только. Лично я буду работать на python 3.6 О чат - боте Сам чат-бот состоит из ядра. Ядро - набор фраз и ответов к ним. Когда чат-боту поступает вопрос, то он идёт к ядру. В ядре ответ подбирается по типу предполагаемого ответа(приветствие, как дела ...). Далее обычно найдя такой тип, выдаётся случайный ответ из возможных в этом блоке. Писать такую систему вручную тяжело так как
Оглавление

Здравствуйте!

Сегодня я расскажу как сделать умного чат - бота с которым можно поговорить и так же мы дадим ему функционал ассистента. Если тема понравится, то мы продолжим улучшать нашего бота и сделаем его ещё умнее.

Для тех, кто не знает, что такое питон(Немного про язык и установку).

Python - высокоуровневый интерепритируемый язык программирования. Его преимущества - простой синтаксис. И огромное количество дополнительных библиотек.

Для установки переходим на сайт python.org. В раздел "Downloads". И выбираете подходящую версию, выбирайте python 3.x, так как python 2 отличается от python 2 синтаксисом и не только. Лично я буду работать на python 3.6

О чат - боте

Сам чат-бот состоит из ядра. Ядро - набор фраз и ответов к ним. Когда чат-боту поступает вопрос, то он идёт к ядру. В ядре ответ подбирается по типу предполагаемого ответа(приветствие, как дела ...). Далее обычно найдя такой тип, выдаётся случайный ответ из возможных в этом блоке.

пример блока
пример блока

Писать такую систему вручную тяжело так как есть ряд проблем самописной системы: обучение, надо, чтобы всё что пользователи спрашивают у бота приходило вам и вы могли дообучать бота, если он ответил неправильно. Вам придется писать сервер и это будет сложно, а главное сложно найти бесплатный сервер, админ панель, ну согласитесь, что с неё будет удобнее управлять, следить и обучать бота.

Dialogflow

Мы воспользуемся сервисом от Google, dialogflow. Это сервис для создания и управления чат - ботами.

Переходим на сайт.

-3

Вместо кнопки "Go to console" в верхнем правом углу у вас будет кнопка "Sign In", нажимаете и входите через свой Google аккаунт.

Делаем бота

У вас тут будет пусто, просто у меня уже есть боты на этом сервисе
У вас тут будет пусто, просто у меня уже есть боты на этом сервисе

Нажимаем на кнопку "Create new agent".

-5

Выбираем нужный язык бота и его имя, больше ничего не выбираем и нажимаем на кнопку "Create".

Далее переходим в раздел "Prebuilt agents"

-6

Здесь мы можем выбрать интеграции к боту, выбираем "Small Talk". Нажимаем "Import", ждём

Теперь в разделе "Intents" у нас будет достаточно много готовых фраз

-7

Чтобы создать свою вы можете либо редактировать готовую, либо же создать новую, нажав на кнопку "Create Intent"

-8

Вводите название(любое, но желательно понятное, так, чтобы можно было понять о чём).

В "Training phrases" вводите, то, что может сказать пользователь(его предложения, а затем оттуда сам сервис будет вынимать ключевые слова)

-9
-10

В "Text Response" ответы бота. Нажимаете "Save". Теперь вы можете проверить как работает бот.

-11

В поле для ввода вы можете вводить что - то и ниже получать ответ бота.

Пишем программу

Чтобы все могли пообщаться с ботом нужно сделать программу, которая будет соединятся с Dialogflow и выдавать ответ. Для этого нам и нужен будет Python.

Существуют так называемые "API ключи", это уникальные для каждого пользователя ключи, с помощью которых он может взаимодействовать с каким - либо сервисом. У Dialogflow так же есть такие ключи. Чтобы получить их, переходим в настройки бота(нажимаем на шестерёнку рядом с именем бота). Пролистаем до такого раздела:

-12

Копируете "Client access token". И важно никому не показывать эти ключи, так как иначе кто - то сможет управлять вашим ботом.

Подготавливаем python

Теперь нам нужно установить библиотеку для Python. У python есть пакетный менеджер под названием pip. Через него мы и установим нужную нам библиотеку.
Открываем консоль.
Вводим: pip install apiai

Подождите пока пройдёт установка.

Код, код и код

Открываем среду разработки в которой вы работаете и приступим к написанию кода.

Весь код:

Мы импортируем встроенную библиотеку "json", для работы с json файлами, так Dialogflow передаёт ответы бота именно в таком формате. В коде есть комментарии, если что - то не понятно, то пишите в комментарии.