Skip to content

Fonction

Les ressources Fonction vous permettent d'écrire du code Javascript afin d'appliquer tout type de traitement personnalisé sur vos variables.

Ces fonctions peuvent ensuite retourner des données brutes à traiter plus tard ou des workflows Prisme.ai directement exécutable.

1. Creation

Lors de l'édition de votre function depuis le dashboard Prisme.ai, une zone de saisie vous permettra d'enregistrer votre code Javascript personnalisé.
Par défaut, le seul paramètre reçu par la fonction est la structure suivante, transportant différentes informations détaillant le context d'appel :

interface request {
  timestamp: string; // DateTime de l'appel
  sessionId: string; // Identifiant de la session
  bot: {
    id: string; // Identifiant de l'assistant
  };
  user: { // Utilisateur courant
    id: string; // Identifiant de l'utilisateur
    location: string; // Localisation de l'utilisateur s'il l'a autorisé
    platform: string; // Plateforme de l'agent utilisateur
    conversationSize: number; // Nombre de messages de la conversation
    conversationId: string; // Identifiant de la conversation
  };
  userMessage: { // Message de l'utilisateur
    event: string; // Si le message de l'utilisateur est un évènement, son nom
    text: string; // Si c'est du texte, son contenu
    payload: {}; // Si le message contient un objet arbitraire, celui-ci
  }
  originalRequest: {}; // Objet de paramètres arbitraires passés au script d'injection
  lang: string; // Langue du navigateur de l'utilisateur
  query: string; // Requête envoyée par l'utilisateur
  event: string; // Évènement envoyé par l'utilisateur
  fulfillment: { // Réponses générée par le workflow avant d'arriver à la fonction
    stream: {
      type: string;
      resourceId: string;
    }[];
  intent: { // Intention correspondante à la requête de l'utilisateur
    name: string;
    confidence: number; // Indice de correspondance
    inputs: {}; // Valeur des paramètres de l'intention
  };
  contexts: { // Contextes
    lifespan: string; // Durée de vie
    required: boolean; // S'il est requis
    name: string; // Nom
    parameters: {}; // Paramètres associés
    scope: string; // Périmètre
  }[];
  endConversation: boolean; // Si la convesation est terminée
}

Ainsi, si le contenu de ma fonction est :

return bot.id;

La fonction retournera l'id du bot qui exécute le fonction.

Il est possible d'exécuter du code asynchrone à l'aide des mots clés async/await :

const res = await fetch("http://myservice.com");
const data = await res.json();
return data.value;

Certaines librairies javascript sont mises à disposition parmi lesquelles :

  • fetch : permet d'effectuer des requêtes http
  • DOM : permet de parser du DOM. S'utilise à l'aide de la fonction DOM(document: string) qui retourne un DOMElement.

Pour accéder à d'autres librairies, veuillez nous contacter.

Retour

La fonction peut retourner des données brutes, du simple texte à afficher ou un workflow Prisme.ai directement exécutable :

// Affiche une réponse texte "Hello world"
return "Hello World";
// Renvoit un bloc de données à traiter plus tard
return [{"title": "Hello World"}];
// Renvoit un workflow à exécuter
return [
   {"text" : "Oui bien sûr"},
   {"type": "richText", "text": "<b>Version enrichie</b>"},
   {"type" : "panel", "value": "Ceci est le contenu du panel, qui peut aussi être <b>enrichi</b>"},
   {"type" : "button","text":"click me","value":"message envoyé par le bouton"},
   {"type" : "event","text":"click me","value":"EVENT_NAME"},
   {"type" : "link","text":"im a link","value":"https://www.prisme.ai"},
   {
     "type" : "card",
     "title":"I am a card",
     "image":"https://www.prisme.ai/wp-content/uploads/2020/12/Prisme.ai-logo.png",
     "text":"some text..",
     "buttons":[
        {"type":"button","text":"Texte du bouton","value":"message envoyé par le bouton"}
      ]
   },
]

Plus d'information sur la structure des workflows ici.

2. Appel de la fonction

Que ce soit depuis le DSUL ou l'éditeur graphique, vous pouvez appeler votre nouvelle fonction avec l'action du même nom : Fonction.

Si votre fonction renvoie des données brutes plutôt qu'un workflow Prisme.ai, vous devez sauvegarder le résultat de la fonction dans une variable à utiliser plus tard via l'option output.