I am using ConversationPaused() event and the bot is silent only for the nlu>intents>examples-statements

I am trying human handoff feature in RASA and I am stuck from a week. I am using rasa webchat as frontend. class ActionTalkToAgent(Action): def name(self): return "action_talk_to_agent" def run(self, dispatcher, tracker, domain): return [ConversationPaused()] this is my code for conversation paused but the bot is still replying. I want the bot to stop the conversation after the very first intent example statement. But what’s happening here is the bot is paused only for those intents statements which I have mentioned in nlu. Then it replys normally.

Also, for human hand off if I am using rasa webchat botfront how to do a handoff?? like we have events in socketio as bot_uttered or user_uttered… how can we inherit this from its parent class and make an event human_uttered event. Or can we know the socketIO room ID of the rasa so that we can enter into that room through socketIO connect.

please help as this project is taking me long and there are no use case available on the internet.

Regards, Rizwan

Take a look at the working handoff example in the financial-assistant which is described here. This example hands off between two rasa bots but the concept is the same. It uses a customized version of the chatroom widget.

you mean I need to initialize rasa twice…?? or I need to create 2 html chatroom files…???

Any help is appreciated… @stephens

you mean I need to initialize rasa twice

No

The example above shows a good approach to doing handoff.

  • Get the financial-demo running
  • Note how it does hand off to another endpoint
    • In this example the endpoint is another Rasa chatbot but in your case the other endpoint is your live chat platform
    • Checkout the rules for the handoff
    • Note the endpoint config for the other bot (or live chat platform)
    • Note the action that passes the metadata to front end so it can connect the user to the other bot (or live chat platform)

hello @stephens Happy New Year!! to you and Team Rasa… so I am successful on conversation paused. as you mentioned above I am following the same way of handoff… I am getting none for variable (handoff_to) and (url)

handoff config:  {'human_assistant': {'title': 'Human Assistant', 'url': 'http://localhost:5000/chat'}}

I want to understand what is handoff_to??? I am not implementing the options before handoff…my rules are below:-

- rule: human handoff
  steps:
  - intent: human_agent
  - action: action_talk_to_agent

and my domail.yml is below


entities:
- handoff_to

slots:
  handoff_to:
    type: any
    influence_conversation: false
    mappings:
    - type: from_entity
      entity: handoff_to


actions:
- action_talk_to_agent

below is actions.py function:

class ActionTalkToAgent(Action):
    def name(self):
        return "action_talk_to_agent"

    async def run(self, dispatcher, tracker, domain):

        dispatcher.utter_message(response="utter_handoff")
        handoff_to = tracker.get_slot("handoff_to")
        print("handoff to: ",handoff_to)
        handoff_bot = handoff_config.get(handoff_to, {})
        print(handoff_bot)
        url = handoff_bot.get("url")
        print("url: ",url)
        if url:
            if tracker.get_latest_input_channel() == "rest":
                dispatcher.utter_message(
                    json_message={
                        "handoff_host": url,
                        "title": handoff_bot.get("title"),
                    }
                )
            else:
                dispatcher.utter_message(
                    response="utter_wouldve_handed_off", handoffhost=url
                )
        else:
            dispatcher.utter_message(response="utter_no_handoff")        
        return [ConversationPaused()]

please note I am using webchat botfront as frontend and a separate flask app for human admin is it possible to chat from botfront webchat via flask app???

hi @rizwanisready have you done hand off successfully

I have been stuck here for a long time

please help me