[SOLVED] Unfeaturized list slot

Hey guys,

Is there a way to set a slot to be an unfeaturized list (i just need the list to do internal calculations, so it shouldn’t affect the conversation)?

I initially set the slot to be unfeaturized, then in my custom code I initialize it as an empty list, which I then fill. But after this initialization, the slot type is automatically changed to a list in the domain (while running interactive training), and throws off the conversation.

Apologies if this has been answered :expressionless:


When I set the initial_value: [] in the domain file, the slot doesn’t get changed, and appears to not be influencing the conversation (even though the generated stories explicitly fill the slot when exported - could someone confirm if this is expected, please?).

What do you mean by the slot doesn’t get changed? Is the list populating correctly?

In my initial implementation, I would create an ‘unfeaturized’ slot in the domain file, but would not set an initial value. Then, in my custom action, I set the slot value to an empty list and then populate it properly. However, after the action is executed, the slot type in the domain file would change from ‘unfeaturized’ to ‘list’.

To remedy this, I would not only create the slot as ‘unfeaturized’, but also set an initial value of an empty list. With this, I still populate the list properly in my custom action, but this time it doesn’t change to a type ‘list’ in the domain, so working as intended :smiley:

Cool, I’m glad it’s working as intended then!

Hi, how do you fill this unfeaturized list slot? What if I want to fill it with multiple values of the same entity from a single utterance?Thank you!

Hey there,

I fill it in my custom actions code - I get the existing value, and append a few items (just like you would with any list object in Python), then return the updated list to the tracker. Hope this helps!

1 Like

Thank you, it works! I am now trying to compare the elements between two list and then combine the unique ones to one list, when I use len(list), it output the number of letters instead of elements, quite confused