# Does rasa support another programming language other than python?....and why does it only come with python for custom actions?

**URL:** https://forum.rasa.com/t/does-rasa-support-another-programming-language-other-than-python-and-why-does-it-only-come-with-python-for-custom-actions/36155
**Category:** Rasa Open Source
**Created:** [October 21, 2020, 5:29pm UTC](https://forum.rasa.com/t/does-rasa-support-another-programming-language-other-than-python-and-why-does-it-only-come-with-python-for-custom-actions/36155 "2020-10-21T17:29:03Z")
**Posts on this page:** 15
**Page:** 1

<div class="post-metadata">

### Author: ![faiza\_conte](https://avatars.discourse-cdn.com/v4/letter/f/74df32/32.png) [@faiza\_conte](https://forum.rasa.com/u/faiza_conte)
#### Post date: [October 21, 2020, 5:29pm UTC](https://forum.rasa.com/t/does-rasa-support-another-programming-language-other-than-python-and-why-does-it-only-come-with-python-for-custom-actions/36155/1 "2020-10-21T17:29:03Z")

</div>

does rasa support another programming language other than python?..and why does it only come with python for custom actions?

---

<div class="post-metadata">

### Author: ![j.mosig](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/j.mosig/32/3588_2.png) [@j.mosig](https://forum.rasa.com/u/j.mosig)
#### Post date: [October 22, 2020, 7:33am UTC](https://forum.rasa.com/t/does-rasa-support-another-programming-language-other-than-python-and-why-does-it-only-come-with-python-for-custom-actions/36155/2 "2020-10-22T07:33:13Z")

</div>

Hello @faiza_conte

We only provide an SDK for Python out of the box, but you can write custom actions in any language you want as long as you provide an endpoint which accepts HTTP `POST` requests from the Rasa server and returns a payload of [events](https://rasa.com/docs/action-server/events) and responses. See: [Introduction to Rasa Action Servers](https://rasa.com/docs/action-server/#other-action-servers)

---

<div class="post-metadata">

### Author: ![faiza\_conte](https://avatars.discourse-cdn.com/v4/letter/f/74df32/32.png) [@faiza\_conte](https://forum.rasa.com/u/faiza_conte)
#### Post date: [October 22, 2020, 7:38am UTC](https://forum.rasa.com/t/does-rasa-support-another-programming-language-other-than-python-and-why-does-it-only-come-with-python-for-custom-actions/36155/3 "2020-10-22T07:38:44Z")

</div>

okay so that means in ur opinion which of other programming languages other than python that accepts http post requests from rasa server?

---

<div class="post-metadata">

### Author: ![j.mosig](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/j.mosig/32/3588_2.png) [@j.mosig](https://forum.rasa.com/u/j.mosig)
#### Post date: [October 22, 2020, 7:48am UTC](https://forum.rasa.com/t/does-rasa-support-another-programming-language-other-than-python-and-why-does-it-only-come-with-python-for-custom-actions/36155/4 "2020-10-22T07:48:23Z")

</div>

I don’t think there are many languages that cannot handle HTTP POST requests. You usually find a package similar to `requests` in Python in any of the standard languages such as C++ (see libcurl?).

Our Python SDK really just makes it easier to manage those messages and in other languages you’ll have to do a bit more work.

---

<div class="post-metadata">

### Author: ![faiza\_conte](https://avatars.discourse-cdn.com/v4/letter/f/74df32/32.png) [@faiza\_conte](https://forum.rasa.com/u/faiza_conte)
#### Post date: [October 22, 2020, 7:51am UTC](https://forum.rasa.com/t/does-rasa-support-another-programming-language-other-than-python-and-why-does-it-only-come-with-python-for-custom-actions/36155/5 "2020-10-22T07:51:11Z")

</div>

okay thank you.///////i have another quesion…there is a new relase of rasa 2.0 that includes the formaction where the question to fill the form can come from custom action like “action\_ask\_slot name”…can you explain it a lttle bit for me cuz from the document it is hard to understand

---

<div class="post-metadata">

### Author: ![j.mosig](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/j.mosig/32/3588_2.png) [@j.mosig](https://forum.rasa.com/u/j.mosig)
#### Post date: [October 23, 2020, 5:39am UTC](https://forum.rasa.com/t/does-rasa-support-another-programming-language-other-than-python-and-why-does-it-only-come-with-python-for-custom-actions/36155/6 "2020-10-23T05:39:34Z")

</div>

A form is just a way of having the assistant collect information form the user. It is essentially a `while` loop that keeps asking for things as long as there are things to ask for. For each thing (slot) to ask for, you have to write down how your assistant should ask the question. Normally, you’d just define a response template with a name that is `utter_ask_<yourSlotName>` and rasa will figure out that it should use that to ask for `<yourSlotName>`. Alternatively, you can also let rasa execute a custom action. You’d typically write that in python code, but of course the custom action is just some program that you write inside of your action server, which you can implement in any language you want as long as it follows the API specs.

---

<div class="post-metadata">

### Author: ![faiza\_conte](https://avatars.discourse-cdn.com/v4/letter/f/74df32/32.png) [@faiza\_conte](https://forum.rasa.com/u/faiza_conte)
#### Post date: [October 23, 2020, 6:07am UTC](https://forum.rasa.com/t/does-rasa-support-another-programming-language-other-than-python-and-why-does-it-only-come-with-python-for-custom-actions/36155/7 "2020-10-23T06:07:08Z")

</div>

In the document just as u represent for the loop question we can specify it in domain file as _utter\_ask\_slot name_…okay that works fine …but what I want to do is _action\_ask\_slot name_ where the question come from the custom action …but rasa jumps that part and move to the questions that come from _utter\_ask\_slot name_…have u ever tried the questions from custom action which will return action\_ask\_slot name and will be saved in action in domain file???

---

<div class="post-metadata">

### Author: ![j.mosig](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/j.mosig/32/3588_2.png) [@j.mosig](https://forum.rasa.com/u/j.mosig)
#### Post date: [October 23, 2020, 9:02am UTC](https://forum.rasa.com/t/does-rasa-support-another-programming-language-other-than-python-and-why-does-it-only-come-with-python-for-custom-actions/36155/8 "2020-10-23T09:02:29Z")

</div>

Yes, I just tried it and it works without problems. Did you start the action server (`rasa run actions`)? If yes, have you re-trained your model after making changes? And if yes, try running `rasa shell --debug` to get some more information.

---

<div class="post-metadata">

### Author: ![j.mosig](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/j.mosig/32/3588_2.png) [@j.mosig](https://forum.rasa.com/u/j.mosig)
#### Post date: [October 23, 2020, 9:19am UTC](https://forum.rasa.com/t/does-rasa-support-another-programming-language-other-than-python-and-why-does-it-only-come-with-python-for-custom-actions/36155/9 "2020-10-23T09:19:32Z")

</div>

> [@faiza\_conte](#):
>
> questions from custom action which will return action\_ask\_slot name and will be saved in action in domain file

Also, I am not sure what you mean by this. Custom actions don’t need to return anything but `[]` if you only want to send text to the user (use `dispatcher.utter_message` for this). Also, nothing is saved to the domain file while Rasa is running.

---

<div class="post-metadata">

### Author: ![faiza\_conte](https://avatars.discourse-cdn.com/v4/letter/f/74df32/32.png) [@faiza\_conte](https://forum.rasa.com/u/faiza_conte)
#### Post date: [October 23, 2020, 6:47pm UTC](https://forum.rasa.com/t/does-rasa-support-another-programming-language-other-than-python-and-why-does-it-only-come-with-python-for-custom-actions/36155/10 "2020-10-23T18:47:49Z")

</div>

Well what I meant was for the formaction or for form filling we use _utter\_ask\_slot name \* for the bot to ask the question required to fill the form…and what I want is for the bot to ask from custom action…I know I have to put under action"action\_ask\_slot name_ in the domain file .but the bot jumps that and try to find utter\_ask\_slot name…the rasa docs doesn’t discuss much about it but it points some but didnt work for me

---

<div class="post-metadata">

### Author: ![j.mosig](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/j.mosig/32/3588_2.png) [@j.mosig](https://forum.rasa.com/u/j.mosig)
#### Post date: [October 26, 2020, 8:05am UTC](https://forum.rasa.com/t/does-rasa-support-another-programming-language-other-than-python-and-why-does-it-only-come-with-python-for-custom-actions/36155/11 "2020-10-26T08:05:15Z")

</div>

Rasa will prioritize the custom action, so if you have both `action_ask_x` and `utter_ask_x` for slot `x`, then Rasa will run the former. To do that, you must have implemented that custom action and given it the name `action_ask_x` via the `name` property of your custom action class in the python file. Furthermore, before you run `rasa shell`, **you have to start the action server in a separate shell** with `rasa run actions`. If the action server is not running, Rasa cannot execute the custom action and might fall back to use `utter_ask_x` instead.

---

<div class="post-metadata">

### Author: ![faiza\_conte](https://avatars.discourse-cdn.com/v4/letter/f/74df32/32.png) [@faiza\_conte](https://forum.rasa.com/u/faiza_conte)
#### Post date: [October 26, 2020, 10:04am UTC](https://forum.rasa.com/t/does-rasa-support-another-programming-language-other-than-python-and-why-does-it-only-come-with-python-for-custom-actions/36155/12 "2020-10-26T10:04:02Z")

</div>

Okay thanks…am can you explain this for me ![20201026_130022](https://europe1.discourse-cdn.com/flex013/uploads/rasa/original/2X/3/33766f1626012c6c2c26cfd19268616fab85798e.jpeg)

---

<div class="post-metadata">

### Author: ![j.mosig](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/j.mosig/32/3588_2.png) [@j.mosig](https://forum.rasa.com/u/j.mosig)
#### Post date: [October 26, 2020, 11:26am UTC](https://forum.rasa.com/t/does-rasa-support-another-programming-language-other-than-python-and-why-does-it-only-come-with-python-for-custom-actions/36155/13 "2020-10-26T11:26:40Z")

</div>

For the difference between `from_text` and `from_entity`, please read [Forms](https://rasa.com/docs/rasa/forms#slot-mappings). For Rasa to catch all the entities correctly, you’ll have to provide enough training data (a dozen different examples per entity at least I’d say). If you have a fixed set of words that you always want to have recognized, you can add the `RegexEntityExtractor` to your NLU pipeline, see [NLU Training Data](https://rasa.com/docs/rasa/nlu-training-data#regular-expressions-for-entity-extraction)

---

<div class="post-metadata">

### Author: ![faiza\_conte](https://avatars.discourse-cdn.com/v4/letter/f/74df32/32.png) [@faiza\_conte](https://forum.rasa.com/u/faiza_conte)
#### Post date: [October 26, 2020, 11:39am UTC](https://forum.rasa.com/t/does-rasa-support-another-programming-language-other-than-python-and-why-does-it-only-come-with-python-for-custom-actions/36155/14 "2020-10-26T11:39:53Z")

</div>

Okay…but is it possible to use _DucklingEntityExtractor_ for extracting name without putting lots of examples in the nlu data

---

<div class="post-metadata">

### Author: ![j.mosig](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/j.mosig/32/3588_2.png) [@j.mosig](https://forum.rasa.com/u/j.mosig)
#### Post date: [October 26, 2020, 4:25pm UTC](https://forum.rasa.com/t/does-rasa-support-another-programming-language-other-than-python-and-why-does-it-only-come-with-python-for-custom-actions/36155/15 "2020-10-26T16:25:07Z")

</div>

> [@faiza\_conte](#):
>
> is it possible to use _DucklingEntityExtractor_ for extracting name without putting lots of examples in the nlu data

Yes. If duckling provides an extractor for names. See [Tuning Your NLU Model](https://rasa.com/docs/rasa/tuning-your-model#entity-extraction)
