가상 에이전트 작업 스크립트
필수 플로우 디자이너 작업 및 하위 플로우 스크립트 세트를 작성하여 사용자 데이터를 VACS에 전달하고, 변환을 적용하고, 응답을 채팅 인터페이스 엔드포인트로 다시 보내야 합니다.
제공자 및 인바운드/아웃바운드 스크립트
Twilio와 같은 공급자는 채팅 기능을 제공합니다. 사용자 작업 스크립트는 제공자 작업뿐만 아니라 챗봇 또는 사용자 지정 대화의 인바운드 및 아웃바운드 변환기 작업에 대한 대화형 사용자 지정 채팅 통합 구성을 수행합니다. 각 스크립트의 예가 제공됩니다. 여기에는 각 스크립트가 수행하는 작업에 대한 설명과 작업 입력 및 작업 출력이 포함됩니다. 스크립트 JSON의 예도 볼 수 있습니다.
이러한 스크립트를 작성하여 서버 및 클라이언트 메시지를 변환하는 데 사용합니다 플로우 디자이너 . 제공자, 발신자 및 인바운드/아웃바운드 변환기 스크립트가 필요합니다. 추가 스크립트를 사용하여 채팅에 더 많은 기능을 추가할 수 있습니다.
| 스크립트 이름 | 목적 | 필수(Y/N) |
|---|---|---|
| 제공자 속성 | 제공자 인증 토큰, 사용자 식별자, 사용자 입력 및 컨텍스트 변수를 포함합니다. | Y |
| 보낸 사람 작업 | 요청을 번들로 묶고 OR 통합 허브를 통해 플로우 디자이너 비동기적으로 응답을 보냅니다. |
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에서 해제됨, 보낸 사람 하위 플로우 참조)
보낸 사람 동작 스크립트는 공급자에게 메시지를 보내는 방법을 알고 있습니다. 스크립트는 또는 플로우 디자이너Integration Hub 하위 플로우를 비동기식으로 호출해야 합니다. 가상 에이전트 외부 요청을 보내려고 시도하지 않고 메시지를 계속 처리할 수 있습니다.
| 입력 | 출력 |
|---|---|
|
없음 |
예: 보낸 사람 동작 스크립트.
(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
// Flow Designer/Integration Hub
sn_fd.FlowAPI.startSubflowQuick('sn_va_sms_twilio.va_sms_twilio_adapter_send_sms', sendInputs);
})(inputs, outputs);
보낸 사람 하위 플로우 스크립트
보낸 사람 하위 플로우 스크립트는 제공자에게 메시지를 보내는 방법을 알고 있습니다. 스크립트는 또는 플로우 디자이너Integration Hub 하위 플로우를 비동기식으로 호출해야 합니다. 가상 에이전트 외부 요청을 보내려고 시도하지 않고 메시지를 계속 처리할 수 있습니다. 하위 플로우를 만들 때 작업이 없으면 하위 플로우 내에서 작업을 호출합니다.
}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) - 가상 에이전트 변환해야 하는 서버 리치 컨트롤 구성요소.
- payload(JSON) - 요청자로부터 받은 마지막 응답입니다.
출력.
result(String) - 보낼 공급자에 적합한 구성 요소 메시지입니다.
| 아웃바운드 변환기 이름 | 스크립트 예시 |
|---|---|
| 가상 에이전트 - 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에 ""가 입력됩니다. |
|