仮想エージェント API の要求と応答の変換

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:4分
  • 仮想エージェント API で提供されるスクリプト化された拡張ポイントを通じて、仮想エージェント API の要求と応答をサポートされている形式に変換できます。

    始める前に

    必要なロール:admin

    手順

    1. 次のように移動する。 All (すべて) > システム拡張ポイント > スクリプト済みの拡張点
      • sn_va_as_service.va_api_payload_transformation 拡張ポイントは、要求を処理する前に、プライマリボットペイロードを標準の仮想エージェント API でサポートされている形式に変換します。sn_va_as_service.va_api_output_transformation 拡張ポイントは、仮想エージェント API 応答を、プライマリボットでサポートされている形式に変換します。
      • どちらのスクリプト済み拡張ポイントにも、shouldTransformtransform の 2 つのパラメーターがあります。shouldTransform は、実装が実行されるかどうかを決定するために使用されます。transform は、要求または応答を変換するために使用されます。
    2. 要求ペイロードを変換する場合は、次の手順を実行します。
      1. sn_va_as_service.va_api_payload_transformation 拡張ポイントを選択
      2. [関連リンク] セクションで、[実装を作成] を選択します。
      3. 要件に従って拡張ポイントスクリプトを更新します。
        sn_va_as_service.va_api_payload_transformation 拡張ポイントでは、要求パラメーターは payloadheaders の 2 つのキーを持つオブジェクトです。payload はプライマリボットから受信した要求ペイロードで、headers は要求ペイロードで送信されたヘッダーです。実装例を次に示します。
        
        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
            };
        },
        
        図 : 1. sn_va_as_service.va_api_payload_transformation 拡張ポイント
        要求ペイロードを変換するためのスクリプト化済み拡張ポイント
      4. [更新] をクリックします。
    3. 応答ペイロードを変換する場合は、次の手順を実行します。
      1. sn_va_as_service.va_api_output_transformation 拡張ポイントを選択
      2. [関連リンク] セクションで、[実装を作成] を選択します。
      3. 要件に従って拡張ポイントスクリプトを更新します。
        sn_va_as_service.va_api_output_transformation 拡張ポイントでは、応答パラメーターは inputPayload と responsePayload の 2 つのキーを持つオブジェクトです。inputPayload は仮想エージェント API から受信した要求ペイロードで、responsePayload は変換された応答のビルドに使用できる仮想エージェント API からの応答です。要求ペイロードの appInboundId フィールドを使用して、true または false を返すかどうかを決定します。実装例を次に示します。
        
        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'
        };
        
        図 : 2. sn_va_as_service.va_api_output_transformation 拡張ポイント
        応答ペイロードを変換するためのスクリプト化済み拡張ポイント
      4. [更新] をクリックします。