개요
QnABot on AWS는 다양한 언어 및 플랫폼에서 고객 문의에 응답함으로써 채팅, 음성, SMS 및 Amazon Alexa를 통한 대화를 지원하는 생성형 인공 지능(AI) 솔루션입니다. 이 다기능 도우미는 조직이 코딩 없이 다양한 커뮤니케이션 채널에서 즉각적이고 일관된 응답을 통해 고객 서비스를 개선하도록 도와줍니다.
장점
지능형 다중 부분 상호 작용을 통해 개인화된 자습서 및 질문과 답변 지원을 제공할 수 있습니다. QnABot 설정에서 질문을 쉽게 가져오고 내보낼 수 있습니다.
사람이 질문한 내용을 더 잘 파악할 수 있도록 Amazon Kendra 자연어 처리(NLP) 기능을 사용할 수 있습니다. 고성능 파운데이션 모델을 제공하는 관리형 서비스인 Amazon Bedrock을 사용하여 대화형 애플리케이션을 구축할 수 있습니다.
고객 지원 워크플로를 자동화할 수 있습니다. 비용을 절감하고 고객에게 더 나은 서비스를 제공하여 고객이 정확한 답변을 얻고 지원을 신속하게 받을 수 있습니다.
다양한 Q&A 워크플로에 의도 및 슬롯 매칭을 활용할 수 있습니다. 대규모 언어 모델(LLM) 및 검색 증강 생성(RAG)을 통해 자연어 이해, 컨텍스트 관리, 멀티턴 대화를 활용할 수 있습니다.
기술 세부 정보
구현 가이드 및 적절한 AWS CloudFormation 템플릿을 사용하여 이 아키텍처를 자동으로 배포할 수 있습니다. VPC를 사용하여 배포하려면 먼저 두 개의 가용 영역에 두 개의 프라이빗 서브넷과 두 개의 퍼블릭 서브넷이 있는 VPC를 배포한 다음 QnABot VPC AWS CloudFormation 템플릿을 사용합니다. 또는 QnABot 기본 AWS CloudFormation 템플릿을 사용합니다.
1단계
관리자는 솔루션을 AWS 계정에 배포하고 콘텐츠 디자이너 사용자 인터페이스(UI) 또는 Amazon Lex 웹 클라이언트를 열고 Amazon Cognito를 사용하여 인증합니다.
2단계
인증 후 Amazon API Gateway 및 Amazon Simple Storage Service(S3)는 콘텐츠 디자이너 UI의 콘텐츠를 제공합니다.
3단계
관리자는 콘텐츠 디자이너에서 질문과 답변을 구성하고 UI는 질문과 답변을 저장하기 위해 API Gateway에 요청을 보냅니다.
4단계
콘텐츠 디자이너 AWS Lambda 함수는 Amazon OpenSearch Service의 입력을 질문 은행 인덱스에 저장합니다. 텍스트 임베딩을 사용하는 경우 이러한 요청은 Amazon SageMaker 또는 Amazon Bedrock에서 호스팅되는 LLM을 통과하여 임베딩을 생성한 후 OpenSearch Service의 질문 은행에 저장됩니다.
아울러 콘텐츠 디자이너는 기본 및 맞춤형 구성 설정을 Amazon Dynamo DB에 저장합니다.
5단계
도우미의 사용자는 웹 클라이언트 UI, Amazon Alexa 또는 Amazon Connect를 통해 Amazon Lex와 상호 작용합니다.
6단계
Amazon Lex는 Bot Fulfillment Lambda 함수로 요청을 전달합니다. 사용자는 Amazon Alexa 디바이스를 통해 이 Lambda 함수에 요청을 보낼 수도 있습니다.
참고: 스트리밍이 활성화되면 채팅 클라이언트는 Amazon Lex 세션 식별자(SessionID)를 사용하여 API Gateway V2를 통해 웹소켓 연결을 설정합니다.
7단계
사용자 및 채팅 정보는 후속 질문과 이전 질문 및 답변 컨텍스트를 구분하기 위해 DynamoDB에 저장됩니다.
8단계
Bot Fulfillment Lambda 함수는 Amazon Comprehend 및 필요한 경우 Amazon Translate를 사용하여 모국어가 아닌 요청을 배포 중에 사용자가 선택한 모국어로 번역합니다. 그런 다음 함수는 OpenSearch Service를 쿼리하여 적절한 답변을 검색합니다.
9단계
텍스트 생성 및 텍스트 임베딩과 같은 대규모 언어 모델(LLM) 기능을 사용하는 경우 이러한 요청은 먼저 Amazon Bedrock에서 호스팅되는 다양한 파운데이션 모델을 통과합니다. 그러면 검색 쿼리와 임베딩이 생성되고, OpenSearch Service의 질문 은행에 저장된 검색 쿼리와 해당 임베딩을 서로 비교하게 됩니다.
9A단계
사전 처리 가드레일이 활성화되면, QNABot 애플리케이션에 도달하기 전에 잠재적으로 유해한 사용자 입력을 스캔하고 차단합니다. 이는 악의적이거나 부적절한 쿼리가 처리되는 일이 없도록 하는 1차 방어선 역할을 합니다.
9B단계
LLM 또는 Amazon Bedrock Knowledge Bases에 Amazon Bedrock 가드레일을 사용하는 경우, LLM 추론 중에 상황에 따른 보호 및 안전 제어 설정을 적용하여 적절한 답변을 생성할 수 있습니다.
9C단계
사후 처리 가드레일이 활성화되면, 최종 응답에서 잠재적으로 유해한 콘텐츠를 스캔, 마스킹 또는 차단한 후 Fulfillment Lambda를 통해 클라이언트에 전송합니다. 이는 개인 식별 정보(PII)와 같은 민감한 정보를 적절히 마스킹하고 부적절한 콘텐츠를 차단하기 위한 최후의 방어선 역할을 합니다.
10단계
OpenSearch Service 질문 은행 또는 텍스트 구절에서 일치하는 항목이 반환되지 않는 경우 Bot Fulfillment Lambda 함수는 다음과 같이 요청을 전달합니다.
10A단계
Amazon Kendra 인덱스가 폴백을 위해 구성된 경우, OpenSearch Service 질문 은행에서 일치 항목이 반환되지 않으면 Bot Fulfillment Lambda 함수는 요청을 Amazon Kendra로 전달합니다. 선택적으로, 텍스트 생성 LLM은 검색 쿼리를 생성하고 반환된 문서 발췌문의 응답을 종합하는 데 사용할 수 있습니다.
10B단계
Amazon Bedrock Knowledge Base ID가 구성된 경우 Bot Fulfillment Lambda 함수는 요청을 Amazon Bedrock Knowledge Base로 전달합니다. Bot Fulfillment Lambda 함수는 RetrieveAndGenerate 또는 RetrieveAndGenerateStream API를 활용하여 사용자 쿼리에 대한 관련 결과를 가져오고, 파운데이션 모델의 프롬프트를 보강하고, 응답을 반환합니다.
11단계
스트리밍을 활성화하면, 텍스트 구절 또는 외부 데이터 소스에서 생성되는 LLM 응답이 검색 증강 생성(RAG)을 통해 향상됩니다. 응답은 동일한 Amazon Lex 세션 ID를 사용하여 WebSocket 연결을 통해 스트리밍되며, 최종 응답은 Fulfillment Lambda 함수를 통해 처리됩니다.
12단계
Bot Fulfillment 함수와의 사용자 상호 작용은 로깅되며, 그 결과로 수집된 지표 데이터가 Amazon Data Firehose로 전송된 다음 추후 데이터 분석을 위해 Amazon S3로 전송됩니다.
13단계
OpenSearch 대시보드를 사용하여 사용 내역, 로깅된 발언, 응답하지 못한 발언, 긍정적인 사용자 피드백, 부정적인 사용자 피드백을 볼 수 있으며 사용자 지정 보고서를 만들 수 있습니다.
14단계
관리자는 Amazon CloudWatch를 사용하여 서비스 로그를 모니터링하고 QnABot에서 생성된 CloudWatch 대시보드를 사용하여 배포 운영 상태를 모니터링할 수 있습니다.