Пример #1
0
def format_bot_output(message: Dict[Text, Any]) -> Text:
    """Format a bot response to be displayed in the history table."""

    # First, add text to output
    output = message.get("text") or ""

    # Then, append all additional items
    data = message.get("data", {})
    if not data:
        return output

    if data.get("image"):
        output += "\nImage: " + data.get("image")

    if data.get("attachment"):
        output += "\nAttachment: " + data.get("attachment")

    if data.get("buttons"):
        output += "\nButtons:"
        for idx, button in enumerate(data.get("buttons")):
            button_str = button_to_string(button, idx)
            output += "\n" + button_str

    if data.get("elements"):
        output += "\nElements:"
        for idx, element in enumerate(data.get("elements")):
            element_str = element_to_string(element, idx)
            output += "\n" + element_str

    if data.get("quick_replies"):
        output += "\nQuick replies:"
        for idx, element in enumerate(data.get("quick_replies")):
            element_str = element_to_string(element, idx)
            output += "\n" + element_str
    return output
Пример #2
0
def print_bot_output(message, color=rasa.cli.utils.bcolors.OKBLUE):
    if "text" in message:
        rasa.cli.utils.print_color(message.get("text"), color=color)

    if "image" in message:
        rasa.cli.utils.print_color("Image: " + message.get("image"),
                                   color=color)

    if "attachment" in message:
        rasa.cli.utils.print_color("Attachment: " + message.get("attachment"),
                                   color=color)

    if "buttons" in message:
        rasa.cli.utils.print_color("Buttons:", color=color)
        for idx, button in enumerate(message.get("buttons")):
            rasa.cli.utils.print_color(button_to_string(button, idx),
                                       color=color)

    if "elements" in message:
        rasa.cli.utils.print_color("Elements:", color=color)
        for idx, element in enumerate(message.get("elements")):
            rasa.cli.utils.print_color(element_to_string(element, idx),
                                       color=color)

    if "quick_replies" in message:
        rasa.cli.utils.print_color("Quick Replies:", color)
        for idx, element in enumerate(message.get("quick_replies")):
            rasa.cli.utils.print_color(button_to_string(element, idx),
                                       color=color)

    if "custom" in message:
        rasa.cli.utils.print_color("Custom json:", color=color)
        return rasa.cli.utils.print_color(json.dumps(message.get("custom"),
                                                     indent=2),
                                          color=color)
Пример #3
0
def print_bot_output(message, color=rasa.cli.utils.bcolors.OKBLUE):
    if "text" in message:
        rasa.cli.utils.print_color(message.get("text"), color=color)

    if "image" in message:
        rasa.cli.utils.print_color("Image: " + message.get("image"),
                                   color=color)

    if "attachment" in message:
        rasa.cli.utils.print_color("Attachment: " + message.get("attachment"),
                                   color=color)

    if "buttons" in message:
        rasa.cli.utils.print_color("Buttons:", color=color)
        for idx, button in enumerate(message.get("buttons")):
            rasa.cli.utils.print_color(button_to_string(button, idx),
                                       color=color)

    if "elements" in message:
        for idx, element in enumerate(message.get("elements")):
            element_str = "Elements:\n" + element_to_string(element, idx)
            rasa.cli.utils.print_color(element_str, color=color)

    if "quick_replies" in message:
        for idx, element in enumerate(message.get("quick_replies")):
            element_str = "Quick Replies:\n" + button_to_string(element, idx)
            rasa.cli.utils.print_color(element_str, color=color)
Пример #4
0
def print_bot_output(
        message,
        color=rasa.cli.utils.bcolors.OKBLUE) -> Optional[questionary.Question]:
    if ("text" in message) and not ("buttons" in message):
        rasa.cli.utils.print_color(message.get("text"), color=color)

    if "image" in message:
        rasa.cli.utils.print_color("Image: " + message.get("image"),
                                   color=color)

    if "attachment" in message:
        rasa.cli.utils.print_color("Attachment: " + message.get("attachment"),
                                   color=color)

    if "buttons" in message:
        choices = [
            button_to_string(button, idx)
            for idx, button in enumerate(message.get("buttons"))
        ]

        question = questionary.select(
            message.get("text"),
            choices,
            style=Style([("qmark", "#6d91d3"), ("", "#6d91d3"),
                         ("answer", "#b373d6")]),
        )
        return question

    if "elements" in message:
        rasa.cli.utils.print_color("Elements:", color=color)
        for idx, element in enumerate(message.get("elements")):
            rasa.cli.utils.print_color(element_to_string(element, idx),
                                       color=color)

    if "quick_replies" in message:
        rasa.cli.utils.print_color("Quick Replies:", color=color)
        for idx, element in enumerate(message.get("quick_replies")):
            rasa.cli.utils.print_color(button_to_string(element, idx),
                                       color=color)

    if "custom" in message:
        rasa.cli.utils.print_color("Custom json:", color=color)
        rasa.cli.utils.print_color(json.dumps(message.get("custom"), indent=2),
                                   color=color)