在每个意图上都启用Dialogflow的实现Webhook

时间:2019-02-20 13:19:28

标签: dialogflow chatbot dialogflow-fulfillment

我正在使用实现Web挂钩将分析数据存储在我的服务器上,因此我需要在所有可能的意图上将其启用。到目前为止,我一直在通过手动检查每个意图上的“为此意图启用webhook调用”来完成此操作。但是,这有点危险,因为很容易忘记故意这样做。是否有任何全局方式可以针对所有意图启用它?

1 个答案:

答案 0 :(得分:0)

没有直接的方法可以做到这一点,但是我已经制作了一个python脚本来做到这一点。
您需要按照以下步骤完成操作:

  • 导出代理人
    转到代理的设置,选择导出并导入标签,然后选择导出为zip
    这将为您提供代理商的zip文件
  • 将zip文件放入python脚本文件所在的文件夹中 礼物
  • 运行python脚本
  • 将创建一个名为zipped的文件夹
  • 进入该文件夹,然后选择其中存在的所有文件和文件夹 该文件夹并将其压缩
  • 还原您的代理人
    转到代理的设置,选择导出和导入标签,然后选择从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')

希望有帮助。