Я создаю бота для помощника 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-адрес выполнения и обрабатывать все самостоятельно? Я склонен к последнему. Я не слишком верю в существующих чат-ботов.
Любая помощь приветствуется.