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

启用Watson Assist sys-location实体后,能否根据国名返回国家代码?

完全可以实现这个需求!

其实Watson Assistant的sys-location实体本身就内置了国家代码的属性,不需要额外复杂配置就能满足你的需求,下面分两种场景给你具体实现步骤:

一、直接利用sys-location的内置属性(推荐)

当sys-location识别到用户输入的是国家名称时,它会返回包含国家代码的结构化数据,其中alpha-2字段就是你需要的两位国家代码(比如JP、CN)。具体操作如下:

  1. 确认实体配置:

    • 进入你的Watson Assistant技能,打开实体面板,找到sys-location实体
    • 确保实体的识别类型里勾选了Country(这是默认启用的,但建议确认一下)
  2. 在对话框中获取并返回代码:

    • 在处理用户输入的对话框节点里,你可以直接通过变量访问国家代码:$sys-location.country.alpha-2
    • 比如设置响应文本为:你输入的国家代码是:$sys-location.country.alpha-2
    • 测试一下:用户输入"Japan",系统会返回"你输入的国家代码是:JP";输入"China"则返回"你输入的国家代码是:CN"

二、自定义映射处理特殊场景

如果遇到某些国家名称识别有偏差,或者需要支持自定义别名(比如用户输入"米国"对应US),可以通过脚本添加自定义映射表:

  1. 添加脚本节点:
    在对话框节点的"Script"标签里,添加以下代码:

    // 定义自定义国家名称-代码映射表
    const customCountryMap = {
      "米国": "US",
      "天朝": "CN",
      // 可以根据需求添加更多条目
    };
    
    // 优先从自定义映射获取,如果没有则用内置的alpha-2代码
    let countryCode = null;
    const recognizedCountryName = $sys-location?.country?.name;
    
    if (recognizedCountryName && customCountryMap[recognizedCountryName]) {
      countryCode = customCountryMap[recognizedCountryName];
    } else {
      countryCode = $sys-location?.country?.alpha-2;
    }
    
    // 将结果存入上下文变量,方便后续使用
    context.set("custom_country_code", countryCode);
    
  2. 在响应中使用变量:
    设置响应文本为:对应的国家代码是:$custom_country_code

额外注意事项

  • 对于多语言输入(比如中文"中国"、英文"China"),sys-location都能正确识别并返回对应的CN代码,无需额外配置
  • 如果发现某些国家名称识别不准确,可以在技能的"Training"面板添加示例 utterance,帮助Watson提升识别精度

内容的提问来源于stack exchange,提问作者george jiang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:40:26