Rasa 2.1.0 - Buttons are not working! Problem with retrieval intents

Hi there,

I migrated my previously built bot to the new version Rasa 2.0.3. Most is running smoothly on the command line. BUT, some of the buttons are NOT working anymore. Has anyone an idea where I could have done something wrong? I would be happy to solve this problem. Thanks for any help on this issue! :pray: :blush:

I created some kind of “menue” where the user can pick one topic of interest via buttons (named: utter_overview). These buttons do work!

  utter_overview:
  - buttons:
    - payload: /consulting_request
      title: Sign up for initial consulting
    - payload: /startup_support
      title: Learn more about the start-up consultancy
    - payload: /qualification
      title: Qualification programs for entrepreneurs?
    - payload: /financing
      title: Financial support for start-ups
    text: You can choose from the following options or ask me a specific question...

If the user picks for example “financial support”, the button with payload: /financing properly works. The next step the bot takes is to show another “menue” with different forms of financial support (named: utter_faq/financing_overview):

  utter_faq/financing_overview:
  - buttons:
    - payload: "/faq/financing_existgs"
      title: "EXIST Business Start-up Grant"
    - payload: "/faq/financing_existft"
      title: "EXIST Transfer of Reasearch"
    - payload: "/faq/financing_flĂźgge"
      title: "FLÜGGE"
    - payload: "/faq/financing_gobio"
      title: "GO-BIO"
    text: "Currently we advise on the following financing options..."

None of these 4 buttons is working!

The respective intents are defined in the nlu file…

- intent: faq/financing_existgs
  examples: |
    - what is EXIST GS?
    - what is EXIST business start up grant?
    - tell me more about EXIST business start up grant
    - can you say more about EXIST business start up grant?

as well as in the domain file…

version: "2.0"

intents:
- faq:
    is_retrieval_intent: true
- smalltalk:
    is_retrieval_intent: true
- nlu_fallback
- out_of_scope

And I also added a rule for answering all faqs:

version: "2.0"
rules:
- rule: respond to faqs
  steps:
  - intent: faq
  - action: utter_faq

The respective utterances to answer the faqs are defined properly, e.g.:

  utter_faq/financing_existgs:
  - text: "The EXIST Business Start-up Grant supports innovative technology and knowledge-based\
      \ university start-up projects for a period of 12 months.\n\n Funding covers\
      \ personal living expenses and includes a grant as well as material costs and\
      \ coaching funding.\n\n [More information](https://www.exist.de/EN/Home/home_node.html)"

Nevertheless these buttons do not work and I get the following UserWarning in the command line: UserWarning: Interpreter parsed an intent ‘faq/financing_existgs’ which is not defined in the domain. Please make sure all intents are listed in the domain. More info at Domain

How does that make sense? As described i defined the intent in the domain…

I appreciate every help to solve this problem! Many thanks in advance!!! :pray: :pray: Below you’ll also find screenshots of the relevant files.

If you need additional information, please let me know.

Cheers, Andi :raising_hand_man:

@Tobias_Wochinger / @j.mosig : Do you maybe have any idea here? I checked it several times. I followed all the steps of the migration guide, but I just can’t find any mistake… Thanks for your help! :pray: :blush:

I also used rasa data validate to check the format (see attached file). It says UserWarning: The action ‘utter_faq’ is used in the stories, but is not a valid utterance action. BUT i checked it twice… there is no utter_faq used in the stories…

Attached you also find the rasa shell --debug statements…

Debug Statements faq:financing buttons.rtf (15.3 KB) rasa data validate statements.rtf (4.1 KB)

@jackpotandy,

If you send as payload an actual sentence that predicts the full retrieval intent, it should work. Something like:

   utter_show_financing_overview_faqs:
  - buttons:
    - payload: "what is EXIST GS?"
      title: "EXIST Business Start-up Grant"
    - payload: "what is EXISTS FT?"
      title: "EXIST Transfer of Reasearch"
    - ... etc...


# with a rule that triggers that utterance:
- rule: show finance overview faqs
  steps:
  - intent: show_me_the_finance_overview_faqs
  - action: utter_show_financing_overview_faqs
1 Like

@Arjaan,

Many thanks for your response! I tried it out, but the buttons are still not working… I really appreciate your help, but I think your idea is not conform with the ideal approach by Rasa.

How tu use buttons is explained here: Responses And there is the possiblity to bypass NLU via buttons:

It’s common to use buttons as a shortcut to bypass the machine-learning-based NLU interpreter. Messages starting with / are sent straight to the RegexInterpreter , which expects NLU input in a shortened /intent{entities} format. In the example above, if the user clicks a button, the user input will be directly classified as either the mood_great or mood_sad intent.

I strictly followed all the instructions of Rasa Docs, but still my buttons are not working. I have the suspicion that there is a problem with Rasa recognizing retrieval intents as mine when they are included in the payload…

The retrieval intents which are not working when clicked on via the button are working via the normal NLU way without any problems.

@erohmensing Maybe that’s a bug?? Or is there still something I missed / made wrong?

Thanks for additional help on this issue :pray: :blush:

I have the suspicion that there is a problem with Rasa recognizing retrieval intents as mine when they are included in the payload…

You’re right, we haven’t supported retrieval intents in button payloads yet. You can follow the relevant issue for progress on support for this: Make Retrieval Actions triggerable via slash command or equivalent · Issue #5576 · RasaHQ/rasa · GitHub

In the meantime, the workaround we use in our bot is to use an example from the training data of that retrieval intent as the payload. It should then get classified correctly as it’s in the training data. But I think Arjaan already clarified that :slight_smile:

1 Like

@erohmensing @Arjaan It did work! Many thanks for your support!! :raised_hands:t3: :partying_face:

1 Like