在 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
文件同时包含插槽和实体定义的原因。
假设我在 Rasa 中创建了一个名为“yearlybill”的插槽。
我将不得不写:
slots:
yearlybill:
type: float
min_value: 0
所以我的问题是,当我想在我的意图中使用这些插槽时,我是否也必须明确地将其作为一个实体提及?或者是那个选项?
让我们从一些背景开始。
一个槽应该看成是一个长期记忆槽。您可以通过自定义操作手动将信息存储在其中,而无需使用实体。
实体 是您要提取供以后使用的用户消息的子字符串。常见实体是名称、日期和产品 ID。将实体存储在插槽中很常见,但您不必这样做。您还可以检测实体并让自定义操作从跟踪器检索该信息。
您可以定义槽而不定义实体。如果您计划使用自定义操作从用户文本中获取槽值,从技术上讲您不需要实体。但这不是常见的模式。通常你会想要一个特定的实体检测模型来获取实体,以便之后可以将其存储在插槽中。这就是为什么经常看到 domain.yml
文件同时包含插槽和实体定义的原因。