Как реализовать языковой переключатель для многоязычного агента в Dialogflow?

#node.js #dialogflow-es #actions-on-google

#node.js #dialogflow-es #действия в Google

Вопрос:

Я использую Google Dialogflow (с API версии V2) и хочу создать бота, который может переключаться между несколькими языками по желанию пользователя.

Я настроил все намерения на разных языках, и теперь я хочу, чтобы пользователи могли выбрать один, например, отправив простое сообщение или используя предопределенную кнопку (эта деталь реализации еще не определена, но, вероятно, в любом случае не повлияет на проблему).

Я знаю, что у detectIntent метода есть languageCode параметр, который, насколько я понимаю, является необязательным.

В среде API Dialogflow наdevelopers.google.com/apis-explorer , я могу отправить следующий запрос своему агенту:

 POST https://dialogflow.googleapis.com/v2/projects/<session>/agent/sessions/new:detectIntent?key={YOUR_API_KEY}

{
 "queryInput": {
  "text": {
   "text": "hi",
   "languageCode": "en-EN"
  }
 }
}
  

При отправке, queryInput включая languageCode , агент отвечает на соответствующем языке, что позволяет переключаться даже в середине разговора, что, я думаю, является отличной функцией.

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

Теперь мой вопрос:

Есть ли способ, желательно простой, для меня использовать этот код?

Боюсь, мне пришлось бы настроить полную реализацию с нуля, используя JavaScript и HTML, чтобы запустить это. В настоящее время я думаю о веб-сайте со встроенным iframe, который позволяет изменять узел.JS-код каким-то образом.

Любые предложения приветствуются и ценятся. Кроме того, пожалуйста, не советуйте мне настраивать двух отдельных ботов, это не то, что я ищу.

В качестве альтернативы, есть ли лучший способ использовать Dialogflow для решения этой проблемы?

Спасибо.

Комментарии:

1. Попробуйте использовать Kommunicate

2. Интересный вариант использования, в настоящее время это невозможно в Dialogflow, поскольку атрибут xml: lang еще не поддерживается ( w3.org/TR/speech-synthesis11/#S3.1.2 )

Ответ №1:

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