URL выполнения диалога не отправляет никаких данных - PullRequest
0 голосов
/ 05 октября 2019

Я создаю бота для помощника Google. Я включил раздел выполнения для некоторых намерений. Поток диалога отправляет запрос на выполнение URL. URL выполняется, и возвращается жестко закодированный ответ. Я вижу ответ в помощнике симулятора. Все отлично работает, кроме одного. Запрос пуст. Я не могу получить доступ к полям, которые должны присутствовать в запросе.

Я получил доступ к тому же URL-адресу, используя запрос post из кода Python, и он отображает параметры. Таким образом, в коде нет проблем. Я думаю, что мне не хватает какой-либо опции конфигурации.

Я ожидал тело сообщения в следующем формате:

 POST body:
{
  "responseId": "ea3d77e8-ae27-41a4-9e1d-174bd461b68c",
  "session": "projects/your-agents-project-id/agent/sessions/88d13aa8-2999-4f71-b233-39cbf3a824a0",
  "queryResult": {
    "queryText": "user's original query to your agent",
    "parameters": {
      "param": "param value"
    },
    "allRequiredParamsPresent": true,
    "fulfillmentText": "Text defined in Dialogflow's console for the intent that was matched",
    "fulfillmentMessages": [
      {
        "text": {
          "text": [
            "Text defined in Dialogflow's console for the intent that was matched"
          ]
        }
      }
    ],
    "outputContexts": [
      {
        "name": "projects/your-agents-project-id/agent/sessions/88d13aa8-2999-4f71-b233-39cbf3a824a0/contexts/generic",
        "lifespanCount": 5,
        "parameters": {
          "param": "param value"
        }
      }
    ],
    "intent": {
      "name": "projects/your-agents-project-id/agent/intents/29bcd7f8-f717-4261-a8fd-2d3e451b8af8",
      "displayName": "Matched Intent Name"
    },
    "intentDetectionConfidence": 1,
    "diagnosticInfo": {},
    "languageCode": "en"
  },
  "originalDetectIntentRequest": {}
}

Но когда я печатаю данные сообщения, используя print (request.POST), фактический отображаемый запрос сообщения равен

Еще одна вещь: добавляет ли поток диалога действие в конце URL выполнения? Если это так, мне придется обрабатывать логику отдельно. Я сделал это без учета названия действия. Но многие из моих вещей взломаны, поэтому я просто хочу быть уверен.

С другой стороны, достаточно ли хорошо работает диалог? Он отлично работал на нескольких примерах, аналогичных тем, на которых он обучался. Сколько тренировочных образцов нужно для правильной работы? Какой основной алгоритм используется в диалоге? Или я должен использовать URL-адрес выполнения и обрабатывать все самостоятельно? Я склонен к последнему. Я не слишком верю в существующих чат-ботов.

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 07 октября 2019

Понял. Используется request.body. Это решает проблему. Затем проанализировал его с помощью json.loads и получил доступ к параметрам.

0 голосов
/ 05 октября 2019

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

...