Assistant behaves totally different when running on Rasa X

Hello everyone,

I finally yesterday released my first version of my assistant on Rasa X. But it behaves totally different now. It doesn’t follow the right process for the forms and doesn’t return some outputs.

E.g this line dispatcher.utter_message(tabulate(userConferencesOfChoice, tablefmt="pipe", headers="keys")) when running locally in my laptop returns a table from excel sheet. But when running on rasa x nothing happens.

Do I need to add/ configure/ change something in my config file?

Do you get any error in the logs?

Does Rasa X show you that the action is executed?

If you put a print() statement just under it, it will appear in the Action logs - Like this, you can make sure that the action happened.

Rasa X has some problems sometimes when displaying a message, but as far as I’ve seen, it runs the action correctly.

Hey, @ChrisRahme thank you for your reply.

Yes it does work fine.

I am getting this Warning:

WARNING:rasax.community.services.event_consumers.event_consumer:Saving event failed due to an 'IntegrityError'. This means that the event is already stored in the database. The event data was '{"sender_id": "31348bdd9e0d48c6b6f97864b7c8ec1c", "event": "bot", "timestamp": 1631714669.6684372, "text": "|    | Category                | Name       |   Full Name | Ranking   | Submission   
       | Location        | Date                | Deadline   | Site                                             |\\n|---:|:------------------------|:-----------|------------:|:----------|:--------------------|:----------------|:--------------------|:-----------|:-------------------------------------------------|\\n|  2 | Artificial Intelligence | AAAI       |         nan | A*        | 2021-08-30 00:00:00 | nan             | 2022-03-22 00:00:00 | Passed     | https://aaai.org/Conferences/AAAI-22/aaai22call/ |\\n| 12 | Artificial Intelligence | ECAI/IJCAI |         nan | A*  
      | 2021-11-11 00:00:00 | Vienna, Austria | 2022-07-23 00:00:00 | Active     | future conferences                               |", "data": {"elements": null, "quick_replies": null, "buttons": null, "attachment": null, "image": null, "custom": null}, "metadata": {}}'. (sqlite3.IntegrityError) UNIQUE constraint failed: conversation_event.conversation_id, conversation_event.timestamp, conversation_event.type_name
[SQL: INSERT INTO conversation_event (conversation_id, type_name, timestamp, intent_name, action_name, slot_name, slot_value, policy, is_flagged, data, evaluation, rasa_environment) VALUES (?, 
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]
[parameters: ('31348bdd9e0d48c6b6f97864b7c8ec1c', 'bot', 1631714669.6684372, None, None, None, None, None, 0, '{"sender_id": "31348bdd9e0d48c6b6f97864b7c8ec1c", "event": "bot", "timestamp": 1631714669.6684372, "text": "|    | Category                | Name     ... (744 characters truncated) ...            |", "data": {"elements": null, "quick_replies": null, "buttons": null, "attachment": null, "image": null, "custom": null}, "metadata": {}}', None, 'production')]
(Background on this error at: http://sqlalche.me/e/13/gkpj)

Which I am not sure if is related to my issue.

Just to note here that my excel file which I am using as a database is located in the same directory with the whole assistant.

Yeah this is a problem with Rasa X :confused:

If you have a fontend for you bot other than Rasa X, it should work fine

I am not sure I understand what you mean.

# dispatcher.utter_message(text="All done!")

# print(tabulate(userConferencesOfChoice, tablefmt="pipe", headers="keys"))

dispatcher.utter_message(tabulate(userConferencesOfChoice, tablefmt="pipe", headers="keys"))

I commented out the first message from the dispatcher and then it worked fine. What kind of weird issue is that? I assume that it is not able to manage two messages in the same custom action?

To conclude, it is working just fine now but I would like to know what is the issue.

1 Like

By frontend I mean a custom UI for your bot, like a website or a mobile app.

Aha :slight_smile: Yes, try to do:

text = "All done!\n"
text += tabulate(userConferencesOfChoice, tablefmt="pipe", headers="keys")

dispatcher.utter_message(text)

Again, should work fine in your frontend if correctly implemented.

Rasa X is the issue :laughing:

1 Like