Transformer la demande et la réponse de l’API de l’Agent virtuel

  • Rversion finale: Washingtondc
  • Mis à jour 19 févr. 2024
  • 2 minutes de lecture
  • Vous pouvez transformer la demande et la réponse de l’API Agent virtuel en formats pris en charge via les points d’extension scriptés fournis dans l’API Agent virtuel.

    Avant de commencer

    Rôle requis : admin

    Procédure

    1. Accédez à la Tout > Points d’extensions système > Points d'extension scriptés
      • Le point d’extension sn_va_as_service.va_api_payload_transformation transforme la charge utile du bot primaire en format standard pris en charge par l’API Virtual Agent avant de traiter la demande. Le point d’extension sn_va_as_service.va_api_output_transformation transforme la réponse API de Virtual Agent dans un format pris en charge par le bot primaire.
      • Les deux points d’extension scriptés ont deux paramètres : shouldTransform et transform. shouldTransform est utilisé pour déterminer si l’implémentation est exécutée. transform est utilisé pour transformer la demande ou la réponse.
    2. Si vous souhaitez transformer la charge utile de la demande, procédez comme suit.
      1. Sélectionnez le point d’extension sn_va_as_service.va_api_payload_transformation
      2. Dans la section Liens connexes, cliquez sur Créer une implémentation.
      3. Mettez à jour le script de point d’extension selon vos besoins.
        Dans le point d’extension sn_va_as_service.va_api_payload_transformation, le paramètre de demande est un objet avec deux clés : payload et headers. payload est la charge utile de la demande reçue du bot principal et headers correspond aux en-têtes envoyés dans la charge utile de la demande. Voici un exemple d’implémentation.
        
        var va_api_payload_transformation = Class.create();
        va_api_payload_transformation.prototype = {
            initialize: function() {},
        
            shouldTransform: function(request) {
                return request.payload.caller === "examplebot";
            },
        
            /* 
            return object for transform function should be in the following format
            transformedRequest = {
            payload: request.payload,
            headers: request.headers
            };
            */transform: function(request) {
            var payload = request.payload;
            var headers = request.headers;
        
            var vaAPIPayload = {
        	"userId": payload.userId,
        	"emailId": payload.email,
        	"message": {
        	    "text": payload.message,
        	    "typed": true
        	},
        	"contextVariables": {
        	    "requester_session_language": payload.user_language
        	},
        	"appInboundId": "custom_1"
            };
        	
            return {
        	payload: vaAPIPayload,
        	headers: headers
            };
        },
        
        Figure 1. sn_va_as_service.va_api_payload_transformation point d’extension
        Point d’extension scripté pour la transformation de la charge utile de la demande
      4. Cliquez sur Mettre à jour.
    3. Si vous souhaitez transformer la charge utile de la réponse, procédez comme suit.
      1. Sélectionnez le point d’extension sn_va_as_service.va_api_output_transformation
      2. Dans la section Liens connexes, cliquez sur Créer une implémentation.
      3. Mettez à jour le script de point d’extension selon vos besoins.
        Dans le point d’extension sn_va_as_service.va_api_output_transformation, le paramètre de réponse est un objet avec deux clés : inputPayload et responsePayload. inputPayload est la charge utile de la demande reçue de l’API Agent virtuel, et responsePayload est la réponse de l’API Agent virtuel que vous pouvez utiliser pour créer la réponse transformée. Utilisez le champ appInboundId de la charge utile de la demande pour déterminer s’il faut renvoyer vrai ou faux. Voici un exemple d’implémentation.
        
        var va_api_output_transformation = Class.create();
        va_api_output_transformation.prototype = {
            initialize: function() {},
        
            shouldTransform: function(response) {
        	return (response.inputPayload.appInboundId === 'custom_1');
            },
        
            /*
            input object param for transform function should be in the following format
            response = {
                inputPayload: response.inputPayload,
        	responsePayload: response.responsePayload
            };
            */
            transform: function(response) {
        	//return only transformed payload
                return {
        	    'custom_structure': response.responsePayload
        	};
            },
        
            type: 'va_api_output_transformation'
        };
        
        Figure 2. Point d’extension sn_va_as_service.va_api_output_transformation
        Point d’extension scripté pour la transformation de la charge utile de la réponse
      4. Cliquez sur Mettre à jour.