Разрешите выполнение Dialhoflow webhook для каждого намерения - PullRequest
0 голосов
/ 20 февраля 2019

Я использую веб-зачеты для выполнения, чтобы хранить аналитические данные на своих серверах, поэтому мне нужно, чтобы они были включены для каждого возможного намерения.До сих пор я делал это, вручную проверяя «Включить вызов webhook для этого намерения» в каждом намерении.Это довольно опасно, так как было бы легко забыть сделать это намеренно.Есть ли какой-либо глобальный способ включить его для всех целей?

1 Ответ

0 голосов
/ 20 февраля 2019

Прямого способа сделать это не существует, но я создал скрипт на python, чтобы сделать то же самое.
Чтобы сделать это, вам необходимо выполнить следующие шаги:

  • Экспортировать агента
    Зайдите в настройки вашего агента, выберите вкладку Экспорт и импорт и выберите Экспорт в формате zip .
    Это даст вам zip-файл вашего агента
  • Поместите zip-файл в ту же папку, где будет находиться ваш файл скрипта Python
  • Запустите скрипт Python
  • Будет создана папка с именем zip
  • Зайдите в эту папкуи выберите все файлы и папки, имеющиеся в этой папке, и заархивируйте их
  • Восстановление вашего агента
    Перейдите в настройки вашего агента, выберите вкладку Экспорт и импорт и выберите Восстановитьиз zip выберите zip-файл, созданный на предыдущем шаге.

Код Python:

import zipfile
import json
import os
import glob

cwd = os.getcwd()

zip_ref = zipfile.ZipFile(cwd + '/your_agent.zip', 'r')
zip_ref.extractall('zipped')
zip_ref.close()

cwd = cwd + '/zipped/intents'

files = glob.glob(cwd + "/*.json")
for file in files:
    print(file)
    if "usersay" not in file:
        json_data= json.loads(open(file).read())
        json_data['webhookUsed'] = True
        with open(file, 'w') as outfile:
            json.dump(json_data, outfile)
print('Done')

Надеюсь, это поможет.

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