Users have the ability to further customize intents to provide a better experience for their individual needs. It can be useful to remove unused intents (especially if they false trigger) or modify slots (like custom shopping list items).
There are plans on having a UI to help with customizations, but currently it is handled with YAML files in
/config/customizations/<component_name>.yaml where component name matches the intent that you are trying to modify. For now, to get the names, you will have to take a look at the source to get all the function names. And for beta functionality we've called them out in the docs.
The Home Assistant component is made up of multiple intents, so they follow a slightly different structure:
Example customization filenames:
When loaded correctly, you should see a
Loading customization file /config/customizations/home_assistant/shopping_list.yaml in the logs.
Adding and removing custom words to slots
Adding new words to the slot list supports all the standard Rhasspy slot features like synonyms.
Removal works by reference or exact match. So, to remove a specific entity from Home Assistant, the best option is to list the entity id (for example
slots: shopping_item: add: - fruit: apple - (banans|naners|bananas): bananas - baked beans remove: - beans
Enabling or disabling specific intents
A couple of intents are disabled by default (if they are in beta) or they cause a lot of issues OOTB, and can be enabled in config.
intents: change_color_temperature: enable: true
On the other hand, any intent you don't want can be disabled by setting
intents: add_item_to_shopping_list: enable: false
Enabling or disabling all intents in a component
You can also enable or disable everything at the top level instead of on an individual basis using
enable_all: false # to stop all intents from triggering related to the component
Adding and removing sentences to intents
Similar to slots, intent sentences can be added or removed. Ensure that any tags or slot names needed for the intent are present.
intents: add_item_to_shopping_list: sentences: add: - "include ($shopping_item) on the shopping list" remove: - "add ($shopping_item) to the [shopping] list"
Intent aliasing with slot entities
Entire intent aliases can also be created that are pre-populated with slot items.
intents: add_item_to_shopping_list: alias: - sentences: - "I want bacon" slots: shopping_item: "bacon"
This file could be used as
slots: shopping_item: add: - fruit: apple - (banans|naners|bananas): bananas - baked beans remove: - beans intents: add_item_to_shopping_list: sentences: add: - "add ($shopping_item) to the list" alias: - sentence: "I want bacon" shopping_item: "bacon"