Dialogflow теряет контекст необъяснимо - PullRequest
0 голосов
/ 30 ноября 2018

Я не понимаю, что происходит с моим ботом, в какой-то момент во время разговора он теряет некоторые контекстные переменные.

На следующем снимке экрана вы можете видеть, что переменные school и campusпустыЭто странно, потому что бот отвечает:

Voici les bourses disponibles pour IDRAC Paris

Где IDRAC - переменная school, иParis это campus.Я не понимаю, как бот может отображать правильное значение (заданное ранее разными Intents) и не иметь установленного значения.

enter image description here

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

{
  "responseId": "759621b6-58cc-417e-a635-46df7627d279",
  "queryResult": {
    "queryText": "bourses",
    "parameters": {
      "type": "Bourses",
      "school": "",
      "campus": ""
    },
    "allRequiredParamsPresent": true,
    "fulfillmentText": "Voici les Bourses disponibles pour IDRAC Paris",
    "fulfillmentMessages": [
      {
        "text": {
          "text": [
            "Voici les Bourses disponibles pour IDRAC Paris"
          ]
        }
      },
      {
        "text": {
          "text": [
            "Vous pouvez me demander des détails sur celles qui vous intéressent"
          ]
        }
      }
    ],
    "outputContexts": [
      {
        "name": "projects/hep-playground/agent/sessions/f69b9423-25d0-bc30-bfff-5f71da18f62d/contexts/school_campus_set",
        "lifespanCount": 249,
        "parameters": {
          "school.original": "",
          "type": "Bourses",
          "school": "",
          "type.original": "bourses",
          "campus.original": "",
          "campus": ""
        }
      },
      {
        "name": "projects/hep-playground/agent/sessions/f69b9423-25d0-bc30-bfff-5f71da18f62d/contexts/awaiting_solution_id",
        "lifespanCount": 1,
        "parameters": {
          "school.original": "",
          "type": "Bourses",
          "school": "",
          "campus.original": "",
          "type.original": "bourses",
          "campus": ""
        }
      },
      {
        "name": "projects/hep-playground/agent/sessions/f69b9423-25d0-bc30-bfff-5f71da18f62d/contexts/awaiting_campus",
        "lifespanCount": 1,
        "parameters": {
          "type": "Bourses",
          "school": "",
          "campus.original": "",
          "type.original": "bourses",
          "campus": "",
          "school.original": ""
        }
      },
      {
        "name": "projects/hep-playground/agent/sessions/f69b9423-25d0-bc30-bfff-5f71da18f62d/contexts/current_session",
        "lifespanCount": 250,
        "parameters": {
          "type": "Bourses",
          "school": "",
          "campus.original": "",
          "type.original": "bourses",
          "campus": "",
          "school.original": ""
        }
      },
      {
        "name": "projects/hep-playground/agent/sessions/f69b9423-25d0-bc30-bfff-5f71da18f62d/contexts/type_set",
        "lifespanCount": 15,
        "parameters": {
          "type": "Bourses",
          "school": "",
          "campus.original": "",
          "type.original": "bourses",
          "campus": "",
          "school.original": ""
        }
      },
      {
        "name": "projects/hep-playground/agent/sessions/f69b9423-25d0-bc30-bfff-5f71da18f62d/contexts/school_set",
        "lifespanCount": 23,
        "parameters": {
          "type": "Bourses",
          "school": "",
          "campus.original": "",
          "type.original": "bourses",
          "campus": "",
          "school.original": ""
        }
      }
    ],
    "intent": {
      "name": "projects/hep-playground/agent/intents/e3236893-676e-4e53-8c87-5b1aa974411e",
      "displayName": "UserSetsType"
    },
    "intentDetectionConfidence": 1,
    "languageCode": "fr"
  }
}

Я не понимаю, почему одни и те же клавиши повторяются снова и снова в каждом контексте, это не имеет смысла.

Мы пытались поставитьcurrent_session как вывод каждого намерения, надеясь, что это каким-то образом поддержит контекст (следуя этому руководству: https://miningbusinessdata.com/better-dialogflow-bots-part-4-session-variables/)

Дополнительные настройки бота:

enter image description here enter image description here

1 Ответ

0 голосов
/ 01 декабря 2018

Проблема в том, что в вашем UserSetsType Intent определены все три параметра.Параметры school и campus являются пустыми строками, если пользователь не говорит ничего, что могло бы их заполнить, и в большинстве ваших ответов не указан способ их заполнения.

Все контекстыактивные (как указанные в графическом интерфейсе, так и определенные вами) фиксируют параметры, определенные для инициируемых объектов, даже если они не заполнены пользователем.Они заполнены пустой строкой, чтобы указать, что они не были специально заполнены. Даже если у них ранее были значения, указывающие, что вы пытаетесь получить значение из определенного Намерения, заменит их пустой строкой, указывая, что вы не сделалиполучить их из , что Намерение.

Так что даже если school и campus были установлены в предыдущем Намерении.Тот факт, что вы указали их в UserSetsType Intent, означает, что эти значения будут заменены на те, которые соответствуют , что Intent, и эти новые значения будут помещены в контекст current_session.

Пока вы находитесь на правильном пути для сохранения накопленного состояния в контексте, если у вас есть параметры, которые могут быть указаны несколькими Intents, вы должны добавить их в этот контекст сеанса под другим именем параметра, котороебудет неконфликтным.(Таким образом, вы можете сопоставить school с savedSchool.)

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