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()

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.

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

app.py
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)

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

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 ?