Найти тему
leredee

Создание чат-бота с помощью IRIS и Python

Оглавление

Создание чат-бота с помощью IRIS и Python

В этой статье я собираюсь показать, как интегрировать базу данных InterSystems IRIS с Python для обслуживания модели машинного
обучения обработке естественного языка (NLP).

Почему Python?

Благодаря широкому внедрению и использованию в мире Python располагает отличным сообществом и множеством ускорителей | библиотек для развертывания приложений любого типа.
Если вам интересно (
https://www.python.org/about/apps /).

Iris Globals

По мере того, как я начинаю узнавать о ^ globals, я стал привыкать использовать их как быстрый способ ввода данных в готовую модель данных.
Итак, сначала я собираюсь использовать ^ globals для хранения данных обучения и разговоров для регистрации поведения чат-бота.

Обработка естественного языка

Обработка естественного языка или NLP - это предмет искусственного интеллекта, который создает способность читать и понимать значение наших
языков для машин. Как вы можете себе представить, это не совсем просто, но я собираюсь показать, как выполнить ваши первые шаги в этой
широкой и красивой области.

Демо-версия - Попробуйте сами

Я развернул приложение чат-бота в качестве демо-версии здесь:
http://iris-python-suite.eastus.cloudapp.azure.com:8080

Как это работает?

Машинное обучение

Для начала полезно знать, что парадигма машинного обучения отличается от обычной разработки программного обеспечения.
Главный момент, который трудно понять, - это цикл разработки моделей машинного обучения.

Предупреждение о неполном объяснении

Стандартный цикл разработки приложения подобен:

Разработка кода -> Тестирование (с данными разработки) -> Развертывание (использование реальных данных)

И машинное обучение кода само по себе не имеет одинаковой ценности. Он разделяет ответственность с данными! И никаких данных,
реальных данных! Потому что конечный код, который будет выполняться, генерируется путем объединения концепций разработки и используемых данных.
Таким образом, цикл приложения для машинного обучения должен быть похож:

Разработка (обучение) модели + реальные данные-> Проверка-> Развертывание результата этого (модели)

Как обучить модель?

Существует множество методов обучения моделей, и каждый случай и задача требуют длительного обучения. В данном случае я использую
библиотеку
ChatterBot, которая инкапсулирует некоторые методы и предоставляет обучающие
методы и предварительно обработанные обучающие данные, чтобы помочь нам сосредоточиться на результатах.

Предварительно обученные языки моделей и пользовательская модель

Вы можете начать с этого, чтобы создать базового чат-бота для общения. Вы также можете создать все данные для обучения своего чат-бота,
которые могут идеально соответствовать вашим потребностям, но их сложно создать за короткое время. В этом проекте я использую en_core_web_sm в качестве основы для
беседы и объединяю с пользовательскими обучающими данными, которые вы можете создать с помощью
формы

Базовая архитектура

-2

Что я использовал в Python

В этой прикладной среде я использую Python 3.7 со следующими модулями:

  • PyYAML<=5.0.0
  • dash==1.12.0
  • dash-bootstrap-components==0.10.1
  • dash-core-components==1.10.0
  • dash-html-components==1.0.3
  • dash-renderer==1.4.1
  • dash-table==4.7.0
  • plotly==4.7.1
  • numpy==1.18.4
  • networkx==2.4
  • Flask>=1.0.0
  • chatterbot>=1.0.0
  • chatterbot-corpus>=1.2.0
  • SQLAlchemy>=1.2
  • ./nativeAPI_wheel/irisnative-1.0.0-cp34-abi3-linux_x86_64.whl

Структура проекта

Этот проект имеет простую структуру, которую легко понять. В основной папке у нас есть 3 наиболее важных вложенных папки:

  • ./app: со всем кодом приложения и установочной конфигурацией.
  • ./iris: с помощью InterSystems IRIS dockerfile готовится к обслуживанию приложения.
  • ./data: Для привязки хоста к контейнерной среде с помощью тома

Структура приложения

Теперь внутри каталога ./app мы можем увидеть некоторые файлы:

  • chatbot.py : с реализацией веб-приложения
  • iris_python_suite.py : класс с некоторыми ускорителями для использования с базой данных IRIS и Python с помощью IRIS Native API.

Структура базы данных

Это приложение использует Intersystems IRIS в качестве репозитория, в качестве глобальных файлов используются:

  • ^chatbot.training.data: хранит все пользовательские данные обучения в формате вопросов и ответов.
  • ^ chatbot.conversation: сохраняет всю полезную информацию о беседе.
  • ^ chatbot.training.isupdated : управляет конвейером обучения.

Преимущества моего другого решения

Я не создавал отчет по всем разговорам, но это не проблема, с помощью моего средства просмотра глобальных графиков я могу следить за
разговорами.

-3

Запуск приложения самостоятельно

Предварительные требования

  • git
  • docker и docker-compose (и дополнительные настройки памяти в docker не менее 4 ГБ)
  • доступ к терминалу в вашей среде

Шаги

С помощью docker-compose вы можете легко создать единую среду со всеми элементами и конфигурациями перейдите в папку iris-python-covid19
и введите это:

$ docker compose build
$ docker compose up

Расчетное время на создание контейнеров

первый запуск будет зависеть от вашей интернет-ссылки для загрузки изображений и зависимостей.
Если это продлится более 15 минут, вероятно, что-то пойдет не так, не стесняйтесь сообщать здесь.
После первого запуска следующие будут работать лучше и займут менее 2 минут.

Все ли в порядке

Через некоторое время вы сможете открыть свой браузер и перейти по адресу:

Форма данных для обучения

http://localhost:8050/chatbot-training-data

Чат-бот

http://localhost:8080

Вам следует заглянуть на портал администратора IRIS

Пока я использую пространство имен USER

http://localhost:9092
user: _SYSTEM
pass: theansweris42
Наука
7 млн интересуются