Выполнение веб-перехватчика Google DialogFlow ESСообщения игнорируютсяPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Выполнение веб-перехватчика Google DialogFlow ESСообщения игнорируются

Сообщение Anonymous »

Я создал простое намерение с помощью консоли диалогового потока Google. По сути, он заставляет собеседника ответить на 4 вопроса, а затем через ngrok попадает в конечную точку веб-перехватчика в моем окне разработчика.
Конечная точка возвращает следующую полезную нагрузку приложения/json:
Конечная точка возвращает следующую полезную нагрузку application/json:
р>

Код: Выделить всё

{
"fulfillmentMessages": [
{
"text": {
"text": [
"Larry Johnson, thank you for choosing XYZ Corp. Your info is on the way!"
]
}
}
]
}
Он обращается к приложению Laravel для веб-перехватчика Diaglogflow (без выполнения слота) и работает должным образом, если я выполняю поток из консоли диалогового потока:
Изображение

Необработанный ответ API

Код: Выделить всё

{
"responseId": "933d20f8-1b43-41f4-8667-51e2e49a6703-18dedd3b",
"queryResult": {
"queryText": "5pm to 8pm",
"parameters": {
"callback_date": [
"2023-03-10T12:00:00-05:00"
],
"callback_time": [
{
"endTime": "2023-03-05T20:00:00-05:00",
"startTime": "2023-03-05T17:00:00-05:00"
}
],
"loan_type": "second",
"loan_amount": 250000,
"person": {
"name": "John Johonson"
}
},
"allRequiredParamsPresent": true,
"fulfillmentText": "John Johonson, thank you for letting us know the best time to contact you. We will call you between 17:00:00/20:00:00 on 2023-03-10T12:00:00-05:00. If you need to update your availability, text \"update info\" to this number or call 800-555-1212.",
"fulfillmentMessages": [
{
"text": {
"text": [
"Thank you for choosing XYZ Corp"
]
}
}
],
"outputContexts": [
{
"name": "projects/norse-journey-343620/agent/sessions/eb3f7bb1-b2d7-b4df-4371-58cb9100a546/contexts/loan",
"lifespanCount": 5,
"parameters": {
"callback_time": [
{
"startTime": "2023-03-05T17:00:00-05:00",
"endTime": "2023-03-05T20:00:00-05:00"
}
],
"callback_date": [
"2023-03-10T12:00:00-05:00"
],
"loan_amount": 250000,
"loan_type.original": "second",
"person.original": "John Johonson",
"callback_time.original": [
"5pm to 8pm"
],
"person": {
"name": "John Johonson"
},
"callback_date.original": [
"friday"
],
"loan_amount.original": "250,000",
"loan_type": "second"
}
}
],
"intent": {
"name": "projects/norse-journey-343620/agent/intents/7aa3f1c0-dfc7-4a8e-9fa3-88100dfdca26",
"displayName": "AFTER-HRS-INQ",
"endInteraction": true
},
"intentDetectionConfidence": 1,
"diagnosticInfo": {
"end_conversation": true,
"webhook_latency_ms": 2259
},
"languageCode": "en",
"sentimentAnalysisResult": {
"queryTextSentiment": {}
}
},
"webhookStatus": {
"message": "Webhook execution successful"
}
}
Текст «Спасибо за выбор XYZ Corp» выводится в консоль диалогового потока, как и ожидалось.
С другой стороны, если я вызываю API диалогового потока ES через приложение php, веб-перехватчик все еще активен, и все процедуры выполняются правильно, а трассировка диалогового потока (из консоли диалогового потока -> История) показывает, что он был успешным. , ошибок нет, но по какой-то причине кажется, что оно игнорирует инструкцию выполненияMessages, возвращаемую веб-перехватчиком.
Приложение php реагирует на веб-перехватчик Twilio для входящего SMS-сообщения . Мой php-бэкенд берет текст из SMS и отправляет его в API диалогового потока Google, в результате чего запускается веб-хук диалогового потока Google, как если бы я просматривал поток вручную с помощью консоли диалогового потока.
Очевидная разница заключается в том, что мое php-приложение обращается к API диалогового потока, а не проходит через поток в консоли диалогового потока. Я упускаю разницу примерно через день, раздумывая над этим.
Мой API-интерфейс веб-перехватчика по-прежнему обрабатывается в любом случае, и результат, возвращаемый веб-перехватчиком, похоже, имеет правильное сообщение выполнения < Структура /code> возвращается в обоих случаях. Наш существующий API для диалогового потока в нашем приложении работает иначе, и это, похоже, тоже работает, за исключением того, что он не использует инструкцию выполненияMessages, возвращаемую из веб-перехватчика, а вместо этого использует текст по умолчанию, настроенный для намерения внутри диалогового потока. консоль, когда веб-перехватчик попадает в результате моего вызова php API в диалоговом потоке.
Вывод из консоли диалогового потока, когда веб-перехватчик попадает в результате php API вызов диалогового потока. Обратите внимание: это указывает на то, что вебхук прошел успешно, нет ошибок анализа и т. д.

Код: Выделить всё

{
"id": "681914f0-8c0b-429f-b516-5fb6e6754a94-18dedd3b",
"fulfillmentText": "larry johnson, thank you for letting us know the best time to contact you. We will call you between 06:00:00/21:00:00 on 2023-03-08T12:00:00-05:00.  If you need to update your availability, text \"update info\" to this number or call 800-555-1212.",
"language_code": "en",
"queryText": "6am to 9pm",
"webhookPayload": {},
"intentDetectionConfidence": 1,
"action": "",
"webhookSource": "",
"parameters": {
"callback_date": [
"2023-03-08T12:00:00-05:00"
],
"callback_time": [
{
"endTime": "2023-03-06T21:00:00-05:00",
"startTime": "2023-03-06T06:00:00-05:00"
}
],
"loan_type": "second",
"person": {
"name": "larry johnson"
},
"loan_amount": "200000.0"
},
"fulfillmentMessages": [
{
"text": {
"text": [
"Thank you for choosing XYZ Corp"
]
}
}
],
"diagnosticInfo": {
"end_conversation": true,
"webhook_latency_ms": "1115.0"
},
"webhookStatus": {
"webhookStatus": {
"message": "Webhook execution successful"
},
"webhookUsed": true
},
"outputContexts": [
{
"lifespanCount": 5,
"name": "loan",
"parameters": {
"callback_time.original": [
"6am to 9pm"
],
"callback_date": [
"2023-03-08T12:00:00-05:00"
],
"loan_type": "second",
"loan_amount": "200000.0",
"loan_amount.original": "200000",
"loan_type.original": "second",
"callback_time": [
{
"endTime": "2023-03-06T21:00:00-05:00",
"startTime": "2023-03-06T06:00:00-05:00"
}
],
"person.original": "larry johnson",
"callback_date.original": [
"wed"
],
"person": {
"name": "larry johnson"
}
}
}
],
"intent": {
"isFallback": false,
"displayName": "AFTER-HRS-INQ",
"id": "7aa3f1c0-dfc7-4a8e-9fa3-88100dfdca26"
}
}
Опять же, при отправке обратно из конечной точки веб-перехватчика та же структура для установки обратного отображения текста.

Код: Выделить всё

{
"fulfillmentMessages": [
{
"text": {
"text": [
"Thank you for choosing XYZ Corp"
]
}
}
]
}
Любая помощь или идеи будут очень признательны.

Подробнее здесь: https://stackoverflow.com/questions/756 ... ng-ignored
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Фатальная ошибка PHP: класс "Google \ Cloud \ Dialogflow \ v2 \ sessionsClient" Не найдено в теме WordPress Child
    Anonymous » » в форуме Php
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Является ли отраслевым стандартом использование Dialogflow для чат-ботов на веб-сайтах компаний? [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Заявления Элиф игнорируются, несмотря на выполнение условий? (Python 3.12) [дубликат]
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Миграция с DialogFlow на Rasa
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Ошибка при использовании DialogflowPHP: как использовать Dialogflow PHP?
    Anonymous » » в форуме Php
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»