Watson Conversation:从上下文数组返回随机条目

Watson Conversation: Returning random entry from context array

假设我有一个带有数组的上下文变量,例如已识别的实体。在 Watson Conversation Service (WCS) 中,可以 return responses in sequence or in random. What I am looking for is to have a single response in the dialog node, but to randomly pick an array entry and return it. I know that I can use Spring Expression Language (SpEL) for advanced evaluations。这不起作用并给出错误:

Here is a random entity:
 <? entities[(int) (entities.size() * T(java.lang.Math).random() ].value ?>

如何才能为数组访问生成有效的整数值?

我找到了解决该错误的方法。需要将随机值转换为/强制转换为整数。 Watson Conversation 对话节点中的以下响应 return 是已识别实体的随机条目。

Here is a random entity:
 <? entities[(entities.size() * T(java.lang.Math).random()).intValue()].value ?>

当从应用程序向 WCS 传递一些选项时,对话框现在可以随机选择一个并return它作为响应。