Conversations are not saved on Rasa x

Hello. I’m starting out with Rasa, and I have a simple example (mostly the default one) and a simple front end app using botfront rasa-webchat (which uses socketio). This works fine.

The problem is that those conversations are not visibible when I launch rasa X (running locally). The only conversations I can see are the ones from the rasa x iteractive mode itself.

I’m working on a recently installed Windows 10, and I followed the youtube video on installing for windows (though i didn’t add conda to the path). I installed Anaconda for python 3.8 (x64), I installed the build tools for c++ (I think they appear as microsoft visual c++ 2015 - 2019 redistributable (x64) 14.28 on the installed programs list). On the conda environment i’m working, rasa --version command returns:

Rasa Version     : 2.2.5
Rasa SDK Version : 2.2.0
Rasa X Version   : 0.35.0
Python Version   : 3.8.5
Operating System : Windows-10-10.0.19041-SP0

I’m not really sure if this is a problem of Rasa x or rasa opensource, but I do get some error mesages when launching rasa X. I must mention that I’m a bit confused about how exactly I should run Rasa X. Even if it throws some errors, it seem to work when I just run rasa x (though it’s a bit wonky an noticeably slower than front end widget). I’m not using custom actions (it’s pretty much the default project with some added intents and rules, and added credentials).

Since it runs sorta fine on its own, it seems to be a selfcontained rasa environment, so I don’t know why you would need a separate rasa run or rasa run actions if i’m running locally. Am I supposed to just run rasa x, and change the port that the front end widget sends to from 5005 to 5002 (meaning connecting my external channel directly to rasa x), or should i have another instance of rasa opensource running with rasa run ... to which the front end connects to? Furthermore, if my model works fine with the front end I set up, and conversations are stored on the same database, then shouldn’t the conversations be saved no matter the channel that was used? The docs on Rasa x do say that conversations for every channel should appear (maybe I’m missing something here).

Any way, if I run rasa x it works on its own, ibut throws this error:

Starting Rasa X in local mode... �
2021-01-14 20:16:44 ERROR    asyncio  - Error on reading from the event loop self pipe
loop: <ProactorEventLoop running=True closed=False debug=False>
Traceback (most recent call last):
  File "c:\users\gonza\anaconda3\envs\rasachatbot\lib\asyncio\windows_events.py", line 453, in finish_recv
    return ov.getresult()
OSError: [WinError 995] La operación de E/S se anuló por una salida de subproceso o por una solicitud de aplicación

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\users\gonza\anaconda3\envs\rasachatbot\lib\asyncio\proactor_events.py", line 768, in _loop_self_reading
    f.result()  # may raise
  File "c:\users\gonza\anaconda3\envs\rasachatbot\lib\asyncio\windows_events.py", line 808, in _poll
    value = callback(transferred, key, ov)
  File "c:\users\gonza\anaconda3\envs\rasachatbot\lib\asyncio\windows_events.py", line 457, in finish_recv
    raise ConnectionResetError(*exc.args)
ConnectionResetError: [WinError 995] La operación de E/S se anuló por una salida de subproceso o por una solicitud de aplicación
[2021-01-14 20:16:46 -0300] [16088] [INFO] Goin' Fast @ http://0.0.0.0:5002
2021-01-14 20:16:46 INFO     sanic.root  - Goin' Fast @ http://0.0.0.0:5002

The server is running at http://localhost:5002/login?username=me&password=dasdfasdfadf

Again, I don’t know if this error is relevant or not. When I run just open source, I use rasa run -m models --enable-api --cors "*" --debug, and it works fine, but conversations don’t seem to be saved. If I run Rasa x with same options, and try to direct my front end to the port 5002, it doesn’t work.

Any guidance is appreciated.

2 Likes

So here’s an update.

I tried again using ubuntu 20.04 in wsl2 and the previus error message is no longer thrown, and rasa x interface works much better. But it still doesn’t show any conversations outside those made within rasa x ui itself.

Looking more closely at the documentation, it seems rasa open source runs InMemoryTrackerStore by default, explaining why conversations are not saved. The tracker configurations seem to have everything needed to connect to a db runing as a service on a port. But I see rasa x using some sort of local db. Can I configure rasa opensource to save conversations to the same local db file? or do I need to write my own tracker store for this?

The other choice would be to connect the front-end client directly to rasa x, and have that do the saving of external channels that go through it. Looking to this section of docs, it seems this cannot be done directly, but instead requires 2 separate instances (one open source and one x) running on different systems.

I’m somewhat confused with the 2 options mentioned in the docs. It’s not clear to me whether the first solution mentioned also requires 2 instances (if not why would we need to configure an event broker?). Would it be enough to configure just the tracker store, and launch rasa x or opensource over the same project when needed? I’m not suggesting that setup for production, but would it work to do simple tests?

Regarding the second solution, would it work if I just run 2 separate projects on my local machine (one opensource and one x) and configure just the rasa open source instance event-broker to send stuff to rasa x instance?

1 Like

I am also facing same issue. Please help