Давайте создадим серверную часть чат-бота, которая будет умной визуально и в диалоговом режиме.

Интеграция ИИ в серверную часть приложения вашего проекта в последние годы становится все более популярной. Многие отрасли внедрили ИИ для повышения производительности, снижения затрат и оптимизации процессов своих приложений. Одним из таких способов, с помощью которых ИИ может улучшить работу приложения, является использование чат-бота. Чат-бот — это автоматизированный агент, который может взаимодействовать с пользователем, разговаривая с ним, отвечая на его запросы и вообще оказывая помощь. Другими словами, чат-боты могут сделать работу вашего пользователя более естественной и удобной.

К сожалению, на создание, проектирование и развертывание чат-ботов может уйти много времени. Сбор обучающих данных, построение модели или даже изучение службы может занять много времени. К счастью, Humingbird здесь, чтобы спасти положение. Используя метод Humingbird Text для классификации текста, мы можем применить те же методы для создания чат-бота! Для тех, кто не знает о Humingbird, я бы порекомендовал вам ознакомиться с оригинальным сообщением в блоге здесь; TLDR заключается в том, что вы можете легко создавать классификаторы ML без данных или обучения.

С учетом сказанного, я думаю, пришло время создать чат-бота!

Создание чат-бота с возможностями распознавания изображений

Схема нашего проекта проста: мы собираемся создать чат-бота для вымышленной витрины магазина, где продается мороженое. Этот чат-бот сможет:

  • Отвечать на общие вопросы пользователей о мороженом
  • Распознавайте изображения разных вкусов мороженого и реагируйте соответственно
  • Иметь возможность отступить, если чат-бот не имеет достаточно высокого показателя доверия

Примечание. Хотя это простой по своей сути и несколько забавный пример, этот план проекта можно использовать во многих приложениях. Объединение визуальных и разговорных возможностей в единую платформу может помочь автоматизировать ряд различных задач, таких как автоматизированное обслуживание клиентов.

Чтобы продолжить оставшуюся часть этого руководства, давайте установим пакет Humingbird с помощью команды:

pip install humingbird

Шаг 1: Создание нашей системы распознавания намерений

Во-первых, нам нужно начать с создания системы распознавания намерений. Для тех, кто не знаком, распознавание намерений — это задача предсказания того, что «означает» запрос. Другими словами, мы устанавливаем заранее определенную карту того, что можно сказать нашему чат-боту в зависимости от приложения.

Для нашего чат-бота с мороженым мы будем использовать следующие intents:

# intents
[greeting, goodbye, menu, prices, start_order]

Все они довольно очевидны в отношении того, каковы будут их «роли».

Чтобы создать наш распознаватель намерений, давайте воспользуемся следующим фрагментом кода с помощью Humingbird:

Это даст нам следующий результат:

[
  {
    "className": "menu",
    "score": 0.84,
  },
  {
    "className": "greeting",
    "score": 0.09
  },
  
  {
    "className": "prices",
    "score": 0.06,
  },
  {
    "className": "goodbye",
    "score": 0.01
  },
  {
    "className": "start_order",
    "score": 0.01
  }
]

Потрясающий! Наша система распознавания намерений правильно предсказала, что на выходе пользователь хочет увидеть меню. Есть одна проблема: у нас нет ответов! Давайте построим это.

Шаг 2: Создайте систему реагирования

Не волнуйтесь, мы можем использовать следующий словарь Python для нашей библиотеки ответов:

Теперь мы можем создать простую функцию для распознавания намерений и соответствующего реагирования:

Что сгенерирует ответ от нашего чат-бота, например:

Welcome! What can i help you with?

На данный момент у нас есть все необходимое для текстового чат-бота. Мы можем улучшить нашего чат-бота, добавив больше intents и более качественных ответов.

Но мы хотим добавить еще одну деталь: визуальные возможности.

Шаг 3: Добавляем визуальные возможности в наш чат-бот

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

Мы собираемся сделать шаг в другом направлении, добавив в наш чат-бот компонент визуального понимания. В нашем простом примере чат-бота в магазине мороженого мы собираемся распознавать разные вкусы мороженого и отвечать вымышленной ссылкой для оформления заказа.

Чтобы сделать это с Humingbird, мы можем использовать следующий фрагмент кода:

Мы можем использовать это изображение:

И наш фрагмент кода вернет:

[
  {
    "className": "strawberry ice cream"
    "score: 0.93
  },
  {
     "className": "vanilla ice cream",
     "score": 0.05,
  },
  {
     "className": "chocolate ice cream"
     "score": 0.02
  }
]

Потрясающий! Мы сделали самую сложную часть, написав всего несколько строк кода. Теперь давайте соберем все вместе, добавив несколько «визуальных намерений» с помощью функции visual_intent_detection:

Что вернется (с примером изображения выше:

Great choice! Here is the checkout link: https://www.fakeicecream.com/checkout/strawberry

Мы сделали это!

Заключение

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

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

См. документы Humingbird по адресу:



Спасибо за прочтение.

  • Приземляться

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Посетите наш Community Discord и присоединитесь к нашему Коллективу талантов.