[Модуль] API.AI (apiai)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Модуль API.AI

Сообщение Gelezako » Пн мар 26, 2018 8:11 pm

хельп, решил потестить контексты, в обработчик вписал:
say("контекст ".$contexts);
say("контекст2 ".$context($name));

В консоль мжд ответило:
20:06 server: контекст2
20:06 server: контекст Array

Т.е. $contexts вернуло "Array". Даже если он пустой почему выводит слово "Array"?

Добавил один конекст, но результат не поменялся.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Модуль API.AI

Сообщение fandaymon » Пн мар 26, 2018 8:24 pm

Gelezako писал(а):хельп, решил потестить контексты, в обработчик вписал:
say("контекст ".$contexts);
say("контекст2 ".$context($name));

В консоль мжд ответило:
20:06 server: контекст2
20:06 server: контекст Array

Т.е. $contexts вернуло "Array". Даже если он пустой почему выводит слово "Array"?

Добавил один конекст, но результат не поменялся.
Так написано же в описании -
$contexts
Массив контекстов из ответа сервиса
пустой массив всё равно остаётся массивом. Чтобы посмотреть что там, в этот массиве, дай команду print_r($contexts)
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Модуль API.AI

Сообщение olehs » Пн мар 26, 2018 8:44 pm

так сервис возвращает
34.png
34.png (23.56 КБ) 3200 просмотров
Кроме того, сам контекст - тоже массив, т.к. в нем могут быть параметры
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Модуль API.AI

Сообщение olehs » Пн мар 26, 2018 8:52 pm

Вот пример ответа с контекстами
СпойлерПоказать

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

{
  "id": "a9f8f45a-dc52-4988-96a4-ce1294899ba5",
  "timestamp": "2018-03-26T17:50:06.07Z",
  "lang": "ru",
  "result": {
    "source": "agent",
    "resolvedQuery": "привет",
    "action": "welcome",
    "actionIncomplete": false,
    "parameters": [],
    "contexts": [
      {
        "name": "terminal-olegnote",
        "parameters": {
          "terminal": "olegnote",
          "terminal.original": "olegnote"
        },
        "lifespan": 4
      },
      {
        "name": "known-terminal",
        "parameters": {
          "terminal": "olegnote",
          "terminal.original": "olegnote"
        },
        "lifespan": 4
      },
      {
        "name": "user-oleg",
        "parameters": {
          "user.original": "Олег",
          "user": "oleg"
        },
        "lifespan": 4
      },
      {
        "name": "known-user",
        "parameters": {
          "user.original": "Олег",
          "user": "oleg"
        },
        "lifespan": 5
      }
    ],
    "metadata": {
      "intentId": "7a40b083-9d6b-48fb-b291-0b3118917622",
      "webhookUsed": "false",
      "webhookForSlotFillingUsed": "false",
      "intentName": "Привет, %username%"
    },
    "fulfillment": {
      "speech": "Здравствуй, Олег",
      "messages": [
        {
          "type": 0,
          "speech": "Привет, Олег"
        }
      ]
    },
    "score": 1
  },
  "status": {
    "code": 200,
    "errorType": "success",
    "webhookTimedOut": false
  },
  "sessionId": "olegnote.5ab932d20ceed"
} 
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Модуль API.AI

Сообщение Gelezako » Пн мар 26, 2018 8:54 pm

Что-то я никак не могу понять как мне их использовать.
olehs, можно тебя попросить экспортировать из dialogflow интент и энтити, которые это наглядно демонстрируют?
И скинуть что бы я мог их импортнуть и посмотреть.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Модуль API.AI

Сообщение Gelezako » Пн мар 26, 2018 8:58 pm

fandaymon писал(а): пустой массив всё равно остаётся массивом. Чтобы посмотреть что там, в этот массиве, дай команду print_r($contexts)
выполнил

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

say("контекст ".print_r($contexts)); 
у моего интента нет контекста, но результат выполнения такой

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

контекст 1
Почему "1" ?
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Модуль API.AI

Сообщение fandaymon » Пн мар 26, 2018 9:10 pm

Gelezako писал(а):
fandaymon писал(а): пустой массив всё равно остаётся массивом. Чтобы посмотреть что там, в этот массиве, дай команду print_r($contexts)
выполнил

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

say("контекст ".print_r($contexts));
у моего интента нет контекста, но результат выполнения такой

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

контекст 1
Почему "1" ?
Не в say вывести, а просто на экран. 1 это означает скорее всего что print_r отработал нормально
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Модуль API.AI

Сообщение Gelezako » Пн мар 26, 2018 9:38 pm

fandaymon писал(а): Не в say вывести, а просто на экран. 1 это означает скорее всего что print_r отработал нормально
Не понимаю почему вы советуете просто использовать print_r(), тут же нет возможность увидеть аутпут как это обычно происхохит. Вы пробовали писать сценарии для API.AI ? Я могу увидеть что там приехало в переменной только через say(). Ещё можно выводить в дебаг через debmes().
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Модуль API.AI

Сообщение olehs » Пн мар 26, 2018 9:40 pm

Gelezako писал(а):Что-то я никак не могу понять как мне их использовать.
olehs, можно тебя попросить экспортировать из dialogflow интент и энтити, которые это наглядно демонстрируют?
И скинуть что бы я мог их импортнуть и посмотреть.
Какой нужен пример: с входящими контекстами или исходящими (в терминологии сервиса)?
Входящие контексты можно использовать как условия для сработки разных интентов (типа фильтровать интенты).
Исходящие - не так много вариантов применений. Они скорее нужны в самом dialogflow для ведения диалогов. Ну кроме тех, которые Модуль отсылает, а сервис возвращает назад (known-user, known-terminal etc.)
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Модуль API.AI

Сообщение olehs » Пн мар 26, 2018 9:41 pm

Gelezako писал(а):
fandaymon писал(а): Не в say вывести, а просто на экран. 1 это означает скорее всего что print_r отработал нормально
Не понимаю почему вы советуете просто использовать print_r(), тут же нет возможность увидеть аутпут как это обычно происхохит. Вы пробовали писать сценарии для API.AI ? Я могу увидеть что там приехало в переменной только через say(). Ещё можно выводить в дебаг через debmes().
я вот так вывожу в лог

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

debmes(json_encode($data, true));
Ответить