-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for external triggers / asynchronous actions #3789
Comments
Thanks tobi- for the synchronous case can’t we assume the client will be polling for messages and will find the messages “sent” to the user? |
where would the user find them? They could only poll the tracker and see whether there are unknown events. Or we store the "not yet found" messages somewhere. |
We might not be understanding each other. |
But in this case the UI polls the tracker und checks if there are any new messages. That's not really elegant in my opinion. |
yes it's not v elegant, but this is also how the rasa x ui works currently |
Ok. So you would not offer a webhook which they could specify? |
@tabergma Please check if that's somewhat understandable:
No. So you have three participants
Currently it's not possible to model the following case:
|
@ricwo
|
Hello guys TLDR => go to [TLDR bug] and [TLDR solution]
Our real problem though is in the manager's conversation (sorry for this long introduction) :
As this notification arrives "from nowhere" (or more likely from "nowhen"), we struggle a bit to figure out how to design it. Should we begin by
[TLDR bug] Funny thing was : if we click twice => IT WORKS.
in the same time than we push Soooo ... either we messed up in reading/finding/understanding documentation of the sequence of steps we had to do to send an action AND activate a working conversation behind, OR there's a weird thing going out there. Our final analysis came by seing in the logs that the manager's Tracker was not in the good state for RASA to be able to predict next action, and having action_listen pushed could make it work (seems we need to have Conclusion : we managed to get around to make it work, but it was not that intuitive. Maybe all we did was crap, and if so you surely have some good advice to give us ^^ By the way, we REALLY appreciate the MultiProjectImporter. It's also just such a nice feature allowing real business logic segmentation ! :-) |
thanks for the super thoughtful write up! @JEM-Mosig was proposing to change the notification functionality to look more like sending an intent, rather than triggering an action remotely. I suspect that will solve your problem. Also I'd love to talk about your experiences with multiprojectimporter. Could you please shoot me an email? (firstname at company domain) |
The intent-trigger-issue is here: #4464 |
Really nice, thanks to both of you. We're eager to have this intent-trigering feature now :-) |
haven't seen your email, just fyi. |
Why it's not support sockotio channel ? |
Motivation
There is currently no way to send a bot message to the user via an external API call.
This is e.g. useful
Proposed Solution
When calling this endpoint (
/conversations/{conversation_id}/execute
) it should be possible to specify an output channel (either by name orlatest
) which the output of the action should be redirected to.Now there are two cases of channels:
Asynchronous Channels:
In case of asynchronous channels we can create the input channel based on the credentials files (
from_credentials
) and callsend_message
(we have to make sure each asynchronous channel has such a method).Maybe sth like:
Synchronous Channels:
The question is how to handle synchronous channels. Either
bot
events are not featurized, right?) and look for "not retrieved" messages the next time the user comes back, and send these together with the results of the next callDict[sender_id, List[BotMessages]]
whereby we have to ensure that a certain size of this buffer is not exceededI opt for not supporting synchronous channels, but giving the option to provide a webhook in
credentials.yml
which can be called.Webhook in
credentials.yml
Guess we could implement this as regular channel, which can only be used as output channel?
The text was updated successfully, but these errors were encountered: