В чем проблема моего запроса диалогового потока в коде (он работает с почтальоном)? - PullRequest
0 голосов
/ 10 июля 2020

У меня проблема с моим приложением чат-бота. Я просто не нахожу ошибки, почему я не могу вызвать API диалогового процесса с моим запросом из кода, хотя он работает с тем же запросом от почтальона. Даже поддержка диалогового потока говорит, что запрос правильный.

Можно ли как-то заблокировать его из диалогового потока? Или он не меняет автоматически код javascript на объект json?

Ниже я отправляю вам код моего приложения (фрагмент кода 1), фактический результат запроса кода (фрагмент кода 2 ), желаемый результат, который возвращается, когда я использую почтальон (фрагмент кода 3), и снимок экрана с намерением в диалоговом потоке (снимок экрана 1).

фрагмент кода 1: код моего приложения

const fetchAnswerFromDialogflow = async (userInput, currentChatbotInEdit) => {

const config = {
      headers: {
        Authorization: "Bearer " + clientToken,
        "Content-Type": "application/json; charset=utf-8",
      },
    };

const request = {
      queryParams: {
        contexts: [
          {
            name:
              `projects/myteachingbot-arxmxd/agent/sessions/myteachingbot-session${state.sessionId}/contexts/Chatbotcontext726`,
            lifespanCount: 1,
          },
          {
            name:
              `projects/myteachingbot-arxmxd/agent/sessions/myteachingbot-session${state.sessionId}/contexts/Chatbotcontext7262`
              inputContext1,
            lifespanCount: 1,
          },
        ],
        resetContexts: true,
      },
      queryInput: {
        text: {
          text: userInput,
          languageCode: "en-US",
        },
      },
    };
try {
      const res = await axios.post(
        `https://dialogflow.googleapis.com/v2/projects/myteachingbot-arxmxd/agent/sessions/myteachingbot-session${state.sessionId}:detectIntent`,
        request,
        config
      );
      console.log(res);

}

фрагмент кода 2: фактический результат запроса кода

{
  "responseId": "8a9ead3d-f3ea-4a75-b110-257454069382-425db6e2",
  "queryResult": {
    "queryText": "start",
    "parameters": {},
    "languageCode": "en"
  }
}

фрагмент кода 3: желаемый результат, который я получаю от почтальона:

{
  "responseId": "f8ea7646-576a-4789-a88f-d0f80416de84-425db6e2",
  "queryResult": {
    "queryText": "start",
    "parameters": {},
    "allRequiredParamsPresent": true,
    "fulfillmentText": "Frage 1",
    "fulfillmentMessages": [
      {
        "text": {
          "text": [
            "Frage 1"
          ]
        }
      }
    ],
    "intent": {
      "name": "projects/myteachingbot-arxmxd/agent/intents/70aa4273-5368-4a40-acc3-484c8ad415df",
      "displayName": "Frage7261"
    },
    "intentDetectionConfidence": 1,
    "languageCode": "en"
  }
}

снимок экрана с намерением в консоли диалогового процесса

1 Ответ

0 голосов
/ 10 июля 2020

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

Dialogflow вызовет только Намерение, которое содержит событие, если это событие отправлено как часть запроса обнаружения намерения.

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