Esempio n. 1
0
def utt_non_punct_dialog(dialog: Dict):
    """
    Used by: book_skill
    """
    dialog = utils.get_last_n_turns(dialog)
    dialog = utils.remove_clarification_turns_from_dialog(dialog)
    return [{"dialogs": [dialog]}]
Esempio n. 2
0
def alice_formatter_dialog(dialog: Dict) -> List:
    # Used by: alice
    dialog = utils.get_last_n_turns(dialog, bot_last_turns=4)
    dialog = utils.remove_clarification_turns_from_dialog(dialog)
    return utils.last_n_human_utt_dialog_formatter(dialog,
                                                   last_n_utts=2,
                                                   only_last_sentence=True)
Esempio n. 3
0
def utt_sentseg_punct_dialog(dialog: Dict):
    """
    Used by: skill_with_attributes_formatter; punct_dialogs_formatter,
    dummy_skill_formatter, base_response_selector_formatter
    """
    dialog = utils.get_last_n_turns(dialog)
    dialog = utils.remove_clarification_turns_from_dialog(dialog)
    dialog = utils.replace_with_annotated_utterances(dialog, mode="punct_sent")
    return [{"dialogs": [dialog]}]
Esempio n. 4
0
def cobot_formatter_dialog(dialog: Dict):
    # Used by: cobot_dialogact_formatter, cobot_classifiers_formatter
    dialog = utils.get_last_n_turns(dialog)
    dialog = utils.remove_clarification_turns_from_dialog(dialog)
    dialog = utils.replace_with_annotated_utterances(dialog, mode="segments")
    utterances_histories = []
    for utt in dialog["utterances"]:
        utterances_histories.append(utt["text"])
    return [{"utterances_histories": [utterances_histories]}]
Esempio n. 5
0
def topic_recommendation_formatter(dialog: Dict):
    dialog = utils.get_last_n_turns(dialog)
    dialog = utils.remove_clarification_turns_from_dialog(dialog)
    active_skills, topics = [], []
    for utt in dialog["utterances"]:
        active_skills.append(utt.get("active_skill", ""))
        topics += utt.get("annotations", {}).get("cobot_topics",
                                                 {}).get("text", [])
    active_skills = [skill for skill in active_skills if skill]
    return [{"active_skills": [active_skills], "cobot_topics": [topics]}]
Esempio n. 6
0
def game_cooperative_skill_formatter(dialog: Dict):
    dialog = utils.get_last_n_turns(dialog)
    dialog = utils.remove_clarification_turns_from_dialog(dialog)
    dialog = utils.replace_with_annotated_utterances(dialog, mode="punct_sent")
    dialog["human"]["attributes"] = {
        "game_cooperative_skill":
        dialog["human"]["attributes"].get("game_cooperative_skill", {}),
        "used_links":
        dialog["human"]["attributes"].get("used_links", {}),
    }
    return [{"dialogs": [dialog]}]
Esempio n. 7
0
def last_utt_and_history_dialog(dialog: Dict) -> List:
    # Used by: topicalchat retrieval skills
    dialog = utils.get_last_n_turns(dialog)
    dialog = utils.remove_clarification_turns_from_dialog(dialog)
    dialog = utils.replace_with_annotated_utterances(dialog, mode="punct_sent")
    sent = dialog["human_utterances"][-1]["annotations"].get(
        "spelling_preprocessing", dialog["human_utterances"][-1]["text"])
    return [{
        "sentences": [sent],
        "utterances_histories": [[utt["text"] for utt in dialog["utterances"]]]
    }]
Esempio n. 8
0
def sent_rewrite_formatter_w_o_last_dialog(dialog: Dict) -> List[Dict]:
    dialog = utils.get_last_n_turns(dialog, utils.LAST_N_TURNS + 1)
    dialog = utils.remove_clarification_turns_from_dialog(dialog)
    dialog = utils.replace_with_annotated_utterances(dialog, mode="segments")
    utterances_histories = []
    annotation_histories = []
    for utt in dialog["utterances"][:-1]:
        annotation_histories.append(deepcopy(utt["annotations"]))
        utterances_histories.append(utt["text"])
    return [{
        "utterances_histories": [utterances_histories],
        "annotation_histories": [annotation_histories]
    }]
Esempio n. 9
0
def convers_evaluator_annotator_formatter(dialog: Dict) -> List[Dict]:
    dialog = utils.get_last_n_turns(dialog)
    dialog = utils.remove_clarification_turns_from_dialog(dialog)
    conv = dict()
    hypotheses = dialog["human_utterances"][-1]["hypotheses"]
    conv["hypotheses"] = [h["text"] for h in hypotheses]
    conv["currentUtterance"] = dialog["utterances"][-1]["text"]
    # cobot recommends to take 2 last utt for conversation evaluation service
    conv["pastUtterances"] = [
        uttr["text"] for uttr in dialog["human_utterances"]
    ][-3:-1]
    conv["pastResponses"] = [
        uttr["text"] for uttr in dialog["bot_utterances"]
    ][-2:]
    return [conv]
Esempio n. 10
0
def convert_formatter_dialog(dialog: Dict) -> List[Dict]:
    # Used by: convert
    dialog_20 = utils.get_last_n_turns(dialog, bot_last_turns=20)
    dialog = utils.get_last_n_turns(dialog)
    dialog = utils.remove_clarification_turns_from_dialog(dialog)
    dialog = utils.replace_with_annotated_utterances(dialog, mode="punct_sent")
    return [{
        "utterances_histories":
        [[utt["text"] for utt in dialog_20["utterances"]]],
        "personality": [dialog["bot"]["persona"]],
        "num_ongoing_utt": [
            utils.count_ongoing_skill_utterances(dialog["bot_utterances"],
                                                 "convert_reddit")
        ],
        "human_attributes": [dialog["human"]["attributes"]],
    }]
Esempio n. 11
0
def utt_sentrewrite_modified_last_dialog(dialog: Dict):
    # Used by: book_skill_formatter; misheard_asr_formatter, cobot_qa_formatter
    all_prev_active_skills = [
        uttr.get("active_skill", "") for uttr in dialog["bot_utterances"]
    ]
    all_prev_active_skills = [
        skill_name for skill_name in all_prev_active_skills if skill_name
    ]
    dialog = utils.get_last_n_turns(dialog)
    dialog = utils.remove_clarification_turns_from_dialog(dialog)
    dialog = utils.replace_with_annotated_utterances(dialog,
                                                     mode="modified_sents")
    return [{
        "dialogs": [dialog],
        "all_prev_active_skills": [all_prev_active_skills]
    }]
Esempio n. 12
0
def hypothesis_histories_list(dialog: Dict):
    hypotheses = dialog["human_utterances"][-1]["hypotheses"]
    dialog = utils.get_last_n_turns(dialog)
    dialog = utils.remove_clarification_turns_from_dialog(dialog)
    dialog = utils.replace_with_annotated_utterances(dialog, mode="segments")
    utterances_histories_batch = []
    for hyp in hypotheses:
        utterances_histories = []
        for utt in dialog["utterances"]:
            utt_text = utt["text"]
            if isinstance(utt_text, list):
                utt_text = " ".join(utt_text)
            utterances_histories.append(utt_text)
        # hyp["text"] is a string. We need to pass here list of strings.
        utterances_histories.append(hyp["text"])
        utterances_histories_batch.append(utterances_histories)

    return [{"utterances_with_histories": utterances_histories_batch}]
Esempio n. 13
0
def eliza_formatter_dialog(dialog: Dict) -> List[Dict]:
    # Used by: eliza_formatter
    dialog = utils.get_last_n_turns(dialog)
    dialog = utils.remove_clarification_turns_from_dialog(dialog)
    history = []
    prev_human_utterance = None
    for utt in dialog["utterances"]:
        if utt["user"]["user_type"] == "human":
            prev_human_utterance = utt["annotations"].get(
                "spelling_preprocessing", utt["text"])
        elif utt["user"]["user_type"] == "bot" and utt[
                "active_skill"] == "eliza" and prev_human_utterance is not None:
            history.append(prev_human_utterance)
    last_utterance = dialog["human_utterances"][-1]["annotations"].get(
        "spelling_preprocessing", dialog["human_utterances"][-1]["text"])
    return [{
        "last_utterance_batch": [last_utterance],
        "human_utterance_history_batch": [history],
    }]
Esempio n. 14
0
def base_skill_selector_formatter_dialog(dialog: Dict) -> List[Dict]:
    # Used by: base_skill_selector_formatter
    dialog = utils.get_last_n_turns(dialog, bot_last_turns=5)
    dialog = utils.remove_clarification_turns_from_dialog(dialog)
    dialog = utils.replace_with_annotated_utterances(dialog, mode="punct_sent")
    return [{"states_batch": [dialog]}]
Esempio n. 15
0
def utt_sentrewrite_modified_last_dialog_emotion_skill(dialog: Dict):
    dialog = utils.get_last_n_turns(dialog, bot_last_turns=2)
    dialog = utils.remove_clarification_turns_from_dialog(dialog)
    dialog = utils.replace_with_annotated_utterances(dialog,
                                                     mode="modified_sents")
    return [{"dialogs": [dialog]}]