dream

Форк
0
45 строк · 1.5 Кб
1
import logging
2
import sentry_sdk
3
from os import getenv
4

5
from df_engine.core import Context, Actor
6

7
sentry_sdk.init(getenv("SENTRY_DSN"))
8
logging.basicConfig(format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level=logging.INFO)
9
logger = logging.getLogger(__name__)
10

11

12
def is_sf(sf_name="Open.Give.Opinion"):
13
    def is_sf_handler(ctx: Context, actor: Actor, *args, **kwargs):
14
        try:
15
            last_utterance = ctx.misc.get("agent", {}).get("dialog", {}).get("human_utterances", {})[-1]
16
            utterance_sfcs = last_utterance.get("annotations", {}).get("speech_function_classifier", [])
17
        except KeyError:
18
            utterance_sfcs = []
19

20
        return sf_name in utterance_sfcs
21

22
    return is_sf_handler
23

24

25
def is_ext_sf(ext_sf_name="React.Respond.Support.Reply.Agree"):
26
    def is_ext_sf_handler(ctx: Context, actor: Actor, *args, **kwargs):
27
        return ext_sf_name in ctx.misc.get("ext_sf", [[]])[-1]
28

29
    return is_ext_sf_handler
30

31

32
def is_midas(midas_name="pos_answer", threshold=0.5):
33
    def is_midas_handler(ctx: Context, actor: Actor, *args, **kwargs):
34
        try:
35
            last_utterance = ctx.misc.get("agent", {}).get("dialog", {}).get("human_utterances", {})[-1]
36
            midas = last_utterance.get("annotations", {}).get("midas_classification", [{}])[-1]
37
            midas_keys = [key for key, val in midas.items() if val > threshold]
38
        except KeyError:
39
            midas_keys = []
40
        return midas_name in midas_keys
41

42
    return is_midas_handler
43

44

45
speech_functions = is_sf
46

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.