Если вы недавно заходили на сайт документации Rasa, возможно, вы заметили знакомое (пернатое) лицо. Сара, помощница по демонстрации Rasa, вернулась.

Сара постоянно присутствует на веб-сайте Rasa и в документации с 2018 года, но до недавнего времени она не работала в режиме офлайн, когда проводился капитальный ремонт. Теперь, когда она вернулась, мы хотели поговорить с двумя инженерами Rasa, Эллой Ром-Энсинг и Грегом Стивенсом, чтобы узнать больше о том, где она была и что было обновлено.

Немного предыстории: можно сказать, что разработка Сары идет параллельно с разработкой Rasa. По мере внесения новых обновлений в продукт эти обновления переносятся в Sara. При этом команда Rasa может протестировать функции в реальной лаборатории и направить отзывы наших инженеров в процесс разработки продукта. Этот процесс обычно известен как кормление собакой, но в случае с Сарой более точным термином может быть кормление птиц.

Во многих смыслах задача по поддержанию Сары в актуальном состоянии схожа с тем, с чем сталкиваются пользователи Rasa при поддержке сложного помощника с течением времени. Меняются технические требования, меняется логика диалогов. Одна из основных задач Сары - познакомить пользователей с руководством по началу работы, и это руководство менялось по мере разработки продукта. Пришло время запустить Сару на последней версии Rasa Open Source и убедиться, что она может предоставить самую свежую информацию о Rasa. В процессе мы добавили несколько новых функций, чтобы сделать ее еще более полезной.

Краткая история…

Сара была впервые разработана в 2018 году, когда команда Rasa поставила перед собой цель создать «крутого бота», который продемонстрировал бы новейшие и лучшие возможности Rasa. Элла говорит: «Мы хотели показать что-то, что включало в себя несколько различных навыков, что было достаточно сложным, чтобы политика машинного обучения действительно вступила в игру».

Раса хочет, чтобы у каждого разработчика была возможность стать экспертом в создании помощников по ИИ - это часть нашей миссии. Отсюда следует, что цель Сары - помочь разработчикам найти информацию о том, как создавать помощников ИИ. Навыки Сары включают помощь пользователям в установке и начале работы с Rasa, ответы на технические вопросы, подписку пользователей на информационный бюллетень Rasa и организацию телефонного разговора с отделом продаж.

Но у Сары есть и другая цель: предоставить пример с открытым исходным кодом, который разработчики могут использовать для понимания внутренней работы сложного контекстного помощника. Разработчики могут использовать Sara в качестве эталонной реализации ряда полезных методов:

  • Использование Rasa Core и NLU для обработки контекстных разговоров
  • Извлечение настраиваемых и предварительно обученных сущностей
  • Заполнение слота и действия с формой
  • Настройка конвейера tensorflow_embedding для улучшения классификации
  • Обобщение ранее невидимых разговоров с Rasa Core
  • Использование компонента чата React на веб-сайте
  • Использование Rasa X для улучшения реальных разговоров

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

Rasa NLU и Rasa Core становятся Rasa с открытым исходным кодом

Так почему Сара отключилась? В мае 2019 года мы достигли важной вехи в развитии: выпуск версии 1.0, которая объединила Rasa NLU и Rasa Core в единую библиотеку Rasa Open Source. Хотя два модуля все еще можно было разделить и использовать независимо, упаковка обоих в единую библиотеку была необходима для построения сквозных моделей, которые могут учитывать контекст разговоров, повышения ремонтопригодности кода и оптимизации для наиболее распространенного варианта использования. : помощник, где нужны и NLU, и управление диалогами. Еще одно преимущество обновления? Совместимость с Rasa X, выпущенным в то же время.

Хотя обновление большого бота с большим количеством исторических данных разговоров - непростая задача, для Сары это также означало, что ответы и руководства, которые она предоставляла пользователям, необходимо обновить, чтобы включить новый контент на Rasa X. «Одна из вещей, которые делает Сара, - это поможет тебе начать », - говорит Элла. «Для обновления нам пришлось полностью переработать весь процесс« Приступая к работе ». Это был огромный пиар, вроде 1000 строк, меняющих весь контент, истории и то, как происходит весь поток ».

Новый и улучшенный

Customer Success Engineering, команда Rasa, отвечающая за создание и поддержку Сары, отключила Сару, чтобы вернуть ее в курс дела. В число первоочередных задач обслуживания входили:

  • Установка Сары на последнюю версию Rasa Open Source
  • Перенос ее базы данных с MongoDB на SQL
  • Убедитесь, что коннектор веб-сайта может обрабатывать большой трафик на веб-сайт Rasa docs.

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

Помимо миграции и обслуживания данных, у команды было несколько других пунктов в списке дел: использование Rasa X для улучшения Сары, синхронизация ее обучающих данных с GitHub (открытие двери для CI / CD) и разрешение Саре искать ответы на вопросы пользователей в форуме и документации.

Раса X

С появлением Rasa X добавление нового образовательного контента для Сары стало лишь половиной работы. Как объясняет Грег, установка для Сары экземпляра Rasa X была большим приоритетом, поэтому команда могла начать использовать этот инструмент для ее улучшения на основе данных разговоров, собранных в результате взаимодействия с пользователем. При этом команда также смогла собрать ценные отзывы из первых рук об опыте использования Rasa X.

«Мы используем Rasa X, чтобы продолжать следить за ботом, просматривать разговоры и вносить улучшения. Это действительно было полезно для развития Сары. Мы вернули Сару онлайн со всем этим новым контентом, а затем через несколько недель мы начали использовать Rasa X для улучшения помощника, - говорит Грег.

Интеграция с Git и CI / CD

Совсем недавно, с выпуском интегрированного управления версиями в Rasa X, команда приступила к оптимизации некоторых инженерных рабочих процессов, связанных с Sara. Использование интегрированного контроля версий позволяет инженерам Rasa управлять версиями обучающих данных, синхронизируя данные NLU в Rasa X с подключенным репозиторием GitHub. После того, как изменения будут отправлены на GitHub, команда сможет автоматизировать тестирование и развертывание.

«Когда мы открываем пул-реквест, он выполняет несколько различных тестов», - говорит Элла. «Мы проводим тесты на линтинг и форматирование кода. И мы запускаем rasa data validate, который проходит и проверяет ошибки обучающих данных, например намерения в данных NLU, которые не определены в домене. Он также будет выдавать предупреждения о таких вещах, как определение высказывания, которое нигде не используется, что помогает сохранить код в чистоте ».

После проверки PR слияние запускает последовательность автоматизированных процессов. Элла объясняет: «Когда мы объединяемся в master, он развертывает новый сервер действий, беря код действия этой версии, создавая новый образ и помещая его в реестр контейнеров».

Недавно команда перенесла конфигурацию CI / CD Сары из Travis в GitHub Actions. Взгляните на код здесь.

Поиск по форуму и документации

У Сары есть список технических вопросов, на которые она может ответить напрямую, но, когда она столкнулась с вопросом, которого она никогда раньше не видела, ее предыдущее поведение заключалось в том, чтобы вернуться к «Извините, я еще не научился на него ответить».

Команда Customer Success Engineering хотела помочь пользователям приблизиться к ответу, который они искали, даже если Сара не могла дать все ответы сама. Для этого Грег реализовал новое резервное поведение. Теперь, когда Сара классифицирует ввод пользователя как технический вопрос, но не знает, как на него ответить, она ищет совпадение в документации. Если пользователь говорит, что результаты не помогли, он выполняет еще один поиск, на этот раз по форуму.

«Мы используем API Algolia для поиска в наших документах, получения лучших результатов поиска, а затем форматируем их в ответ на уценку. Если пользователю по-прежнему нужна помощь, мы выполняем поиск по форуму с помощью Discourse API, - говорит Грег.

Помимо улучшения взаимодействия с пользователем, это также дает Саре доступ ко всем знаниям, содержащимся в документации и на форуме. Хотите посмотреть, как это работает? Взгляните на код.

Вывод

И Элла, и Грег назвали возможность протестировать техники в реальных условиях как один из наиболее ценных аспектов развития Сары. Для инженеров Rasa одно дело - глубоко разбираться в кодовой базе, а другое - создавать бота так же, как это делают пользователи.

«Недавно я столкнулась с ситуацией, когда мне нужно было использовать режим тестового сравнения», - говорит Элла. «Мы заметили, что вывод NLU отличался от того, вводил пользователь Detroit с заглавной или строчной буквой D. И мы должны были решить - хотим ли мы, чтобы наша конфигурация была чувствительна к регистру или нет?» Как объясняет Элла, режим сравнения тестов позволяет запускать тестовые сценарии с двумя разными конфигурациями для сравнения результатов с обоими вариантами. «Так что вы действительно можете легко увидеть, какая конфигурация обеспечивает наилучшие результаты». Для Эллы это был шанс увидеть эту функцию не как инженер Rasa, а как пользователь, работающий над реальным вариантом использования.

Грег отмечает, что работа с Сарой дала ему большую признательность за помощника как инструмент обучения. «После работы над Сарой теперь, когда я задаю вопросы на форуме, я часто указываю на код действия в Саре или на какую-либо другую функцию в нашем боте. В общем, существует множество техник чат-ботов и методов разработки Rasa, которые могут стать хорошими примерами для любого, кто создает помощника ».

Что дальше?

Любой разработчик машинного обучения скажет вам, что улучшение AI-помощника - постоянная задача, но команда нацелена на один большой элемент дорожной карты: обновление Sara для использования компонента NLU ResponseSelector, представленного в Rasa 1.3. Селектор ответа - это совершенно другая модель, которая использует фактический текст входящего сообщения пользователя, чтобы напрямую предсказать ответ на него, - говорит Элла. В нем представлены новые передовые методы ведения болтовни и часто задаваемых вопросов, и одна из вещей, на которых мы сосредоточены, - это обеспечение того, чтобы Сара использовала новейшие передовые методы.

Заключение

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

Вы можете поговорить с Сарой на странице Начало работы и в документации Rasa, а также посетить репозиторий с открытым исходным кодом, чтобы увидеть, как все это работает.

Хотите принять участие? Поделитесь своими отзывами о Саре или задайте нам вопрос на форуме, или посмотрите доску проектов Сары, чтобы узнать, как внести свой вклад!

Первоначально опубликовано на https://blog.rasa.com 5 февраля 2020 г.