dream
1import statistics2import logging3
4logging.basicConfig(format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level=logging.DEBUG)5logger = logging.getLogger(__name__)6
7
8def is_introvert(dialog):9is_extravert_across_five_turns = []10
11# we need to get five first turns12human_utterances = dialog["human_utterances"]13
14first_5 = human_utterances[:5]15
16for human_utterance in first_5:17user_uttr_annotations = human_utterance["annotations"]18
19# Extraversion (outgoing/energetic vs. solitary/reserved)20# is_extravert = -121# Neuroticism (sensitive/nervous vs. secure/confident)22# is_neu = -123# Extraversion (outgoing/energetic vs. solitary/reserved)24# is_agr = -125# Conscientiousness (efficient/organized vs. easy-going/careless)26# is_con = -127# Openness to experience (inventive/curious vs. consistent/cautious)28# is_opn = -129
30personality_detection = user_uttr_annotations.get("personality_detection", {})31
32logger.info(f"personality_detection: {personality_detection}")33
34if len(personality_detection) == 5:35is_extravert = personality_detection[0]36
37is_extravert_across_five_turns.append(is_extravert)38
39is_extravert_across_five_turns_median = statistics.median(is_extravert_across_five_turns)40
41logger.info(f"is_extravert (across first five turns): {is_extravert_across_five_turns_median}")42
43if is_extravert_across_five_turns_median > 0.8:44return True45
46return False47