Google Dialogflow: результаты анализа настроений для помощника Google отсутствуют

Я работаю над чат-ботом с диалоговым потоком, я использую план «Основное предприятие», и поэтому у меня есть доступ к анализу настроений, который отлично работает на панели симулятора слева от консоли диалогового потока, однако, когда я переключаюсь на тестирование своего бота с помощью помощника Google , код выполнения диалогового потока перестает извлекать оценку настроения из запроса, отправленного диалоговым потоком.

Глядя на запрос, отправленный в обоих случаях, Google Assistant и простой диалог, я вижу, что результаты «анализа настроений» фактически отсутствуют в объекте запроса, когда вы переключаетесь на тестирование в Google Assistant.

Вот два объекта запроса:

Вот первый запрос диалогового потока без использования помощника Google (обратите внимание на узел queryTextSentiment внизу)

{
  "responseId": "b76b18c6-7640-4322-b8e5-2db74cc22656-b55300fa",
  "queryResult": {
    "queryText": "Very difficult",
    "parameters": {},
    "allRequiredParamsPresent": true,
    "fulfillmentText": "how do you describe the assignments of this course?",
    "fulfillmentMessages": [
      {
        "text": {
          "text": [
            "how do you describe the assignments of this course?"
          ]
        }
      }
    ],
    "outputContexts": [
      {
        "name": "projects/labeeb-nlddnb/agent/sessions/d66952d9-05c9-bf8a-e083-fa7ccc0bebdd/contexts/assignments_ctx",
        "lifespanCount": 5
      },
      {
        "name": "projects/labeeb-nlddnb/agent/sessions/d66952d9-05c9-bf8a-e083-fa7ccc0bebdd/contexts/difficulty_ctx",
        "lifespanCount": 4,
        "parameters": {
          "course_name": "Machine Learning",
          "course_name.original": "Machine Learning"
        }
      }
    ],
    "intent": {
      "name": "projects/labeeb-nlddnb/agent/intents/d2d12691-624a-43cd-8b88-b3c7116831dd",
      "displayName": "difficulty"
    },
    "intentDetectionConfidence": 1,
    "languageCode": "en",
    "sentimentAnalysisResult": {
      "queryTextSentiment": {
        "score": -0.5,
        "magnitude": 0.5
      }
    }
  },
  "originalDetectIntentRequest": {
    "payload": {}
  },
  "session": "projects/labeeb-nlddnb/agent/sessions/d66952d9-05c9-bf8a-e083-fa7ccc0bebdd"
}

и вот диалоговое окно запроса, которое отправляет, когда я тестирую с помощью помощника Google, и в этом случае dialogflow не устанавливает никаких результатов анализа настроений:

{
  "responseId": "ce8600dc-4364-48c2-a85b-3acb4cab589e-b55300fa",
  "queryResult": {
    "queryText": "Very difficult",
    "parameters": {},
    "allRequiredParamsPresent": true,
    "fulfillmentText": "how do you describe the assignments of this course?",
    "fulfillmentMessages": [
      {
        "text": {
          "text": [
            "how do you describe the assignments of this course?"
          ]
        }
      }
    ],
    "outputContexts": [
      {
        "name": "projects/labeeb-nlddnb/agent/sessions/ABwppHHtMXYQddZeGRTOy0mDfanYvokXr8s72lTD9omqiMy73G3B0JaA0DwvErTRc0HkvhPTmA-CIcAXuQ/contexts/assignments_ctx",
        "lifespanCount": 5
      },
      {
        "name": "projects/labeeb-nlddnb/agent/sessions/ABwppHHtMXYQddZeGRTOy0mDfanYvokXr8s72lTD9omqiMy73G3B0JaA0DwvErTRc0HkvhPTmA-CIcAXuQ/contexts/actions_capability_account_linking"
      },
      {
        "name": "projects/labeeb-nlddnb/agent/sessions/ABwppHHtMXYQddZeGRTOy0mDfanYvokXr8s72lTD9omqiMy73G3B0JaA0DwvErTRc0HkvhPTmA-CIcAXuQ/contexts/actions_capability_media_response_audio"
      },
      {
        "name": "projects/labeeb-nlddnb/agent/sessions/ABwppHHtMXYQddZeGRTOy0mDfanYvokXr8s72lTD9omqiMy73G3B0JaA0DwvErTRc0HkvhPTmA-CIcAXuQ/contexts/actions_capability_audio_output"
      },
      {
        "name": "projects/labeeb-nlddnb/agent/sessions/ABwppHHtMXYQddZeGRTOy0mDfanYvokXr8s72lTD9omqiMy73G3B0JaA0DwvErTRc0HkvhPTmA-CIcAXuQ/contexts/actions_capability_web_browser"
      },
      {
        "name": "projects/labeeb-nlddnb/agent/sessions/ABwppHHtMXYQddZeGRTOy0mDfanYvokXr8s72lTD9omqiMy73G3B0JaA0DwvErTRc0HkvhPTmA-CIcAXuQ/contexts/actions_capability_screen_output"
      },
      {
        "name": "projects/labeeb-nlddnb/agent/sessions/ABwppHHtMXYQddZeGRTOy0mDfanYvokXr8s72lTD9omqiMy73G3B0JaA0DwvErTRc0HkvhPTmA-CIcAXuQ/contexts/google_assistant_input_type_keyboard"
      },
      {
        "name": "projects/labeeb-nlddnb/agent/sessions/ABwppHHtMXYQddZeGRTOy0mDfanYvokXr8s72lTD9omqiMy73G3B0JaA0DwvErTRc0HkvhPTmA-CIcAXuQ/contexts/difficulty_ctx",
        "lifespanCount": 4,
        "parameters": {
          "course_name": "Machine Learning",
          "course_name.original": "Machine Learning"
        }
      }
    ],
    "intent": {
      "name": "projects/labeeb-nlddnb/agent/intents/d2d12691-624a-43cd-8b88-b3c7116831dd",
      "displayName": "difficulty"
    },
    "intentDetectionConfidence": 1,
    "languageCode": "en"
  },
  "originalDetectIntentRequest": {
    "source": "google",
    "version": "2",
    "payload": {
      "user": {
        "locale": "en-US",
        "lastSeen": "2019-07-24T16:47:07Z",
        "userVerificationStatus": "VERIFIED"
      },
      "conversation": {
        "conversationId": "ABwppHHtMXYQddZeGRTOy0mDfanYvokXr8s72lTD9omqiMy73G3B0JaA0DwvErTRc0HkvhPTmA-CIcAXuQ",
        "type": "ACTIVE",
        "conversationToken": "[\"difficulty_ctx\"]"
      },
      "inputs": [
        {
          "intent": "actions.intent.TEXT",
          "rawInputs": [
            {
              "inputType": "KEYBOARD",
              "query": "Very difficult"
            }
          ],
          "arguments": [
            {
              "name": "text",
              "rawText": "Very difficult",
              "textValue": "Very difficult"
            }
          ]
        }
      ],
      "surface": {
        "capabilities": [
          {
            "name": "actions.capability.ACCOUNT_LINKING"
          },
          {
            "name": "actions.capability.MEDIA_RESPONSE_AUDIO"
          },
          {
            "name": "actions.capability.AUDIO_OUTPUT"
          },
          {
            "name": "actions.capability.WEB_BROWSER"
          },
          {
            "name": "actions.capability.SCREEN_OUTPUT"
          }
        ]
      },
      "isInSandbox": true,
      "availableSurfaces": [
        {
          "capabilities": [
            {
              "name": "actions.capability.AUDIO_OUTPUT"
            },
            {
              "name": "actions.capability.SCREEN_OUTPUT"
            },
            {
              "name": "actions.capability.WEB_BROWSER"
            }
          ]
        }
      ],
      "requestType": "SIMULATOR"
    }
  },
  "session": "projects/labeeb-nlddnb/agent/sessions/ABwppHHtMXYQddZeGRTOy0mDfanYvokXr8s72lTD9omqiMy73G3B0JaA0DwvErTRc0HkvhPTmA-CIcAXuQ"
}

Есть ли у кого-нибудь этому объяснение?


person Yaser Marey    schedule 24.07.2019    source источник
comment
Если вы используете план Essentials, у вас должна быть возможность использовать функцию облачной поддержки, чтобы узнать, ожидается ли это или нет. Может быть, это намеренно, что поле не пропущено, или упущение.   -  person Nick Felker    schedule 24.07.2019


Ответы (2)


Анализ настроений не поддерживается для запросов, исходящих от Google Assistant.

Вы можете найти это утверждение в настройках своего чат-бота Dialogflow на Dialogflow.com на вкладке «Дополнительно» (чуть ниже переключателя, чтобы включить анализ настроений).

person zwif    schedule 25.10.2019

Фактически, настроения тоже не регистрируются, даже за пределами G Assistant. Вот журнал из Операции- ›Ведение журнала в GCP, где регистрируются взаимодействия Dialogflow, когда вы включаете ведение журнала. К сожалению, этот журнал отличается от журнала Raw Interaction, который вы получаете из пользовательского интерфейса Dialogflow. Это менее подробно.

Обратите внимание, что все самое интересное упаковано в textPayload - текстовую строку, которую очень сложно проанализировать. Все, что есть, - это переменная Score, которая представляет собой оценку достоверности. Слава богу, хоть это там есть!

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

:(

{
  "textPayload": "Dialogflow Response : id: \"100aea48-26f8-46b5-ab3a-e48febb0dd1f-e13762d2\"\nlang: \"en\"\nsession_id: \"2e63bd78-79f3-7b02-6efd-5d9f96e1c382\"\ntimestamp: \"2020-06-28T14:08:49.563Z\"\nresult {\n  source: \"agent\"\n  resolved_query: \"thank you bye\"\n  score: 0.68635064\n  parameters {\n  }\n  contexts {\n    name: \"__system_counters__\"\n    lifespan: 1\n    parameters {\n      fields {\n        key: \"no-input\"\n        value {\n          number_value: 0.0\n        }\n      }\n      fields {\n        key: \"no-match\"\n        value {\n          number_value: 0.0\n        }\n      }\n    }\n  }\n  metadata {\n    intent_id: \"e5b0d316-d0a0-40c4-b0c3-b0565712aee4\"\n    intent_name: \"Closing\"\n    webhook_used: \"false\"\n    webhook_for_slot_filling_used: \"false\"\n    is_fallback_intent: \"false\"\n  }\n  fulfillment {\n    speech: \"closing intent matched\"\n    messages {\n      lang: \"en\"\n      type {\n        number_value: 0.0\n      }\n      speech {\n        string_value: \"closing intent matched\"\n      }\n    }\n  }\n}\nstatus {\n  code: 200\n  error_type: \"success\"\n}\n",
  "insertId": "1k1ucxsfhckbar",
  "resource": {
    "type": "global",
    "labels": {
      "project_id": "qualitymanagement-eooojp"
    }
  },
  "timestamp": "2020-06-28T14:08:49.574Z",
  "severity": "INFO",
  "labels": {
    "protocol": "V2",
    "request_id": "100aea48-26f8-46b5-ab3a-e48febb0dd1f-e13762d2",
    "type": "dialogflow_response"
  },
  "logName": "projects/qualitymanagement-eooojp/logs/dialogflow_agent",
  "trace": "2e63bd78-79f3-7b02-6efd-5d9f96e1c382",
  "receiveTimestamp": "2020-06-28T14:08:49.589705622Z"
}
person BigRig    schedule 28.06.2020