Category: Amazon Lex*


Amazon Lex의 신규 음성 입력 기능을 통한 Amazon Connect 연동하기

Amazon Connect는 셀프 서비스 클라우드 기반 콜센터 서비스로 저렴한 비용으로 더 나은 고객 서비스를 쉽게 제공있고, Amazon Lex는 음성 및 텍스트를 사용하여 대화식 인터페이스를 구축하는 서비스입니다.

이 두 가지 서비스를 통합하여, Lex 자동 음성 인식(ASR) 및 자연어 처리 및 인식(NLU) 기능을 활용하여, 고객에게 훌륭한 서비스 경험을 제공 할 수 있습니다. 두 가지 통합을 위해 Lex팀은 8kHz 음성 입력을 받을 수 있는 기능을 추가했습니다. 이를 통해 챗봇이 고객 요청의 대부분을 처리할 수 있게 되고, 고객들이 기다리는 시간도 줄일 수 있습니다.

이 글에서는 사용자가 고객 센터에 전화를 하고, Connect를 통해 들어온 음성 입력에 대해 Lex가 처리한 후, 이를 AWS Lambda 함수를 구성하는 코드를 살펴 보겠습니다. 샘플 예제는 ‘개발자들이 좋아하는 코드 편집기’에 대한 질문으로 미국 전화 번호 614-569-4019로 전화하여, 원하는 코드 편집기를 선택할 수 있습니다. (미국 번호라서 전화 비용이 들어갈 수도 있음을 양해 바랍니다.) 투표 결과는 http://best-editor-ever.s3-website-us-east-1.amazonaws.com/ 에서 볼 수 있습니다.


이 샘플 예제에 대해 간단하게 설명해 보겠습니다.

Amazon Lex
우선 Amazon Lex에서 VoteEditor라는 봇을 만들고, 여기에 원하는 코드 편집기를 투표할 수 있는 Slot을 만듭니다.

AWS Lambda

Lambda 함수도 매우 간단합니다. 먼저 투표를 저장하기 위해 Amazon DynamoDB 테이블을 생성합니다. 그런 다음 Lex(build_response)에 응답하는 헬퍼 메소드를 만들 것입니다. 이를 통해 Lex 기반 응답 형식으로 메시지를 감싸게 됩니다.


def lambda_handler(event, context):
    if 'ConnectToAgent' == event['currentIntent']['name']:
        return build_response("Ok, connecting you to an agent.")
    elif 'VoteEditor' == event['currentIntent']['name']:
        editor = event['currentIntent']['slots']['editor']
        resp = ddb.update_item(
            Key={"name": editor.lower()},
            UpdateExpression="SET votes = :incr + if_not_exists(votes, :default)",
            ExpressionAttributeValues={":incr": 1, ":default": 0},
            ReturnValues="ALL_NEW"
        )
        msg = "Awesome, now {} has {} votes!".format(
            resp['Attributes']['name'],
            resp['Attributes']['votes'])
        return build_response(msg)

코드를 잠깐 살펴 보면, 선택한 편집기에 대해 표가 없으면 1로 만들고, 편집기가 있으면 +1을 하는 코드로서   계속 진행하기 전에 Lex 콘솔을 통해 작동하는지 테스트 할 수 있습니다.

Amazon Connect
Amazon Contact Flow에서 Lex 봇을 사용하려면 먼저 Amazon Connect 인스턴스에 접근 권한이 있어야합니다.  콘솔에서 “Contact Flows”로 이동하여,  Lex 섹션에서 봇을 추가 할 수 있습니다.

이제 Amazon Connect 인스턴스가 Lex 봇을 호출 할 수 있게 되었으므로 Lex 봇을 포함하는 새로운 Contact Flow를 만들 수 있습니다. “Interact”카테고리에서 “Get customer input”위젯을 통해 봇을 추가합니다.

위젯을 사용하면 전화기의 숫자 키 또는 “Amazon Lex”탭에서 voiceinput을 가져 와서 Lex 서비스로 전달하기위한 “DTMF”탭을 사용할 수 있습니다. Lex 탭을 사용하여 몇 가지 구성을 사용합니다.

많은 옵션이 있지만, 사용하고자하는 봇 (봇의 버전 포함),  사용하려는 멘토,  소개글 등을 추가합니다. 최종 고객 요청 처리 흐름은 아래와 같습니다.

실생활에서 이러한 서비스 조합은 많은 부분을 구현할 수 있습니다. 실제 고객 상담원과 대화를 하기 전에, 사용자의 정보를 수집하고 대화에 필요한 정보를 수집할 수도 있습니다. Amazon Lex의 8KHz 음성 입력 기능을 통해서 좀 더 유연한 고객의 정보를 입력 받을 수 있다는 점은 매우 중요합니다.

마지막으로, Amazon Connect는 외부 개발자로 사용할 수 있는 것과 동일한 PostContent 엔드 포인트를 사용하므로 Lex에서 8kHz 기능을 활용하려면 Amazon Connect 사용자 일 필요는 없습니다.

좀 더 세부 사항은 기술 문서API 참조 문서를 살펴 보시기 바랍니다.

Randall

이 글은 New – Amazon Connect and Amazon Lex Integration 의 한국어 번역 편집본입니다.

Amazon Lex – 정식 출시 및 AWS Chatbot Challege 안내

지난 AWS re:Invent에서 대화식 음성 및 텍스트 인터페이스를 구축하는 Amazon Lex 서비스를 출시했습니다. 당시 Amazon Lex를 미리보기 방식으로 시작했으며 특정 개발자에게 제공했습니다. Amazon Alexa를 구동하는 것과 동일한 딥러닝(Deep Learning) 학습 기술로 구동되는 Amazon Lex를 사용하면 매력적이고 생동감 있는 상호 작용을 지원하는 웹 및 모바일 애플리케이션을 개발할 수 있습니다.

오늘 부터 Amazon Lex 서비스를 정식 출시하면서 아래와 같은 기능도 신규로 추가하여 공개합니다.

Slack 연동– Slack 채널에 전송 된 메시지 및 이벤트에 응답하는 Amazon Lex 봇을 만들 수 있습니다. 봇의 Channel 탭을 클릭하고 슬랙을 선택한 다음 양식을 작성하여 슬랙에 사용할 콜백 URL을 가져옵니다.

더 자세한 사항은 Integrating an Amazon Lex Bot with Slack 문서를 참고하시기 바랍니다.

Twilio 연동 – 이제 Twilio SMS 번호로 전송 된 SMS 메시지에 응답하는 Amazon Lex 봇을 만들 수 있습니다. Channels을 클릭하고 Twilio를 선택한 다음 양식을 작성하십시오.

더 자세한 것은 Integrating an Amazon Lex Bot with Twilio SMS 문서를 참고하시기 바랍니다.

SDK 지원 – 이제 AWS SDK를 사용하여 모바일, 웹, 데스크톱 및 IoT 플랫폼에서 텍스트 및 음성 기능을 사용하여 상호 작용하는 iOS, Android, Java, JavaScript, Python, .NET, Ruby, PHP, Go 및 C ++ SDK 및 봇용 빌드 프로세스를 지원합니다. 프로그래밍에서 샘플 구문을 추가하고, 슬롯을 만들고, 슬롯 값을 추가하는 등의 작업을 수행 할 수 있습니다. 또한, 빌드, 테스트 및 배포 프로세스 전체를 관리 할 수도 있습니다.

음성 입력 테스트 기능 – Amazon Lex 테스트 콘솔은 이제 Chrome 브라우저에서 사용될 때 음성 입력을 지원합니다. 마이크를 클릭하면됩니다.

발음(Utterance) 모니터링 – Amazon Lex는 봇이 인식하지 못했던 발음을 녹음합니다. 그렇지 않은 경우 누락 된 음성 목록을 검토하고 관련 항목을 봇에 추가 할 수 있습니다.

Amazon CloudWatch 메트릭을보고 사용자가 봇과 어떻게 상호 작용하는지 더 잘 이해할 수 있습니다. 시간이 지남에 따라 다른 말투를 추가하고 다른 방법으로 봇을 향상 시키면 메트릭이 감소해야합니다.

  • 텍스트가 누락된 발음 (PostText)
  • 텍스트가 누락된 발음 (PostContent)
  • 음성이 누락된 발음

슬롯과 Slots with Utterances – 제 슬롯을 식별하고 슬롯 유형에 값을 추가하기 위해 샘플 발언의 텍스트를 강조 표시 할 수 있습니다.

향상된 IAM 지원 – Amazon Lex 권한은 이제 콘솔에서 자동으로 구성됩니다. 이제 자신 만의 정책을 만들 필요 없이 봇을 만들 수 있습니다.

Response Cards 미리보기 – 이제 콘솔에서 응답 카드 미리보기를 볼 수 있습니다.

 

더 자세한 사항은   Using a Response Card를 참고하시기 바랍니다.

정식 출시 및 챗봇 경진대회
서비스 요금은 응용 프로그램에서 처리하는 텍스트 및 음성 응답 수를 기반으로 합니다. 자세한 정보는 Amazon Lex 요금 페이지를 참조하십시오.

아울러 Amazon Lex 정식 출시에 맞추어 Slack과 함께 AWS Chatbot Challege 콘테스트를 개최합니다. 다양한 아이디어를 기반으로 여러분의 챗봇을 만들어 제출하시면, 심사를 거쳐 상금과 함께 AWS re:Invent 참가 티켓 등 다양한 시상을 진행합니다.

AWS Chatbot Challenge는 글로벌 사용자를 대상으로 잠재 고객의 문제를 해결하거나 가치를 부여하는 데 도움이 되는 대화방 서비스를 구축 할 수 있는 기회입니다.  더 자세한 것은 영문 블로그 기사를 참고하시기 바랍니다.



Jeff;

이 글은 Announcing the AWS Chatbot Challenge – Create Conversational, Intelligent Chatbots using Amazon Lex and AWS LambdaAmazon Lex – Now Generally Available의 한국어 편집본입니다.

Amazon Lex – 대화형 음성 및 텍스트 인터페이스 개발 서비스

컴퓨터를 통해 말하도록 하는 것도 좋지만, 사람의 소리를 듣고 반응하는 것은 훨씬 색다릅니다. Amazon Echo를 사용해 보셨다면, Alexa 기반 상호 작용 모델이 얼마나 간단하고, 유용하며, 강력한지 알 수 있습니다.

저희는 대화형 프로그램에서 Amazon Alexa를 사용할 수 있도록 동일한 딥러닝 기술 즉 ASR(자동 음성 인식) 및 NLU(자연어 이해) 등을 만들고 있습니다. 오늘 공개하는 Amazon Lex 를 사용하여 채팅봇 및 다양한 유형의 모바일 웹앱을 제작할 수 있습니다. 매력적이고 생생한 상호 작용을 지원하는 모바일 애플리케이션. 채팅봇을 통해 정보를 제공하고, 애플리케이션과 업무 환경에 상호 소통 기능 추가, 로봇, 드론 및 장난감에 대한 제어 메커니즘을 제공 할 수 있습니다.

Amazon Lex를 통해 바로 시작할 수 있습니다. Lex Console에서 대화 방식을 설계하고, Lex에 자연어 처리 모델을 작성하는 데 필요한 몇 가지 샘플 구문을 제공합니다. 그런 다음 Amazon Lex봇을 공개하여 사용자와 텍스트 또는 음성 대화를 처리할 수 있습니다. Amazon Lex는 완전 관리형 서비스이므로 모든 인프라를 설정하고 관리 또는 확장하는 데 시간을 낭비 할 필요가 없습니다.

여러분이 챗봇을 만들면 Facebook Messenger 에 오늘 바로 연결할 수 있습니다. SlackTwilio와의 통합도 마찬가지입니다. AWS 측면에서는 AWS Lambda, AWS Mobile Hub, Amazon CloudWatch를 사용합니다. 또한 데이터 저장 및 인증을 위해 Amazon DynamoDB, Amazon Cognito 및 기타 서비스를 이용할 수 있습니다.

Amazon Lex를 사용하면 AWS Lambda 함수를 사용하여 엔터프라이즈급 응용 프로그램 및 데이터 연결을 포함하여 챗봇용 비즈니스 로직을 구현할 수 있습니다. 얼마전 공개한 AWS Mobile Hub의 SaaS 통합 방식과 함께, 이미 사용중인 SaaS 애플리케이션에 저장된 계정, 연락처, 리드(Lead) 정보 및 기타 엔터프라이즈 데이터에 대하여 대화식 인터페이스를 제공하는 높은 생산성을 제공하는 채팅봇을 구축 할 수 있습니다.

이들을 통합하여 모바일 응용 프로그램에서 시작하여 비지니스 로직까지 완벽히 조합된 통합 솔루션을 구축하는 데 필요한 모든 레고 블럭을 사용할 수 있습니다.

Amazon Lex의 기본 개념
잠시 Amazon Lex에서 사용하는 기본 개념들을 알아보겠습니다.

  • Bot – 봇은 대화의 모든 구성 요소를 포함합니다.
  • Intent – 봇 사용자가 달성하고자 하는 목표를 나타냅니다 (예를 들어, 비행기 표를 구입하거나, 예약하거나 일기 예보를 받기 등.)
  • Utterance – 의도를 실행하도록 하는 단어 또는 입력된 구문 입니다. “호텔을 예약하고 싶어”또는 “꽃 주문해줘”는 와 같은 것입니다.
  • Slots – 각 슬롯은 사용자 의도를 수행하기 위해 제공해야 하는 작은 데이터입니다. 여행용 봇이라면 도시, 주 또는 공항 정보를 목록화 한 후 이용할 수 있습니다.
  • Prompt – 사용자가 의도를 수행하는 데 필요한 일부 데이터 (슬롯 용)를 제공하도록 요청하는 질문입니다.
  • Fulfillment – 사용자의 의도를 전달하는 비즈니스 로직입니다. Lex 결과 제공을 위해 람다 함수 사용을 지원합니다.

Bots, intents, slots은 여러 개발 환경에서 코딩, 테스트, 스테이지 서버 배포 및 정식 서비스 간에 명확한 선을 그릴 수 있도록 각각 버전을 지정할 수 있습니다. 각 봇에 대해 여러 개의 별칭을 만들어 특정 버전의 구성 요소에 매핑 할 수 있습니다.

채팅 봇 만들어 보기
Lex 봇을 정의하고 Lex 콘솔에서 모든 구성 요소를 설정할 수 있습니다. 샘플 중 하나를 시작하거나 사용자 정의 봇을 만들 수 있습니다.

원하는 utterances 및 관련 slots을 설정할 수 있습니다.

각종 맞춤 설정을 할 수 있습니다.

대화 방식으로 잘 작동하는지 봇을 테스트하고 수정할 수 있습니다.

Facebook (및 기타 연결 앱)에서 사용할 콜백 URL을 생성 할 수 있습니다.

좀 더 자세한 사항은 re:Invent 행사가 끝나고 나서 좀 더 자세하게 알려드리겠습니다.

정식 출시 및 가격
Amazon LexUS East (Northern Virginia) 리전에서 미리 보기 기능으로 오늘 출시합니다.

미리 보기 등록 후, 첫 12개월 동안 월 10,000번의 텍스트 요청 및  5,000회 음성 요청을 프리티어로 제공합니다. 그 이후 부터는 1,000 음성 요청 당 $4.00와 1,000 텍스트 요청당 $0.75 입니다.

Jeff;

이 글은 AWS re:Invent 2016 신규 출시 소식으로 Amazon Lex – Build Conversational Voice & Text Interfaces의 한국어 번역입니다. re:Invent 출시 소식에 대한 자세한 정보는 12월 온라인 세미나를 참고하시기 바랍니다.