I propose this topic as feature request, but it's also a documentation issue, as lack of details in user guide paragraph: https://rasa.com/docs/rasa/core/actions/#custom-actions.
What specified in paragraph Execute Actions in Other Code is obscure to me, and details at the API documentation link Action Server are also unclear.
Is the endpoint a externalActionServer:port/webhook POST?
I wish I had a detailed description of in/out parameters in API details page. Maybe a pseudo curl example of call to an external sever, with few different use cases (generic custom actions, form actions, NLG actions, using dockling.., etc,) could help a lot.
Besides, I'd also add a simple example of implementation of an external server, maybe to be inserted in https://github.com/RasaHQ/rasa/tree/master/examples, maybe something like the "formbot", realized awith an external action server built in node :)
Note: I guess there is a huge number of developers interested to use RASA but to build actions not built in Python but in other languages (e.g. Java and especially in nodejs), for obvious reasons (connection with legacy sw, previous made backend logics, etc.). I'd do all possible to break barriers for incoming developers in any not-python language, allowing them to enter the splendid RASA ecosystem :)
Thanks for submitting this feature request 🚀 @amn41 will get back to you about it soon! ✨
Hi @solyarisoftware, sorry we missed this issue. Agreed that the API documentation for the action server could be clearer. We will be working on this in the future, as well as generally making it easier for actions to be written in a language other than python (e.g. https://github.com/RasaHQ/rasa/issues/5357). Stay tuned for this in the next few months
Hi @akelad
Can help me with this issue?
I have to run an external Action Server. Please help me.
Hi @DinushikaSKMMM,
What's your issue exactly?
Now https://rasa.com/docs/rasa/pages/action-server-api API documentation describe a bit better than in past the POST payload :
{
"next_action": "string",
"sender_id": "string",
"tracker": {
"conversation_id": "default",
"slots": [
{
"slot_name": "slot_value"
}
],
"latest_message": {
"entities": [
{
"start": 0,
"end": 0,
"value": "string",
"entity": "string",
"confidence": 0
}
],
"intent": {
"confidence": 0.6323,
"name": "greet"
},
"intent_ranking": [
{
"confidence": 0.6323,
"name": "greet"
}
],
"text": "Hello!"
},
"latest_event_time": 1537645578.314389,
"followup_action": "string",
"paused": false,
"events": [
{
"event": "slot",
"timestamp": 1559744410
}
],
"latest_input_channel": "rest",
"latest_action_name": "action_listen",
"latest_action": {
"action_name": "string",
"action_text": "string"
},
"active_loop": {
"name": "restaurant_form"
}
},
"domain": {
"config": {
"store_entities_as_slots": false
},
"intents": [
{
"property1": {
"use_entities": true
},
"property2": {
"use_entities": true
}
}
],
"entities": [
"person",
"location"
],
"slots": {
"property1": {
"auto_fill": true,
"initial_value": "string",
"type": "string",
"values": [
"string"
]
},
"property2": {
"auto_fill": true,
"initial_value": "string",
"type": "string",
"values": [
"string"
]
}
},
"responses": {
"property1": {
"text": "string"
},
"property2": {
"text": "string"
}
},
"actions": [
"action_greet",
"action_goodbye",
"action_listen"
]
}
}
In general: to @akelad, RASA team,
Regarding the external action server, is not fully clear the I/O interfaces life-cycle.
Examples could help a lot! Especially for who want to develop an action server NOT build in Python.
My proposal is to supply few different common use cases, e.g.
BTW, do you have news (now in RASA 2..0) about API documentation remake?
IMMO, a clearer API documentation, not just about the Action Server but also regarding the RASA NLU and RASA Core. See by examples issues:
As Node.Js developer I would more than happy to contribute/collaborate about node system integration patterns etc.
"Business" suggestion:
Please do not underestimate the value to let accessible RASA platform outside the Python developers ecosystem! Facilitating system integration of great RASA, you will conquer another 50% of market share ;-)
Thanks
giorgio
"Business" suggestion:
Please do not underestimate the value to let accessible RASA platform outside the Python developers ecosystem! Facilitating system integration of great RASA, you will conquer another 50% of market share ;-)
One of our goals of the 2.0 release was exactly that, to make it easier for non python developers to build action servers :)
Thanks for your suggestions Giorgio, @erohmensing I'll let you comment on the action server/API docs suggestions
Most helpful comment
One of our goals of the 2.0 release was exactly that, to make it easier for non python developers to build action servers :)
Thanks for your suggestions Giorgio, @erohmensing I'll let you comment on the action server/API docs suggestions