가상 에이전트 API 요청 및 응답 변환

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기4분
  • 가상 에이전트 API에 제공된 스크립팅된 확장점을 통해 가상 에이전트 API 요청 및 응답을 지원되는 형식으로 변환할 수 있습니다.

    시작하기 전에

    필요한 역할: 관리자

    프로시저

    1. 다음으로 이동 모두 > 시스템 확장점 > 스크립팅된 확장점
      • sn_va_as_service.va_api_payload_transformation 확장점은 요청을 처리하기 전에 기본 봇 페이로드를 표준 가상 에이전트 API 지원 형식으로 변환합니다. sn_va_as_service.va_api_output_transformation 확장점은 가상 에이전트 API 응답을 기본 봇이 지원하는 형식으로 변환합니다.
      • 스크립팅된 두 확장점에는 두 개의 매개변수 shouldTransform 가 있습니다. 및 transform. shouldTransform 은 구현이 실행되는지 여부를 결정하는 데 사용됩니다. transform 는 요청 또는 응답을 변환하는 데 사용됩니다.
    2. 요청 페이로드를 변환하려면 다음 단계를 완료합니다.
      1. sn_va_as_service.va_api_payload_transformation 확장점 선택
      2. 관련 링크 섹션에서 구현 만들기를 클릭합니다.
      3. 요구 사항에 따라 확장점 스크립트를 업데이트합니다.
        sn_va_as_service.va_api_payload_transformation 확장점에서 요청 매개변수는 두 개의 키가 있는 객체입니다. payloadheaders. 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라는 두 개의 키가 있는 객체입니다. 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. 업데이트를 클릭합니다.