Improved the weather skill models for overall better experience

This commit is contained in:
Mathieu B 2021-08-07 16:34:44 +02:00
parent 12119f4281
commit 4b76a0ce1f
20 changed files with 109 additions and 225 deletions

View File

@ -1,210 +0,0 @@
"""
Based on the Open-Source Mycroft Weather Skill
https://github.com/MycroftAI/skill-weather/blob/21.02/skill/weather.py
"""
from adapt.intent import IntentBuilder
from ... import Skill, SkillRegistering
from ...decorators import intent_handler, intent_file_handler
class WeatherSkill(Skill, metaclass=SkillRegistering):
"""Main skill code for the weather skill."""
def __init__(self, data=dict):
super().__init__("WeatherSkill", data)
def handle_how_hot_or_cold(self, data):
"""Handler for temperature requests such as: how cold will it be today?
Args:
data Bus event information from the intent parser
"""
pass
@intent_handler(
IntentBuilder("handle_is_it_windy")
.require("confirm-query")
.require("windy")
.optionally("location")
.optionally("relative-day")
)
def handle_is_it_windy(self, data):
"""Handler for weather requests such as: is it windy today?
Args:
data Bus event information from the intent parser
"""
pass
@intent_handler(
IntentBuilder("handle_windy")
.require("how")
.require("windy")
.optionally("confirm-query")
.optionally("relative-day")
.optionally("location")
)
def handle_windy(self, data):
"""Handler for weather requests such as: how windy is it?
Args:
data Bus event information from the intent parser
"""
pass
@intent_handler(
IntentBuilder("handle_is_it_snowing")
.require("confirm-query")
.require("snow")
.optionally("location")
)
def handle_is_it_snowing(self, data):
"""Handler for weather requests such as: is it snowing today?
Args:
data Bus event information from the intent parser
"""
pass
@intent_handler(
IntentBuilder("handle_is_it_clear")
.require("confirm-query")
.require("clear")
.optionally("location")
)
def handle_is_it_clear(self, data):
"""Handler for weather requests such as: is the sky clear today?
Args:
data Bus event information from the intent parser
"""
pass
@intent_handler(
IntentBuilder("handle_is_it_cloudy")
.require("confirm-query")
.require("clouds")
.optionally("location")
.optionally("relative-time")
)
def handle_is_it_cloudy(self, data):
"""Handler for weather requests such as: is it cloudy today?
Args:
data Bus event information from the intent parser
"""
pass
@intent_handler(
IntentBuilder("handle_is_it_foggy").require("ConfirmQuery").require("Fog").optionally("Location")
)
def handle_is_it_foggy(self, data):
"""Handler for weather requests such as: is it foggy today?
Args:
data Bus event information from the intent parser
"""
pass
@intent_handler(
IntentBuilder("handle_is_it_raining").require("ConfirmQuery").require("Rain").optionally("Location")
)
def handle_is_it_raining(self, data):
"""Handler for weather requests such as: is it raining today?
Args:
data Bus event information from the intent parser
"""
pass
# @intent_file_handler("do-i-need-an-umbrella.intent", "handle_need_umbrella")
def handle_need_umbrella(self, data):
"""Handler for weather requests such as: will I need an umbrella today?
Args:
data Bus event information from the intent parser
"""
pass
@intent_handler(
IntentBuilder("handle_is_it_storming")
.require("ConfirmQuery")
.require("Thunderstorm")
.optionally("Location")
)
def handle_is_it_storming(self, data):
"""Handler for weather requests such as: is it storming today?
Args:
data Bus event information from the intent parser
"""
pass
@intent_handler(
IntentBuilder("handle_next_precipitation")
.require("When")
.optionally("Next")
.require("Precipitation")
.optionally("Location")
)
def handle_next_precipitation(self, data):
"""Handler for weather requests such as: when will it rain next?
Args:
data Bus event information from the intent parser
"""
pass
@intent_handler(
IntentBuilder("handle_humidity")
.require("Query")
.require("Humidity")
.optionally("RelativeDay")
.optionally("Location")
)
def handle_humidity(self, data):
"""Handler for weather requests such as: how humid is it?
Args:
data Bus event information from the intent parser
"""
pass
@intent_handler(
IntentBuilder("handle_sunrise")
.one_of("Query", "When")
.optionally("Location")
.require("Sunrise")
.optionally("Today")
.optionally("RelativeDay")
)
def handle_sunrise(self, data):
"""Handler for weather requests such as: when is the sunrise?
Args:
data Bus event information from the intent parser
"""
pass
@intent_handler(
IntentBuilder("handle_sunset")
.one_of("Query", "When")
.require("Sunset")
.optionally("Location")
.optionally("Today")
.optionally("RelativeDay")
)
def handle_sunset(self, data):
"""Handler for weather requests such as: when is the sunset?
Args:
data Bus event information from the intent parser
"""
pass
def create_skill(data):
"""Boilerplate to invoke the weather skill."""
return WeatherSkill(data)

View File

@ -15,11 +15,59 @@ class WeatherSkill(Skill, metaclass=SkillRegistering):
pass
@intent_file_handler("handle_is_it_hot.intent", "HandleIsItHotIntent")
def handle_temperature(self, data):
def handle_is_it_hot(self, data):
pass
@intent_file_handler("handle_is_it_cold.intent", "HandleIsItColdIntent")
def handle_temperature(self, data):
def handle_is_it_cold(self, data):
pass
@intent_file_handler("handle_is_it_windy.intent", "HandleIsItWindyIntent")
def handle_windy(self, data):
pass
@intent_file_handler("handle_is_it_snowing.intent", "HandleIsItSnowingIntent")
def handle_snowning(self, data):
pass
@intent_file_handler("handle_is_it_clear.intent", "HandleIsItClearIntent")
def handle_is_it_clear(self, data):
pass
@intent_file_handler("handle_is_it_cloudy.intent", "HandleIsItCloudyIntent")
def handle_is_it_cloudy(self, data):
pass
@intent_file_handler("handle_is_it_foggy.intent", "HandleIsItFoggyIntent")
def handle_is_it_foggy(self, data):
pass
@intent_file_handler("handle_is_it_raining.intent", "HandleIsItRainingIntent")
def handle_is_it_raining(self, data):
pass
@intent_file_handler("handle_do_i_need_an_umbrella.intent", "HandleNeedUmbrellaIntent")
def handle_need_umbrella(self, data):
pass
@intent_file_handler("handle_is_it_storming.intent", "HandleIsItStormingIntent")
def handle_need_storming(self, data):
pass
@intent_file_handler("handle_is_it_humid.intent", "HandleIsItHumidIntent")
def handle_is_it_humid(self, data):
pass
@intent_file_handler("handle_when_raining.intent", "HandleWhenRainingIntent")
def handle_when_raining(self, data):
pass
@intent_file_handler("handle_sunrise.intent", "HandleSunriseIntent")
def handle_sunrise(self, data):
pass
@intent_file_handler("handle_sunset.intent", "HandleSunsetIntent")
def handle_sunset(self, data):
pass

View File

@ -3,7 +3,7 @@ aujourd'hui
aujo
lundi
mardi
mecredi
mercredi
jeudi
vendredi
samedi

View File

@ -0,0 +1,3 @@
est-ce que je vais avoir besoin d'un parapluie (ce|cet|) ({day}|) ((à|a|pour) {location}|)
aurais-je besoin d'un parapluie (ce|cet|) ({day}|) ((à|a|pour) {location}|)
est-ce que je dois prendre un parapluie ((avec moi|) (ce|cet|) ({day}|) ((à|a|pour) {location}|)|)es

View File

@ -0,0 +1 @@
est-ce que le ciel (sera|va être|est) dégagé (ce|cet|) ({day}|) ((à|a|pour) {location}|)

View File

@ -0,0 +1,5 @@
est-ce qu'il va y avoir des nuages (ce|cet|) ({day}|) ((à|a|pour) {location}|)
est-ce que ca va être nuageux (ce|cet|) ({day}|) ((à|a|pour) {location}|)
est-ce que le ciel sera nuageux (ce|cet|) ({day}|) ((à|a|pour) {location}|)
le ciel sera-il nuageux (ce|cet|) ({day}|) ((à|a|pour) {location}|)
est-ce qu'il fera nuageux (ce|cet|) ({day}|) ((à|a|pour) {location}|) ?

View File

@ -1,2 +1,3 @@
est-ce qu'il va faire froid {day}
va t'il faire froid {day}
est-ce qu'il va faire froid (ce|cet|) ({day}|) ((à|a|pour) {location}|)
va t'il faire froid (ce|cet|) ({day}|) ((à|a|pour) {location}|)
il va faire froid (ce|cet|) ({day}|) ((à|a|pour) {location}|)

View File

@ -0,0 +1,5 @@
est-ce qu'il (va y avoir|y aura) (du|de) (la|) (brouillard|brume) (ce|cet|) ({day}|) ((à|a|pour) {location}|)
est-ce que ca va être brumeux (ce|cet|) ({day}|) ((à|a|pour) {location}|)
est-ce que ce sera brumeux (ce|cet|) ({day}|) ((à|a|pour) {location}|)
va t'il y avoir de la brume (ce|cet|) ({day}|) ((à|a|pour) {location}|)
ca va être brumeux (ce|cet|) ({day}|) ((à|a|pour) {location}|)

View File

@ -1,2 +1,3 @@
est-ce qu'il va faire chaud {day}
va t'il faire chaud {day}
est-ce qu'il va faire chaud (ce|cet|) ({day}|) ((à|a|pour) {location}|)
va t'il faire chaud (ce|cet|) ({day}|) ((à|a|pour) {location}|)
il va faire chaud (ce|cet|) ({day}|) ((à|a|pour) {location}|)

View File

@ -0,0 +1,3 @@
est-ce que ca va être humide (ce|cet|) ({day}|) ((à|a|pour) {location}|)
est-ce que ce sera humide (ce|cet|) ({day}|) ((à|a|pour) {location}|)
va t'il y avoir (beaucoup|) d'humidité (ce|cet|) ({day}|) ((à|a|pour) {location}|)

View File

@ -0,0 +1,4 @@
est-ce qu'il (va pleuvoir|pleut|y (a|aura) de la pluie) (ce|cet|) ({day}|) ((à|a|pour) {location}|)
va t'il pleuvoir (ce|cet|) ({day}|) ((à|a|pour) {location}|)
il pleut (ce|cet|) ({day}|) ((à|a|pour) {location}|)
est-ce qu'on va se prendre la pluie aujourd'hui

View File

@ -0,0 +1,3 @@
est-ce qu'il va (y avoir de la neige|neiger) (ce|cet|) ({day}|) ((à|a|pour) {location}|)
va t'il (y avoir de la neige|neiger) (ce|cet|) ({day}|) ((à|a|pour) {location}|)
il va neiger (ce|cet|) ({day}|) ((à|a|pour) {location}|) ?

View File

@ -0,0 +1,3 @@
est-ce qu'il va y avoir de l'orage (ce|cet|) ({day}|) ((à|a|pour) {location}|)
va t'il avoir de l'orage (ce|cet|) ({day}|) ((à|a|pour) {location}|)
est-ce qu'il y aura de l'orage (ce|cet|) ({day}|) ((à|a|pour) {location}|)

View File

@ -0,0 +1,4 @@
est-ce qu'il va (faire venteux|y avoir (du|beaucoup de) vent) (ce|cet|) ({day}|) ((à|a|pour) {location}|)
va t'il (y|) avoir (beaucoup|du) vent (ce|cet|) ({day}|) ((à|a|pour) {location}|)
il va y avoir du vent (ce|cet|) ({day}|) ((à|a|pour) {location}|)
est-ce que ca va être venteux (ce|cet|) ({day}|) ((à|a|pour) {location}|)

View File

@ -0,0 +1,4 @@
quand est-ce que le soleil se lève
le soleil se lève quand
à quel heure se lève le soleil
(j'ai|on a) combien de {time} avant que (se lève|) le soleil (se lève|)

View File

@ -0,0 +1,4 @@
quand est-ce que le soleil se couche
le soleil se couche quand
à quel heure se couche le soleil
(j'ai|on a) combien de {time} avant que (se lève|) le soleil (se lève|)

View File

@ -1,10 +1,8 @@
ce sera quoi la température ((ce|cet|) {day}|) ((pour|les|de ces|ces) {forecast_days} (prochain|prochains|) jours|)
il fait quel température
ce sera quoi la température ((ce|cet|) {day}|)
c'est quoi la température ((pour|les|de ces|ces) {forecast_days} (prochain|prochains|) jours|)
il fait quel température (dehors|) ((pour|les|de ces|ces) {forecast_days} (prochain|prochains|) jours|)
ca (ressemble à|donne) quoi la température (dehors|) ((pour|les|de ces|ces) {forecast_days} (prochain|prochains|) jours|)
donne moi la température ((pour|les|de ces|ces) {forecast_days} (prochain|prochains|) jours|)
donne moi la température (pour|de) (ce|cet|) {day} ((pour|les|de ces|ces) {forecast_days} (prochain|prochains|) jours|)
il fait quel température (dehors|)
donne moi la température (pour|de) (ce|cet|) {day}
dis moi la température ((pour|les|de ces|ces) {forecast_days} (prochain|prochains|) jours|)
dis moi la température (pour|de) (ce|cet|) {day} ((pour|les|de ces|ces) {forecast_days} (prochain|prochains|) jours|)
il (fait|va faire) (quel température|combien) (dehors|) (soir|midi|après-midi|matin|) ((ce|cet|) {day}|) ((à|a|pour) {location}|)
il (fait|fera|va faire) (quelle|combien|) température (dehors|) ((ce|cet|) {day}|(pour|les|de ces|ces) {forecast_days} (prochain|prochains|) jours|) ((à|a|pour) {location}|)
donne moi la température à {location} {day}

View File

@ -7,7 +7,7 @@ donne moi la météo (pour|de) (ce|cet|) {day} ((pour|les|de ces|ces) {forecast_
dis moi la météo ((pour|les|de ces|ces) {forecast_days} (prochain|prochains|) jours|)
dis moi la météo (pour|de) (ce|cet|) {day} ((pour|les|de ces|ces) {forecast_days} (prochain|prochains|) jours|)
il (fait|va faire) quel temps (dehors|) (soir|midi|après-midi|matin|) ((ce|cet|) {day}|) ((à|a|pour) {location}|)
il (fait|fera|va faire) (quel|quoi|) (temps|météo|) (dehors|) ((ce|cet|) {day}|(pour|les|de ces|ces) {forecast_days} (prochain|prochains|) jours|) ((à|a|pour) {location}|)
il (fait|fera|va faire) (quel|quoi|) (temps|météo|comme temps) (dehors|) ((ce|cet|) {day}|(pour|les|de ces|ces) {forecast_days} (prochain|prochains|) jours|) ((à|a|pour) {location}|)
donne moi les prévisions de la journée ((à|pour) {location}|)
(donne moi|ce sera quoi) les prévisions (météo|) pour (ce|cet|) {day} ((à|a|pour) {location}|)
(donne moi|ce sera quoi) les prévisions (météo|) ({day}|(pour|les|de ces|ces) {forecast_days} (prochain|prochains|) jours|) ((à|a|pour) {location}|)

View File

@ -0,0 +1,6 @@
quand va t'il pleuvoir (ce|cet|) ({day}|) ((à|a|pour) {location}|)
quand est-ce qu'il pleut (ce|cet|) ({day}|) ((à|a|pour) {location}|)
c'est quand qu'il va pleuvoir (ce|cet|) ({day}|) ((à|a|pour) {location}|)
il pleut quand (ce|cet|) ({day}|) ((à|a|pour) {location}|)
la pluie arrive quand (ce|cet|) ({day}|) ((à|a|pour) {location}|)
quand est-ce qu'on va se prendre la pluie

View File

@ -0,0 +1 @@
temps