dialogflow-es - 为每个意图启用 Dialogflow 的履行 webhook
问题描述
我正在使用履行 webhook 将分析数据存储在我的服务器上,因此我需要在所有可能的意图上启用它。到目前为止,我一直在通过在每个意图上手动检查“为此意图启用 webhook 调用”来做到这一点。不过这有点危险,因为很容易忘记故意这样做。是否有任何全局方法可以为所有意图启用它?
解决方案
没有直接的方法可以做到这一点,但我已经制作了一个 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')
希望能帮助到你。
推荐阅读
- arrays - 如果在双引号内,则忽略逗号上的 awk 拆分字符串
- android - 运行使用 React Native 构建的移动应用程序的最低硬件和软件要求
- javascript - 在数据库中存储已加入临时事件的(用户)列表的最佳方法?
- python - 如何重新缩放一系列比率值,从 1 而不是 0 开始,而不会失去静态意义
- python - 使用 private.txt 安装 python 包不起作用
- haskell - 如何在不翻译为 >>= 组合的情况下快速阅读 do 符号?
- machine-learning - 机器学习模型,用于查找网页上对象的权重/贡献
- sql - 计算每个 ID 的项目数
- android - 如何在 Kotlin 中使用 RecyclerView
- json - 带有 Json 主体的 ASP.NET MVC 代码模型绑定失败