You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Watson Conversation Service中列出机器人所用的@Cities实体值

实现方法详解

嘿,这事儿不难,我给你拆解成具体步骤,核心逻辑通用,再针对主流对话机器人平台给你实操例子:

核心思路

不管用什么平台,都需要完成这三步:

  • 第一步:识别用户意图:创建一个专门的意图(比如命名为AskSupportedCities),把用户的问题「这个机器人支持哪些城市?」以及类似变体(比如「你们支持哪些城市?」「机器人能处理哪些城市的请求?」)添加到训练短语里,让机器人能准确识别用户的需求。
  • 第二步:关联@City实体:确保你的机器人能调用到已创建的@City实体,获取所有预设的城市值(Austin、Providence、London、Boston)。
  • 第三步:配置动态回复:把你想要的回复设置成模板,将模板里的$Locations替换为@City实体所有值的拼接字符串,最后返回给用户。

主流平台实操例子

1. Google Cloud Dialogflow(ES/CX)

步骤1:创建意图

  • 打开Dialogflow控制台,进入你的代理,新建意图并命名为AskSupportedCities。
  • 在「训练短语」模块中添加「这个机器人支持哪些城市?」,再补充几个类似问句(比如「机器人支持哪些城市?」)来提升识别准确率。

步骤2:获取实体所有值(推荐用Webhook)

因为直接在回复里硬编码城市值不够灵活(后续实体更新还要手动改回复),所以更推荐用Webhook动态获取:

  • 开启意图的「启用Webhook调用」选项。
  • 在Fulfillment里编写代码,获取@City实体的所有预设值,拼接成逗号分隔的字符串。比如用Node.js的话,代码片段大概是:
    // 假设你已在Dialogflow中定义了@City实体,这里从实体配置中获取所有值
    const cityValues = ["Austin", "Providence", "London", "Boston"]; // 也可以从Dialogflow的实体API动态拉取
    const locations = cityValues.join(", ");
    // 构造回复
    const response = {
      fulfillmentText: `Here are the cities this works with ${locations}, Which city do you want?`
    };
    res.json(response);
    

步骤3:设置回复

Webhook会自动返回构造好的回复,用户提问时就能得到你想要的内容。

2. Microsoft Bot Framework(以Node.js为例)

步骤1:配置意图识别(用LUIS)

  • 在LUIS平台创建意图AskSupportedCities,添加训练短语「这个机器人支持哪些城市?」及变体。
  • 确保LUIS中已定义好@City实体,包含所有城市值。

步骤2:在Bot代码中处理意图

当Bot识别到AskSupportedCities意图时,拼接城市列表并返回回复:

// 在意图处理逻辑中
async handleTurn(turnContext) {
  const cityValues = ["Austin", "Providence", "London", "Boston"];
  const locations = cityValues.join(", ");
  await turnContext.sendActivity(`Here are the cities this works with ${locations}, Which city do you want?`);
}

配图参考

你的@City实体配置示例:
@City实体配置

用户提问示例:
用户提问示例

内容的提问来源于stack exchange,提问作者Carlos Ferreira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:06:21