Dialogflow не может использовать параметр в ответе - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь использовать Dialogflow и следую их руководству building-your-first-agent , чтобы создать намерение с ответом

Однако, если я использую параметр внутри ответа, он вернет «недоступно» из ответа по умолчанию. Кто-нибудь знает, почему это происходит?

С картинки ответит правильное предложение без параметра. ответ недоступен при использовании параметра.

Result of response with parameter Result of response without parameter

Диагностическая информация

без параметра

{
  "id": "aa316e0a-7f41-46cb-a03c-03c13d80ae6b",
  "timestamp": "2018-05-16T18:31:11.858Z",
  "lang": "en",
  "result": {
    "source": "agent",
    "resolvedQuery": "turn on asdkasjd",
    "action": "",
    "actionIncomplete": false,
    "parameters": {
      "cameraName": ""
    },
    "contexts": [],
    "metadata": {
      "intentId": "41b046bc-65ea-425b-8a33-9e37c44dddf4",
      "webhookUsed": "false",
      "webhookForSlotFillingUsed": "false",
      "intentName": "opencamera"
    },
    "fulfillment": {
      "speech": "Sorry I don't know",
      "messages": [
        {
          "type": 0,
          "speech": "OK. I will try to turn on"
        }
      ]
    },
    "score": 0.9300000071525574
  },
  "status": {
    "code": 200,
    "errorType": "success"
  },
  "sessionId": "e488d71a-a21e-4cf0-bfcb-13b4a36fd811"
}

Training Phase

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Проблема в том, что вы используете параметр @sys:given-name в попытке сопоставить «камеру» или «камеру два», но ни одно из них не является «заданным именем», которое подразумевается соответствовать имени, данному человеку (в отличие от его фамилии), а не имени, данному устройству.

В этих случаях используется грубое сопоставление и определение того, что «включение» соответствует достаточному количеству выборочной фразы, чтобы соответствовать намерению, но нет значения, соответствующего его части имени. Поскольку этот параметр не требуется, Intent соответствует без значения для параметра.

Существует несколько способов исправить это в зависимости от ваших конкретных потребностей:

  • Вы можете пометить параметр как необходимый. (Это не решает проблему с именем, но удостоверится, что оно либо соответствует, либо пользователю предлагается ввести значение.)

  • Вы можете использовать тип сущности @sys:any. Это должно соответствовать всему, что пользователь включает в параметр.

  • Если у вас есть определенные имена, вы можете определить свой собственный тип сущности .

0 голосов
/ 17 мая 2018

Во-первых, я думаю, что вы не добавили ни одной фразы в раздел «Учебные фразы» над разделом «Действие и параметры».Пожалуйста, добавьте их, чтобы обучить вашего агента распознавать параметр cameraName из фраз.Во-вторых, если вы видите свой json, то результат-> параметры-> имя_камеры пуст.И если параметр пуст, он не может ответить тем, что требует параметр «cameraName».Попробуйте добавить третий отклик в отклики с параметрами, которые не используют параметр, и посмотрите результат, он вернет третий отклик, а когда обнаружит параметр, он начнет показывать отклик с параметром.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...