DialogFlow против Lex для обнаружения намерений потоковой передачи

Для моего текущего проекта я ищу платформу для создания ботов со следующими функциями.

  1. Должен поддерживать создание / обновление нового / существующего бота через API.

  2. Поддержка обнаружения намерений при потоковой передаче звука.

  3. Включите хостинг нескольких ботов-агентов в одном проекте.

  4. API для изменения существующего бота / агента и сохранения его как нового.

Итак, я тщательно изучил и разработал простой рабочий прототип с помощью DialogFlow. DialogFlow поддерживает обнаружение намерений при потоковой передаче звука. Но пункты 1 и 3 не поддерживаются. DialogFlow на данный момент не поддерживает создание агента через API. Более того, самым большим ограничением является то, что для каждого проекта GCP может быть создан только один агент DialogFlow. Допустим, у меня создано несколько проектов агентов-gcp. У меня также есть запущенное веб-приложение, которое принимает аудиопотоки через WebSocket из другого внешнего ресурса для обнаружения намерений. Чтобы направить аудиопоток на конкретный созданный агент DialogFlow, мне нужно разрешить учетные данные во время выполнения для этого конкретного проекта GCP. Я читал, что могу создать учетную запись службы и управлять несколькими проектами GCP с одним учетными данными, но это еще не попробовать.

Также, как требует пункт 4, я также ищу способ создания новых версий существующего агента во время выполнения с использованием API. В настоящее время DialogFlow поддерживает версии и среды, но реальная цель этого не та, о которой я упоминал. Кроме того, это бета-функция, и я не уверен, будет ли она когда-либо включена в производство.

С другой стороны, я изучал AWS Lex. Лекс поддерживает все мои требования, кроме одного. AWS Lex на данный момент не поддерживает обнаружение намерений из потока (мне не удалось найти для этого API).

Итак, мой вопрос: как я могу использовать существующие функции DialogFlow для выполнения своих требований? Или есть способ определить намерение потокового аудиовхода в AWS Lex?


person Vino    schedule 23.09.2018    source источник


Ответы (2)


Нет механизма для создания новых агентов Dialogflow через API, поэтому части 1. и 4. невозможны.

Для 3., как вы упомянули, вы можете либо управлять учетными данными во время выполнения, либо настроить единую учетную запись службы с доступом ко всем проектам GCP.

person Daniel Situnayake    schedule 26.09.2018

Для справки в будущем: пункты 1 и 4 также возможны в Dialogflow. Чтобы создать агент диалогового потока программно, вам необходимо сделать следующее: -

  1. Главный проект, с помощью которого вы можете организовать создание других ресурсов.
  2. Программно создайте новый проект GCP (например, с помощью Cloud Deployment Manager или Terraform).
  3. Добавьте учетную запись службы из главного проекта в качестве администратора / пользователя Dialogflow (и других).
  4. Используйте бета-интерфейсы API Dialogflow v2 для создания нового бота, создания новых намерений и новых сущностей.

Также можно экспортировать существующего бота в виде zip-архива, изменить его содержимое (например, имя бота) и создать нового бота с помощью функции загрузки zip-архива. Затем перейдите к обновлению / созданию новых намерений и сущностей.

person Subhash Peshwa    schedule 12.10.2020