В этом сообщении блога мы обсудим, как начать использовать Rasa X, если у вас уже есть помощник, работающий в производственной среде. С помощью команды rasa export CLI, выпущенной с Rasa Open Source 1.8.0, теперь стало проще, чем когда-либо, импортировать данные разговоров из автономного развертывания Rasa в Rasa X.

Но прежде чем мы перейдем к техническим деталям, давайте сделаем краткий обзор того, что делает Rasa X и как он может помочь вам создать более устойчивых помощников AI.

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

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

Если у вас есть помощник Rasa AI, работающий в производственной среде, никогда не поздно начать использовать Rasa X для обслуживания и улучшения своего помощника. Лучше всего то, что для этого требуется всего несколько строк кода, и он не нарушит вашу существующую архитектуру. Давайте рассмотрим, что вы хотите рассмотреть, и пошаговый процесс подключения Rasa X к живому помощнику.

Развертывание Ассистента + Rasa X

Если вы создаете совершенно нового помощника, мы рекомендуем развернуть его через Rasa X. Это потому, что использование сценария развертывания Rasa X также запускает готовый к работе контейнер. , настроенный со всем, что нужно вашему помощнику Rasa, одновременно. Чтобы ваш помощник работал и был доступен для подключения к общедоступным каналам обмена сообщениями, единственное, что вам нужно сделать, это подключить репозиторий Git вашего помощника с помощью встроенного контроля версий.

Развертывание вашего помощника одновременно с развертыванием Rasa X также имеет то преимущество, что все разговоры, которые ваш помощник ведет с пользователями, собираются в Rasa X с первого дня.

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

Как данные передаются из открытого исходного кода Rasa в Rasa X

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

Брокер событий - это мост. Он использует службу потоковой передачи сообщений, также известную как брокер сообщений, для пересылки событий с сервера Rasa на Rasa X. Брокеры событий принимают сообщения (пакеты данных) от производителя и отправляют их через очередь потребителю.

Хранилище трекеров - это база данных, в которой разговоры сохраняются на сервере Rasa с открытым исходным кодом. Когда Rasa X подключен, события передаются от агента Rasa (производитель) к службе событий Rasa X (потребитель) и сохраняются в базе данных SQL. Оттуда к разговорам можно получить доступ через Rasa X API и просмотреть в пользовательском интерфейсе Rasa X.

Чтобы подключить живого помощника Rasa к Rasa X, необходимо принять во внимание два соображения: 1) переместить исторические данные разговоров из хранилища трекера в Rasa X и 2) убедиться, что будущие события разговора перенаправляются в Rasa X и сохраняются.

Прежде чем начать, вам нужно развернуть Rasa X на сервере. Вы можете найти однострочный сценарий развертывания для Rasa X здесь. Этот метод установки автоматически создает кластер Kubernetes k3s на вашем компьютере (или вы можете использовать его для развертывания в существующий кластер).

Пересылка событий

Сначала мы перенаправим события в Rasa X, указав Rasa Open Source на брокера событий Rasa X.

Брокер событий, используемый Rasa X, - RabbitMQ. Клиент Python Rabbit MQ называется Pika, и он уже встроен в Rasa Open Source. Для пересылки событий с помощью Pika все, что нам нужно сделать, это предоставить учетные данные и местоположение службы RabbitMQ сервера Rasa X, которые мы настроим в файле endpoints.yml помощника.

На сервере Rasa X: получите пароль RabbitMQ и откройте порт.

Приведенные ниже инструкции применимы к Rasa X, развернутому в Kubernetes, с использованием однострочного сценария развертывания или диаграммы Helm. Использовали docker-compose для установки Rasa X? Вы можете найти подробные инструкции по поиску учетных данных RabbitMQ в документации.

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

secret=rabbit
namespace=<your namespace>
release_name=<your release name>
kubectl --namespace ${namespace} \
    get secret ${release_name}-${secret} -o yaml | \
    awk -F ': ' '/password/{print $2}' | base64 -d

Если вы развернули Rasa X с помощью однострочного сценария развертывания, ваше имя_ выпуска и пространство имен будут rasa. Если вы развернули с помощью диаграммы Helm, вы можете найти свое пространство имен, запустив kubectl get namespaces. Затем запустите helm list --namespace <your namespace>, чтобы получить выпуски в определенном пространстве имен.

Выставляем порт RabbitMQ

Прежде чем RabbitMQ сможет принимать внешние события, нам нужно открыть порт. Выполните в своем терминале следующее:

kubectl expose service rasa-rabbit --type=LoadBalancer --name=rasa-rabbit-exposed --namespace=rasa

Убедитесь, что порт открыт, выполнив следующую команду, проверив внешний IP-адрес, назначенный службе RabbitMQ:

kubectl get services --namespace=rasa

На сервере Rasa: настройте Rasa для пересылки событий

Далее нам нужно указать помощника брокеру событий Rasa X. Мы сделаем это, добавив учетные данные RabbitMQ из Rasa X в endpoints.yml, файл, в котором настроены каналы обмена сообщениями и внешние службы.

Добавьте следующее в файл endpoints.yml вашего помощника Rasa:

event_broker:
  type: "pika"
  url: ${RABBITMQ_HOST}
  username: ${RABBITMQ_USERNAME}
  password: ${RABBITMQ_PASSWORD}
  queue: ${RABBITMQ_QUEUE}

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

RABBITMQ_PASSWORD=<password copied from Rasa X>
RABBITMQ_HOST=<the URL (or IP address) of your Rasa X server>
RABBITMQ_USERNAME=user
RABBITMQ_QUEUE=rasa_production_events

Сохраните файлы и перезапустите сервер Rasa:

sudo docker-compose down

sudo docker-compose up -d

Перенос данных разговора

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

В Rasa Open Source 1.8.0 мы выпустили новую команду CLI: rasa export. Эта команда переносит данные из хранилища трекеров помощника Rasa = ›в брокер событий =› в базу данных Rasa X.

Чтобы использовать его, убедитесь, что вы настроили свои учетные данные RabbitMQ, как описано в разделе «Пересылка событий» этого сообщения. Затем запустите команду из каталога вашего проекта на сервере Rasa:

rasa export

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

Заключение

Даже если вы запускаете свой помощник на отдельном сервере, для подключения Rasa X и импорта разговоров требуется изменить всего несколько строк кода и выполнить команду rasa export CLI. Сейчас отличное время, чтобы узнать, как Rasa X может помочь вам вывести вашего помощника на новый уровень.

Хотите узнать больше о том, что можно делать с Rasa X? Ознакомьтесь с некоторыми из этих ресурсов:

Будьте в курсе последних обновлений, присоединившись к нам на форуме и подписавшись на нас в Twitter.

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