node.js - 使用 Dialogflow REST API V2 自动注释训练短语,同时批量更新它们

标签 node.js dialogflow-es

我正在使用对话流 REST API V2 batchUpdate意图,即使用 Node.js 将更多训练短语发布到我的对话流代理中的每个意图。我在 .txt 文件中有这些训练短语(短语以 '\n' 字符分隔),我的 node.js 脚本将其解析为 training phrase调用batchUpdate方法之前的对象。我当前的代理有一堆我创建的自定义实体。我用entity List方法来获取我定义的所有实体,并手动获取代码来检查我的训练短语中是否存在任何这些实体类型,以便相应地对其进行解析。

但是,我的问题是,我希望对话流在处理过程中自动检测一些系统定义的实体(例如@sys.given-name、@sys.date 等)。我在捕获自定义实体方面似乎没有任何问题,因为我的脚本“嗅探”出这些实体类型并将我的训练短语分解为相应的 parts 。我希望对话流能够类似地注释系统定义实体,而无需我再次手动将训练短语分解为多个部分。

我看到 part对象有一个名为“userDefined”的参数,我不完全理解。切换此参数并没有改变我的训练短语对象中的任何内容。我还可以看到 TrainingPhrase object 带有一个“type”参数,我也尝试过使用它。我不清楚 TYPE_UNSPECIFIED 的含义以及为什么 EXAMPLE 是唯一的其他选项,它不允许在训练短语中包含 @ 前缀的实体类型名称。

是否有一个我可能没有在训练短语对象中设置的参数,以允许对话流自动检测这些 @ 前缀的实体类型名称?

这是我在请求正文中使用的intentBatch 对象。

{
  "intentBatchInline": {
    "intents": [
      {
        "displayName": "cheese",
        "name": " projects/copy-c6f8c/agent/intents/07207104-75f1-4ed0-b97a-8d6931f9049e",
        "trainingPhrases": [
          {
            "type": "TYPE_UNSPECIFIED",
            "parts": [
              {
                "text": "Here's my Indian phone number: 5432543243",
                "userDefined": false
              }
            ]
          }
        ]
      }
    ],
  }
}

最佳答案

更新:我在他们的文档中发现 API 无法像 Dialogflow 控制台那样自动注释短语。如果有人有任何其他建议或 NLP 库可以帮助我用一些预定义的实体注释我的短语,请告诉我。

[Link](https://cloud.google.com/dialogflow-enterprise/docs/reference/rest/v2/projects.agent.intents#TrainingPhrase)

关于node.js - 使用 Dialogflow REST API V2 自动注释训练短语,同时批量更新它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55960738/

相关文章:

node.js - Docker 构建不使用 npm ci 的缓存

mysql - Sequelize 如何比较日期的年份和月份

angularjs - 显示来自 Redis 的编码数据

node.js - 如何过滤掉多余的模型属性

javascript - HapiJs 根据角色路由访问

node.js - 如何在 Dialogflow 中获取用户响应

javascript - 如何在不同的 Firebase 文档上记录来自与 DialogFlow 机器人的不同对话的响应?

node.js - Dialogflow Webhook 实现代码失败

backend - 具有用户特定数据的对话流

dialogflow-es - 使用多个 DialogFlow 的 Webhook 查询 Google Cloud 外部的 API 端点