Recevoir une requête
Comme expliqué dans la page de l'activation par invocation, votre application vas recevoir une requête (comme lancement) à laquelle votre application vas fournir une réponse (comme "Bonjour, comment puis-je vous aider ?"). Puis tant que vous ne spécifiez pas à votre application de terminer l'interaction avec votre utilisateur, une réponse et donc nouvelle requête vas être attendu de la part de l'utilisateur, pour que vous lui fournissiez à nouveau une réponse.
Les réponses
Gérer le lancement de l'application
self.is_launch_request()
self.is_launch_request()Fonctionnement
Cette fonction retourneras une valeur True si la requête de l'utilisateur est le lancement classique de votre application, et False si ce n'est pas le cas. Vous utiliserez principalement cela dans la fonction can_handle d'une classe InoftRequestHandler.
Si un utilisateur lance votre application en incluant directement une intention - par exemple, à la place de dire "Alexa, lance le jeu" qu'il dise "Alexa, demande au jeu de reprendre ma partie" -, alors votre application ne recevras pas de requête de lancement, mais une requête d'intention.
Pour rappel, une classe de type InoftRequestHandler à deux fonctions obligatoires (et d'autres optionnelles). La fonction handle qui contient votre logique pour construire une réponse pour votre utilisateur. Et la fonction can_handle qui si retourne la valeur True va informer l'application que la fonction handle de la même classe devrait être utiliser pour créer la réponse que l'utilisateur vas recevoir, et que les potentiels suivantes classes pouvant fournir une réponse n'ont plus besoin d'être utiliser pour le moment (jusqu'à la prochaine requête de l'utilisateur, où tout ce processus vas se répéter).
Exemple
def can_handle(self) -> bool:
return self.is_launch_request()Usage
from inoft_vocal_framework import InoftSkill, \
InoftRequestHandler, InoftDefaultFallback
class LaunchRequestHandler(InoftRequestHandler):
def can_handle(self) -> bool:
return self.is_launch_request()
def handle(self):
self.say("Bien le bonjour et l'aurevoir l'ami !")
self.end_session()
return self.to_platform_dict()
# Une classe de DefaultFallback est obligatoire dans toutes applications
class DefaultFallback(InoftDefaultFallback):
def handle(self):
self.say("J'ai pas compris mon ami ! Excellente journée à toi !")
self.end_session()
return self.to_platform_dict()
def lambda_handler(event, context):
skill = InoftSkill()
skill.add_request_handler(LaunchRequestHandler)
skill.set_default_fallback_handler(DefaultFallback)
return skill.handle_any_platform(event=event, context=context)
# Uniquement si le fichier est lancer depuis une machine local (et non sur
# le cloud). L'application sera lancé en simulant le lancement d'un skill Alexa.
if __name__ == "__main__":
from inoft_vocal_framework import Simulator
event_, context_ = Simulator(platform=Simulator.PLATFORM_ALEXA,
event_type="launch").get_event_and_context()
print(f"\n\nFinal Output : {lambda_handler(event=event_, context=context_)}")Pour déployer ce code et le lier à une application sur assistants vocaux, veuillez voir la page de déploiement ici
Gérer l'intention d'un utilisateur
self.is_in_intent_names(intent_names_list: list or str)
self.is_in_intent_names(intent_names_list: list or str)Fonctionnement
Cette fonction retourneras une valeur True si la requête de l'utilisateur est le lancement classique de votre application, et False si ce n'est pas le cas. Vous utiliserez cette fonction can_handle d'une classe InoftRequestHandler et également dans la logique de vos fonctions handle pour vos états à choix multiples.
Pour rappel, une classe de type InoftRequestHandler à deux fonctions obligatoires (et d'autres optionnelles). La fonction handle qui contient votre logique pour construire une réponse pour votre utilisateur. Et la fonction can_handle qui si retourne la valeur True va informer l'application que la fonction handle de la même classe devrait être utiliser pour créer la réponse que l'utilisateur vas recevoir, et que les potentiels suivantes classes pouvant fournir une réponse n'ont plus besoin d'être utiliser pour le moment (jusqu'à la prochaine requête de l'utilisateur, où tout ce processus vas se répéter).
Utilisation indépendante dans un InoftRequestHandler
Contrairement aux choix multiples (tant que votre utilisateur n'est pas dans un choix multiple) les InoftRequestHandler peuvent être déclenchée à n'importe quel moment. Si vous souhaitez créer une application à parcours non-linéaire où les utilisateurs peuvent accéder
Si un utilisateur lance votre application en incluant directement une intention - par exemple, à la place de dire "Alexa, lance le jeu" qu'il dise "Alexa, demande au jeu de reprendre ma partie" -, alors votre application ne recevras pas de requête de lancement, mais une requête d'intention.
Utilisation dans état à choix multiples (InoftStateHandler)
Exemples
A l'intérieur de la fonction can_handle d'une classe InoftRequestHandler
A l'intérieur de la fonction handle d'un état à choix multiples (une classe InoftStateHandler)
Usage
Pour déployer ce code et le lier à une application sur assistants vocaux, veuillez voir la page de déploiement ici
Usage
Pour déployer ce code et le lier à une application sur assistants vocaux, veuillez voir la page de déploiement ici
Mis à jour
Ce contenu vous a-t-il été utile ?