Looking for API with more insight into intents detected, slots filled

I am integrating a voice server to Rasa such that callers will interact with Rasa bots by voice. As a first attempt, I have used the basic HTTP api as described here:

That is, I transcribe voice to text, send the text as a message to Rasa, get a bot utterance back andplay that out to the caller. That is all working fine.

However, I am coming from a Dialogflow environment, where I can get much more detailed information about the bot processing, along with bot utterances. Ideally I would like to be able to get information through the API indicating which intent has been detected, the current state of slots (ie filled, not filled) as the bot progresses.

Does any API exist which provides more of this type of information in real-time as the bot is executing?

related to this, I would like some way to know if the caller requested a live agent. I would imagine this would happen via an “Agent” intent being fulfilled, and that would be an example of why I am looking for more detail on the bot processing as the conversation progresses.

Hello!

You can see details for every user message and bot response in your Tracker Store database.

If you want a clean interface to check these and more insights, you can look at Rasa X.


About your second message, in Rasa X, you can filter and sort conversations by intents (and more), so you can see when the human request intent was detected. You could also set a Slot to be filled when this intent is detected so you could directky see if it is set whenever you click on any conversation.

I see, and thank you for the link to tracker store info. I briefly reviewed, but I dont think it works for my use case.

Basically, I am building a voice gateway that will connect to a 3rd party’s rasa bot (assuming they give permissions). I can’t assume, or require, them to provide me with access to their tracker store database though. For that matter, I can’t impose upon them a requirement to have set up their tracker store using a particular provider.

Also, I need this information about intents and slot-filling in real-time, as the conversation progresses. It seems like if I rely on tracker store I would need to be constantly polling.

So perhaps this is more of a feature request for the future. I would love to see the websocket API have an option where it can return not just the bot message, but also details on the conversation state.

In general, I would point out that both Lex and Dialogflow have considered the agent transfer scenario and make it quite easy to implement (ie they have specific telephony transfer information that can be configured as part of a bot), and Rasa may want to consider doing the same at some point.

Having the tracker store or not is not a choice. Rasa will need a place to store its data, but you have control over where to put it (by default, in memory - the .db files in the root of your project).

That’s true.

It’s a good idea, hope someone will see it :slight_smile:

Look at

  • GET https://api/conversations/{conversation_id} (ref)
  • GET https://api/conversations/{conversation_id}/messages (ref)

It’s the closest thing to what you want.