Rasa with Symphony

Can we integrate a Chatbot Built using Rasa with Symphony? If yes, can you please share the steps or any details to refer?

if it has a public api, then you can build a Custom Connector, please see the docs for details

@Ghostvv

Eg. My users will be using Symphony BOT to ask any queries. I would like to respond back on Symphony BOT using my Rasa BOT. Please help me to understand if below steps are correct

  1. Build a custom Connector in Rasa BOT as mentioned in your previous reply.
  2. Use the URL of this Connector as Webhook of Symphony BOT.
  3. Do we need to add anything to credentials.yml file?
  4. Custom connector will take care of Sending messages from Symphony to Rasa or in Both directions?

Thanks

Yes you’re on the right track @poojadeshmukh :slight_smile:

  1. You’ll need to provide credentials to your custom connector (if any). If there aren’t any, you can leave it empty, like the rest channel. for example:
my_module.MyCustomInputChannel:
  # this channel doesn't need any credentials

you need to include the input channel in order to tell your bot to open up that channel when it runs.

  1. Both directions – when you make a custom connector, usually you are making a custom InputChannel for turning messages from symphony into rasa format, and a custom OutputChannel for doing the opposite.

Thanks @erohmensing!

Can you please help me to share a sample output channel? In the docs of custom connector (Custom Connectors), I can see implementation of only CollectingOutputChannel.

Would be really helpful, if you know any Git Repo that has such a custom connector implemented for both Input and Output channel.

I am referring to

But, it gives “Error: Method GET not allowed for URL /webhooks/myio/webhook” when tried.

Can you please help me setting this up?

As per above steps, we need to set the Environment Variable “Path”. Is it mandatory?

Thanks, Pooja

@amn41 Can you please help here?

@poojadeshmukh you can look at any of the other supported channels as an example :slight_smile: they are essentially also custom channels, the only difference is how you refer to the custom module in your credentials file. Instead of the name of the channel you have to provide the path to the class and module like so:

my_module.MyCustomInputChannel:
  # this channel doesn't need any credentials

the PATH variable is likely not a problem so long as your connecter is in your working directory and there is also an __init__.py file there.

Thanks @erohmensing. I have followed the steps of Custom Connector. It works with my Custom UI created using JS but its not working with Symphony. In Symphony BOT, we need to give the webhook URL eg. http://localhost:5005/webhooks/myio/webhook

But, its not working… do you think we need to implement anything more to make this work?

I’m not sure – if the same webhook url works with your JS UI but not with symphony, then it must be an issue on the symphony side. I would guess one of 2 things:

  • You need to do something else other than just give the webhook. Often with external connectors there is some sort of authentication necessary. But I’m not familiar with the tool, so I can’t really speak to that.
  • The request coming in from Symphony doesn’t match the format of the request coming in from your JS UI, and you need to tailor your connector code to correctly parse the request that Symphony sends

@erohmensing, I am using the custom connector code from “Custom Connectors” When I send “Hi” from my Symphony BOT, I get below errro on my command prompt where my Rasa server is running. I have printed the values of print(sender_id), print(text), print(should_use_stream), print(input_channel), print(metadata), print(request) on console. It shows “None” in Sender_id, text. Can you please help to understand if anything is missing?.

@erohmensing, it worked for me. In extract_message, I need to use “messageBody” which I receive in Symphony payload. Now can you please help me to read “conversationId” from Symphony Payload? Would this be considered as metadata? or can I override any standard function?

@erohmensing, Successfully integrated Symphony BOT with Rasa . Thanks for all your support. This issue can be closed now.

2 Likes

Hi Pooja… I need to perform the same task… Need to integrate my bot in rasa with symphony… since you’ve already accomplished it… could you help understand all the steps for the same. Thanks :smiley: