在 Rasa 中创建插槽时,将插槽声明为实体是否也很重要?

When creating a slot in Rasa, is it also important to declare the slot as an entity?

假设我在 Rasa 中创建了一个名为“yearlybill”的插槽。

我将不得不写:

slots:
  yearlybill:
    type: float
    min_value: 0

所以我的问题是,当我想在我的意图中使用这些插槽时,我是否也必须明确地将其作为一个实体提及?或者是那个选项?

让我们从一些背景开始。

一个应该看成是一个长期记忆槽。您可以通过自定义操作手动将信息存储在其中,而无需使用实体。

实体 是您要提取供以后使用的用户消息的子字符串。常见实体是名称、日期和产品 ID。将实体存储在插槽中很常见,但您不必这样做。您还可以检测实体并让自定义操作从跟踪器检索该信息。

可以定义槽而不定义实体。如果您计划使用自定义操作从用户文本中获取槽值,从技术上讲您不需要实体。但这不是常见的模式。通常你会想要一个特定的实体检测模型来获取实体,以便之后可以将其存储在插槽中。这就是为什么经常看到 domain.yml 文件同时包含插槽和实体定义的原因。