dream

Форк
0
/
weather.py 
44 строки · 1.5 Кб
1
import re
2
from common.utils import is_yes, get_intents
3

4

5
ASK_WEATHER_SKILL_FOR_HOMELAND_PHRASE = "Would you like to know the weather there?"
6
ASK_WEATHER_SKILL_PHRASE = "Would you like to know the weather?"
7

8
WEATHER_COMPILED_PATTERN = re.compile(r"(weather|forecast)", re.IGNORECASE)
9
WEATHER_REQUEST_COMPILED_PATTERN = re.compile(
10
    r"((tell me|what is|what's|what about|to know|you know) (the )?weather)", re.IGNORECASE
11
)
12

13

14
def skill_trigger_phrases():
15
    return [ASK_WEATHER_SKILL_PHRASE]
16

17

18
def skill_all_trigger_phrases():
19
    # these phrases include linkto from skill_trigger_phrases, and some SPECIFIC linking phrases
20
    return skill_trigger_phrases() + [ASK_WEATHER_SKILL_FOR_HOMELAND_PHRASE, ASK_WEATHER_SKILL_PHRASE]
21

22

23
def is_weather_for_homeland_requested(prev_bot_utt, user_utt):
24
    if ASK_WEATHER_SKILL_FOR_HOMELAND_PHRASE.lower() in prev_bot_utt.get("text", "").lower():
25
        if is_yes(user_utt):
26
            return True
27
    return False
28

29

30
def is_weather_without_city_requested(prev_bot_utt, user_utt):
31
    if ASK_WEATHER_SKILL_PHRASE.lower() in prev_bot_utt.get("text", "").lower():
32
        if is_yes(user_utt):
33
            return True
34
    return False
35

36

37
def if_special_weather_turn_on(user_utt, prev_bot_utt):
38
    if (
39
        "weather_forecast_intent" in get_intents(user_utt, probs=False, which="all")
40
        or is_weather_for_homeland_requested(prev_bot_utt, user_utt)
41
        or is_weather_without_city_requested(prev_bot_utt, user_utt)
42
    ):
43
        return True
44
    return False
45

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

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

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

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