가상 에이전트 작업 스크립트
사용자 데이터를 VACS에 전달하고, 변환을 적용하고, 응답을 채팅 인터페이스 엔드포인트로 다시 전송하려면 필수 워크플로우 스튜디오 작업 및 하위 플로우 스크립트 세트를 작성해야 합니다.
제공자 및 인바운드/아웃바운드 스크립트
Twilio와 같은 제공자는 채팅 기능을 제공합니다. 사용자 작업 스크립트는 제공자 작업은 물론 챗봇 또는 사용자 지정 대화에 대한 인바운드 및 아웃바운드 변환기 작업에 대한 대화형 사용자 지정 채팅 통합 구성을 수행합니다. 각 스크립트의 예가 제공됩니다. 여기에는 각 스크립트가 수행하는 작업에 대한 설명과 작업 입력 및 작업 출력이 포함됩니다. 스크립트 JSON의 예도 볼 수 있습니다.
서버 및 클라이언트 메시지를 변환하기 위해 이러한 스크립트를 작성하는 데 사용합니다 워크플로우 스튜디오 . 제공자, 발신자 및 인바운드/아웃바운드 변환기 스크립트가 필요합니다. 추가 스크립트를 사용하여 채팅에 더 많은 기능을 추가할 수 있습니다.
| 스크립트 이름 | 목적 | 필수(Y/N) |
|---|---|---|
| 제공자 속성 | 제공자 인증 토큰, 사용자 식별자, 사용자 입력 및 컨텍스트 변수를 포함합니다. | Y |
| 보낸 사람 작업 | 요청을 번들로 묶고 또는 Integration Hub를 통해 워크플로우 스튜디오 비동기적으로 응답을 보냅니다. |
Y |
| 응답 프로세서 | 아웃바운드 메시지에 대해 받은 응답을 기반으로 하는 플랫폼 작업(예: 메시지 상태 업데이트)을 수행합니다. | N |
| 상황별 작업 | 상황별 작업을 지원합니다. | N |
| 계정 작업 연결 | 계정 연결의 성공 여부에 대한 콜백을 제공합니다. | N |
| 아웃바운드 변환기 | 채팅 서버의 지원되는 컨트롤을 채팅 인터페이스별 렌더링으로 변환합니다. | Y |
| 인바운드 변환기 | 옵션입니다. 기본 리치 컨트롤이 채팅 제공자에게 적용되는 경우 이를 사용할 수 있습니다. 각 입력 컨트롤에 대해 별도의 인바운드 변환을 제공할 필요가 없습니다. 기본 동작이 작동하지 않는 경우 특정 가상 에이전트 서버 컨트롤에 대한 고유한 인바운드 변환으로 기본값을 재정의할 수 있습니다. | Y |
제공자 속성 동작 스크립트
| 입력 | 출력 |
|---|---|
|
|
예: 제공자 속성 작업 스크립트.
(function execute(inputs, outputs) {
var headers = (inputs.headers);
var payload = (inputs.payload);
// check if an authentication token was included. this is optional.
var smsUtil = new VASMSTwilioUtil();
outputs.token = JSON.stringify(smsUtil.getToken(headers, payload));
var data = payload.data;
var request_context = {};
// inspect the actual message. it could be an MMS (attachment) or raw text
if (data['MediaUrl0']) {
var attachment_value = {};
attachment_value.url = data['MediaUrl0'];
attachment_value.content_type = data['MediaContentType0'];
attachment_value.name = smsUtil.getFileName(attachment_value.url , attachment_value.content_type);
request_context.attachment_value = attachment_value;
} else {
request_context.typed_value = data['Body'];
}
// set the mandatory outputs
outputs.request_context = request_context;
outputs.provider_user_id = data.From;
})(inputs, outputs);
보낸 사람 작업 스크립트(Quebec에서 해제됨, 보낸 사람 하위 플로우 참조)
보낸 사람 작업 스크립트는 공급자에게 메시지를 보내는 방법을 알고 있습니다. 스크립트는 a 워크플로우 스튜디오 또는 Integration Hub subflow를 비동기식으로 호출해야 합니다. 가상 에이전트 외부 요청을 보내려고 시도하지 않고 메시지를 계속 처리할 수 있습니다.
| 입력 | 출력 |
|---|---|
|
없음 |
예: 보낸 사람 작업 스크립트.
(function execute(inputs, outputs) {
var results = inputs.results;
// transform the inputs to something this custom subflow knows about
var sendInputs = {
app_inbound_id : inputs["app_inbound_id"],
channel_user_id: inputs["channel_user_id"],
messages: JSON.stringify(results)
};
// invoke an asynchronous subflow which will send the external request. so this sender script will immediately return,
// freeing up the chat server thread to do further message processing while putting the external request work on the
// Workflow Studio/Integration Hub
sn_fd.FlowAPI.startSubflowQuick('sn_va_sms_twilio.va_sms_twilio_adapter_send_sms', sendInputs);
})(inputs, outputs);
보낸 사람 하위 플로우 스크립트
보낸 사람 하위 플로우 스크립트는 제공자에게 메시지를 보내는 방법을 알고 있습니다. 스크립트는 a 워크플로우 스튜디오 또는 Integration Hub subflow를 비동기식으로 호출해야 합니다. 가상 에이전트 외부 요청을 보내려고 시도하지 않고 메시지를 계속 처리할 수 있습니다. 하위 플로우를 만들 때 하위 플로우 내에서 동작을 호출하는 동작을 갖지 마십시오.
}else{
outputs.sendmessage = true;
messages = inputs.results.results;
outputs.from = from;
outputs.to = to;
outputs.messages = getMessages(messages);
}
상황별 동작 스크립트
상황별 동작 스크립트는 주제 내에서 가상 에이전트에이전트 입력과 같은 특수 키워드 동작을 수행하여 라이브 에이전트에 즉시 전달되도록 합니다.
| 입력 | 출력 |
|---|---|
|
없음 |
예: 상황별 동작 스크립트
(function execute(inputs, outputs) {
var contextual_action = inputs.request_context.contextual_action;
if (contextual_action === "END_CONVERSATION") {
sn_cs.VASystemObject.endConversation(inputs.conversation_id);
} else if (contextual_action === "AGENT") {
sn_cs.VASystemObject.switchToLiveAgent(inputs.conversation_id);
} else if (contextual_action === "START_CONVERSATION") {
sn_cs.VASystemObject.startConversation(inputs.conversation_id);
}
})(inputs, outputs);
계정 작업 스크립트 연결
링크 계정 작업 스크립트에는 연결하는 사용자의 식별자가 포함되어 있습니다. 스크립트에는 연결된 계정도 포함되어 있습니다.
| 입력 | 출력 |
|---|---|
|
없음 |
예: 계정 작업 스크립트 연결.
(function execute(inputs, outputs) {
var richControl = (inputs.rich_control);
var value = richControl.value;
outputs.result = richControl.header + ': ' + value.action;
})(inputs, outputs);
응답 프로세서 작업 스크립트
응답 프로세서 작업 스크립트는 메시지 보내기 요청에 대한 응답에 따라 특수 작업을 수행합니다. 프레임워크는 이미 기본 메시지 상태 추적을 수행합니다.
| 입력 | 출력 |
|---|---|
|
없음 |
예: 응답 프로세서 작업 스크립트.
(function execute(inputs, outputs) {
gs.debug("Response from provider: message_id = " + inputs.message_id + ", status_code = " +
inputs.status_code + ", headers = " + JSON.stringify(inputs.headers) + ", body = " + inputs.body);
})(inputs, outputs);
아웃바운드 변환기 스크립트
아웃바운드 변환기 스크립트는 발신 가상 에이전트 메시지를 대화형 사용자 지정 채팅 통합과 관련된 프로토콜로 변환합니다.
입력.
- rich_control(JSON) - 가상 에이전트 변환해야 하는 서버 리치 컨트롤 구성요소입니다.
- 페이로드(JSON) - 요청자로부터 받은 마지막 응답입니다.
출력.
result(문자열) - 보낼 공급자에 적합한 구성 요소 메시지입니다.
| 아웃바운드 변환기 이름 | 스크립트 예시 |
|---|---|
| 가상 에이전트 - SMS Twilio 어댑터 기본 텍스트 아웃바운드 변환기 | |
| 가상 에이전트 - SMS Twilio 어댑터 기본 링크 아웃바운드 변환기 | |
| 가상 에이전트 - SMS Twilio 어댑터 기본 선택기 아웃바운드 변환기 | |
| 가상 에이전트 - SMS Twilio 어댑터 기본 멀티링크 아웃바운드 변환기 | |
| 가상 에이전트 - SMS Twilio 어댑터 기본 카드 아웃바운드 변환기 | |
인바운드 변환기 스크립트
인바운드 변환기 스크립트는 들어오는 대화형 사용자 지정 채팅 통합 메시지를 인식 가상 에이전트 하는 프로토콜로 변환합니다. 사용자에게 제공되는 리치 컨트롤에 삽입하는 데 필요한 값을 결정합니다.
입력.
- request_context(JSON) - 제공자 속성 스크립트에서 전달된 요청입니다.
- rich_control(JSON) - 원래 "질문"이 포함된 요청자에게 전송된 마지막 서식 있는 컨트롤입니다.
출력.
- 값 - sys_id 또는 텍스트 값입니다.
- search_text - 요청자가 예상치 못한 것을 선택한 경우 사용되는 텍스트입니다. 예를 들어, 사용자가 주제 선택기 구성요소에 대한 응답으로 "이 옵션 중 어느 것도 내가 원하는 것과 일치하지 않습니다"와 같이 NLU가 지원할 수 있는 항목을 입력했습니다.
| 인바운드 변환기 이름 | 스크립트 예시 |
|---|---|
| 가상 에이전트 - SMS Twilio 어댑터 기본 텍스트 인바운드 변환기 목적: 제기된 InputText 질문에 대한 텍스트 응답을 찾습니다. |
|
| 가상 에이전트 - SMS Twilio 어댑터 기본 선택기 인바운드 변환기 목적: 사용자가 이 선택기 질문에 대해 선택한 옵션의 sys_id 찾습니다. 이 스크립트는 아웃바운드 변환기와 동일한 알고리즘을 사용합니다. 옵션을 선택하지 않고 사용자가 대신 입력한 경우 이 인스턴스에서 사용하도록 설정된 경우 "search_text"이 설정되고 NLU에 공급됩니다. |
|