我可以根据问题中的术语位置提取参数吗?

Can I extract a parameter based on a terms position in a question?

我想根据从文本请求中提取的用户特定号码执行操作:"Open contract number XYZ"。其中 'XYZ' 是我需要的参数值。 XYZ的内容没有明显的界限。它可以是一个真实的数字,也可以是一个字符串。实体类型可以基于请求中的术语位置吗?我希望 dialogflow 可以根据短语的第一部分匹配意图:"Open contract number"。如何获取该短语后面的参数值?

理论上是的。对于这个特定的用例,您可以使用 @sys.any 系统实体。只需确保添加许多可以帮助您的代理检测到它的训练短语。

例如:

确保在训练短语中标记合约编号(或id),以便它可以被正确检测为参数。

现在,您可以使用在您的回复中检测到的值

检测到的意图示例

请记住,使用 any 并不理想(可能导致意外行为);但是,如果您添加大量训练短语并使用上下文来处理对话流,它应该可以正常工作。

补充一个建议​​。如果合约id中有任何可识别的模式,您可以使用regexp entities代替@sys.any,这也会增加准确性。