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

如何修改SiriKit支付指令识别规则?INPayBillIntent自定义词汇问题

解决SiriKit INPayBillIntent 自定义机构名称的识别问题

我之前做Siri账单支付功能时也碰到过一模一样的情况——默认情况下Siri确实需要“Bill”这类关键词来绑定到INPayBillIntent,核心原因是要区分「给Devon转账」和「支付Devon的账单」这两种不同意图。不过咱们可以通过几个配置调整,实现你要的“Pay Devon”直接触发账单支付的效果:

1. 完善自定义词汇的注册

首先要让Siri把“Devon”和账单收款人强关联起来,在App启动时调用INVocabularyAPI完成词汇注册:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    let customBillPayees = ["Devon"]
    INVocabulary.shared().setVocabularyStrings(customBillPayees, of: .billPayee)
    return true
}

这个操作会明确告诉Siri:“Devon”是一个账单支付机构,而非普通联系人。

2. 调整Intent Definition的短语模板

打开你的.intentdefinition文件,找到INPayBillIntent的配置:

  • 切换到Phrases标签页,默认触发短语可能只有“Pay [payee] Bill”这类格式,手动添加新的短语模板:
    • Pay [payee]
    • Settle [payee]
      这样Siri会学习这些新触发模式,不需要“Bill”关键词也能关联到账单支付意图。
  • 同时检查payee参数设置,确保它的类型是BillPayee,并且勾选“Supports Search Results”,让Siri能从你的自定义词汇库中匹配机构名称。

3. 优化Intent Handler的解析逻辑

在实现INPayBillIntentHandling的类中,重写resolvePayee方法,主动帮Siri区分账单机构和普通联系人:

extension BillPaymentIntentHandler: INPayBillIntentHandling {
    func resolvePayee(for intent: INPayBillIntent, with completion: @escaping (INBillPayeeResolutionResult) -> Void) {
        guard let payeeName = intent.payee?.name else {
            completion(.needsValue())
            return
        }
        
        // 匹配自定义账单机构
        if payeeName.lowercased() == "devon" {
            let billPayee = INBillPayee(name: payeeName)
            completion(.success(with: billPayee))
        } else {
            // 其他名称根据业务需求返回对应结果
            completion(.unsupported())
        }
    }
}

这一步很关键——Siri可能会把“Pay Devon”误判为转账意图,通过这里的解析,我们明确告知Siri这是账单支付的收款人。

4. 训练Siri适应你的使用习惯

完成配置后,多手动触发几次“Pay Devon”指令,比如在Siri中说出这句话并确认跳转到你的账单支付界面,Siri会学习你的使用习惯,后续识别会越来越准确。也可以用Xcode的Siri测试工具模拟语音输入,验证意图是否被正确识别。

内容的提问来源于stack exchange,提问作者Mohamad Sheikh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:08:21