Учебник с полным кодом, в котором используются аннотаторы NLP, BERT и QA (вопрос-ответ) для автоматической помощи в ответе на телефонный звонок.

Телефонные звонки остаются важной частью обслуживания клиентов во многих компаниях. Они помогают в разрешении запросов и споров клиентов, а предприятия нанимают колл-центры для ответа на эти звонки. Телефонный этикет, использование профессионального тона и знание продукта являются ключевыми в этой области.
В этом руководстве вы узнаете, как использовать машинное обучение для ответа на входящие телефонные звонки. Сначала вы создадите простой сервер веб-приложений для приема вызовов Twilio, а затем будете использовать обработку естественного языка (NLP), чтобы понимать вызывающих абонентов и отвечать на них. Вы также узнаете, как интегрировать TensorFlow в приложение NestJS с базовым NLP. В TensorFlow есть реализация Представления двунаправленного кодировщика от трансформаторов (BERT). BERT — это хорошо известный метод НЛП, основанный на преобразовании, который, среди прочего, можно использовать для создания моделей вопросов и ответов.
Предпосылки
Убедитесь, что в вашей операционной системе установлен NodeJS (v14+). Следуйте этому руководству для начала работы с NodeJs. Вам также понадобится фреймворк NestJS для создания вашего серверного приложения. Установите Nest CLI с помощью npm, который вы будете использовать для создания и запуска вашего проекта.
npm i -g @nestjs/cli
Настройка проекта
Вы будете использовать интерфейс командной строки Nest для создания каркаса вашего проекта. Для этого выполните следующую команду, а затем cd в папку проекта:
nest new twilio-tf-answer-calls cd twilio-tf-answer-calls/
Новый созданный проект будет иметь папку с именем src/. Здесь вы будете писать свой код. Вы будете редактировать файлы app.controller.ts и app.service.ts.

Далее вы установите зависимости через npm, которые будут собирать проект. Эти зависимости включают модель BERT Twilio и TensorFlow. Для получения дополнительной информации об установке TensorFlow для NodeJS ознакомьтесь с этим репозиторием Github.
npm i -s twilio @tensorflow-models/qna @tensorflow/tfjs-node @tensorflow/tfjs-converter
Наконец, вам нужно будет купить номер телефона с голосовыми возможностями, используя консоль Twilio. Зарегистрируйтесь или войдите в свою консоль Twilio, затем получите бесплатный номер телефона или купите его. Вы можете использовать его для приема или совершения звонков из любой точки мира.

Интеграция с TensorFlow
Откройте свой проект в своем любимом редакторе и откройте файл app.service.ts. Это служба приложения, в которой размещается модель BERT, предоставляемая TensorFlow. В этом разделе вы будете выполнять следующие задачи:
- Импортировать необходимые модули TensorFlow, установленные ранее;
- Добавьте простую базу знаний для конкретного продукта. Для этого руководства вы можете получить любую информацию о продукте с сайта электронной коммерции;
- Инициализировать модель BERT, предоставленную TensorFlow;
- И добавьте функцию для предоставления ответов на вопрос.
Процесс машинного обучения цикличен — найдите подходящий рабочий процесс. Сотрудничайте между командами, воспроизводите эксперименты и выполняйте другие действия с помощью надежной стратегии MLOps. Ознакомьтесь с нашими экспертными решениями для решения распространенных проблем команды машинного обучения.
Интеграция с Twilio
Twilio JavaScript SDK позволяет разработчикам интегрировать службы связи в веб-приложения. Он неплохо работает с фреймворком NestJS. В этом разделе вы сосредоточитесь на файле app.controller.ts. Он обрабатывает создание маршрутов API для нашего приложения. Чтобы интегрировать голосовые сервисы Twilio для этого варианта использования, вам необходимо сделать следующее:
- Импортируйте необходимые зависимости для запуска контроллера приложения.
- Инициализируйте SDK Twilio, используя свои ключи. Вы можете получить свои ключи с консоли Twilio. Кроме того, добавьте службу приложения в контроллер с помощью внедрения зависимостей.
- Создайте маршрут для обработки приема голосового вызова и приветствия вызывающего абонента. Инициализируйте процесс транскрипции звонка в текст с помощью глагола записи Twiml. Важно отметить, что существуют юридические обязательства в отношении конфиденциальности, когда вы решите записывать звонки.
- Создайте маршрут, отвечающий за информирование пользователя о том, что его запрос обрабатывается.
- Создайте маршрут, который будет обрабатывать получение расшифрованного текста. Передайте текст в свою модель машинного обучения и обработайте результаты. Расшифровка звонков влечет за собой дополнительные расходы; с ценами можно ознакомиться здесь.
- Создайте маршрут, который отвечает вызывающему абоненту соответствующим ответом и завершает вызов. Важно отметить, что этот вызов принимает только один запрос за вызов.
Запуск приложения
Nest CLI предоставляет разработчикам простой в использовании механизм для запуска своих приложений. В этом руководстве вы будете запускать сервер веб-приложений на своем компьютере. Перед выполнением любой команды в этом разделе убедитесь, что вы находитесь в корневой папке вашего приложения. Используйте следующую команду npm, чтобы запустить приложение в режиме разработки:
npm run start

Вы можете получить доступ к своему серверу веб-приложений через http://localhost:3000. Но вам по-прежнему необходимо интегрировать маршруты API с онлайн-сервисами Twilio через Webhooks. Веб-перехватчики предоставляют механизм связи Twilio с вашим приложением. Во-первых, вам нужно использовать ngrok для создания туннеля, который будет отображать ваше локальное приложение в Интернете. Для этого запустите эту команду в новом сеансе терминала, продолжая работать на локальном сервере веб-приложений:
ngrok http 3000
3000 — это номер порта, на котором работает ваш локальный сервер приложений. Пожалуйста, убедитесь, что вы указали правильный номер.

ngrok предлагает несколько URL-адресов, которые отображают ваш локальный сервер приложений в Интернете. Скопируйте общедоступную ссылку HTTPS и перейдите на консоль Twilio. Выберите свой номер телефона и в разделе A Call Comes In выберите Webhook и добавьте общедоступный URL-адрес, который вы скопировали ранее.

Заключение
В этом руководстве вы смогли создать сервер веб-приложений с помощью NestJS. Этот сервер веб-приложений может принимать входящие вызовы от Twilio. Кроме того, он может обрабатывать запрос звонящего о продукте. С помощью НЛП вы смогли дать соответствующий ответ на вопрос. Возможности использования НЛП в коммуникациях безграничны. Это может сэкономить затраты для компаний, если оно будет реализовано. Эта технология по-прежнему нуждается в контроле со стороны людей, но она может помочь агентам по обслуживанию клиентов и представителям повысить свою эффективность.
Примечание редактора. Heartbeat — это интернет-издание и сообщество, созданное участниками и посвященное предоставлению лучших образовательных ресурсов для специалистов по науке о данных, машинному обучению и глубокому обучению. Мы стремимся поддерживать и вдохновлять разработчиков и инженеров из всех слоев общества.
Независимая от редакции, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и командам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим нашим авторам и не продаем рекламу.
Если вы хотите внести свой вклад, перейдите к нашему призыву к участию. Вы также можете подписаться на получение нашего еженедельного информационного бюллетеня (Еженедельник глубокого обучения), заглянуть в блог Comet, присоединиться к нам в Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов и событий. и многое другое, что поможет вам быстрее создавать более качественные модели машинного обучения.