首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

[dialogflow][actions-on-google]用于填充空位的复合实体

在Dialogflow和Actions-on-Google中,复合实体(Composite Entity)是一种特殊的实体类型,用于捕获用户输入中的多个值,并将这些值组合成一个结构化的对象。这在处理需要多个字段的复杂输入时非常有用,例如填写表单或创建具有多个属性的对象。

以下是如何在Dialogflow中创建和使用复合实体的步骤:

1. 创建复合实体

  1. 登录Dialogflow控制台
    • 打开 Dialogflow Console
    • 并登录。
  2. 创建新的实体
    • 导航到 Entities 部分,然后点击 Create Entity
    • 输入实体的名称,例如 OrderDetails
  3. 定义复合实体的组件
    • 在实体编辑页面,点击 Add Component
    • 添加所需的各个字段,例如 ProductName, Quantity, Price 等。
    • 为每个字段定义可能的值或使用正则表达式来匹配输入。
  4. 保存实体
    • 完成所有组件的定义后,点击 Save

2. 在意图中使用复合实体

  1. 创建或编辑意图
    • 导航到 Intents 部分,然后创建一个新的意图或编辑现有的意图。
  2. 添加训练短语
    • 在意图编辑页面,添加一些训练短语来模拟用户输入。例如:
      • “我想订购 3 个苹果”
      • “请给我 2 瓶牛奶和 1 包面包”
  3. 设置实体提取
    • 在训练短语中,高亮显示需要提取的部分,并选择你之前创建的复合实体。例如:
      • 高亮“3 个苹果”,选择 OrderDetails.ProductNameOrderDetails.Quantity
      • 高亮“2 瓶牛奶”,选择 OrderDetails.ProductNameOrderDetails.Quantity
  4. 保存意图
    • 完成所有训练短语和实体提取设置后,点击 Save

3. 在Actions-on-Google中处理复合实体

  1. 定义参数
    • 在Actions-on-Google控制台中,导航到你的动作并编辑意图。
    • 定义与Dialogflow复合实体对应的参数,例如 OrderDetails
  2. 处理用户输入
    • 在意图的处理逻辑中,你可以访问复合实体的各个字段。例如: const orderDetails = agent.parameters.OrderDetails; const productName = orderDetails.ProductName; const quantity = orderDetails.Quantity; const price = orderDetails.Price;

示例

假设你有一个复合实体 OrderDetails,包含 ProductName, Quantity, 和 Price 字段。用户输入“我想订购 3 个苹果”,Dialogflow会将其解析为:

代码语言:javascript
复制
{
  "OrderDetails": {
    "ProductName": "苹果",
    "Quantity": "3",
    "Price": null
  }
}

在Actions-on-Google中,你可以这样处理:

代码语言:javascript
复制
app.intent('OrderIntent', (conv) => {
  const orderDetails = conv.parameters.OrderDetails;
  const productName = orderDetails.ProductName;
  const quantity = orderDetails.Quantity;
  const price = orderDetails.Price;

  conv.ask(`您订购了 ${quantity} 个 ${productName}`);
});

通过这种方式,你可以有效地处理和填充复杂的用户输入,提升用户体验。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券