1부 - Vonage 및 Couchbase로 구축하여 커뮤니케이션 및 데이터 혁신하기

직장에서 AI의 역할에 대한 인식의 패러다임이 바뀐다고 상상해 봅시다. AI가 역할을 대체하는 것이 아니라 바로 그 역할에서 사람들의 업무를 향상시키는 데 사용된다면 어떨까요? 즉, AI로 인해 일자리가 없어질까봐 두려워하는 대신 AI를 활용해 워크플로우를 개선하고 생산성을 높인다면 어떨까요?

너무 무리한 요구인가요? 그럴 필요는 없습니다.

2부로 구성된 이 블로그 게시물 시리즈에서는 벡터 검색의 정확성과 명확성을 활용하여 지원 상담원의 역량을 강화하는 고객 지원 환경을 구축하는 방법을 살펴봅니다. 최종 결과는 상담원을 대체하는 것이 아니라 상담원의 효율성을 개선하는 것입니다.

고객 지원 상담원에게 집중하는 이유는 무엇인가요? 다른 어떤 직군보다 하루 종일 다양한 주제에 대한 방대한 양의 지식에 액세스하고 주제 간 상황을 빠르고 효율적으로 전환해야 하는 경우가 많기 때문입니다. 이 모든 작업을 수행하는 동시에 곤경에 처한 상태에서 자주 연락하는 고객들에게 친절하고 친근하게 다가가야 합니다. 고객 지원 상담원은 매일 이러한 업무를 수행합니다. 

고객이 작업하는 모든 고객 티켓에 대해 더 적은 노력으로 더 빠르게 유용한 컨텍스트에 액세스할 수 있는 환경을 구축할 수 있을까요? 예, 이것이 바로 우리가 하려는 일입니다.


tl;dr 구현으로 바로 건너뛰고 싶은 경우, 이 애플리케이션의 전체 작동 예제를 다음에서 찾을 수 있습니다. GitHub 자세한 README 지침과 함께.

여기에서 2부로 건너뛰기.


함께 구축할 내용은 다음과 같습니다. 

고객 지원 상담원이 다음을 수행할 수 있는 Ruby on Rails 애플리케이션입니다:

    • WhatsApp을 통해 애플리케이션 대시보드에서 고객으로부터 연락을 받고 답장하기
    • 현재 진행 중인 티켓과 관련된 이전에 해결된 쿼리에 대한 답변을 확인하여 중요한 맥락을 파악하세요.
    • 티켓을 해결된 것으로 표시하고 해결된 답변을 지식창고에 추가하여 향후 고객 문의에 대한 컨텍스트를 확인하세요.

이 모든 것은 세 가지 서비스를 사용하여 구축됩니다:

    • 카우치베이스 카펠라사용자 및 티켓 정보를 저장하는 완전 관리형 서비스형 데이터베이스(DBaaS)와 해결된 솔루션의 지식창고를 나타내는 벡터 임베딩을 제공합니다.
    • Vonage 메시지 APIWhatsApp, SMS, Facebook Messenger 및 기타 제공업체에서 양방향 대화를 가능하게 하는 멀티채널 커뮤니케이션 API입니다.
    • OpenAI 임베딩 API제공된 데이터를 해당 데이터의 벡터 표현으로 변환하여 벡터 검색을 가능하게 하는 OpenAI의 서비스입니다.

벡터 검색과 벡터 임베딩이 무엇인지 잘 모르시겠어요? 확인해 보세요. 이 블로그 게시물 5분 안에 시작하는 방법과 모든 것을 설명하는 글을 읽어보세요. 다 읽으셨다면 여기로 돌아와서 여정을 계속하세요!

빌드를 시작할 준비가 되셨나요? 시작하세요!

Rails 애플리케이션 스캐폴딩

새로운 Rails 애플리케이션의 첫 번째 단계, 사랑받는 것부터 시작하세요. 새로운 레일 명령을 실행할 수 있으며, 이 프로젝트도 마찬가지입니다.

명령줄에서 다음을 실행하여 새 애플리케이션을 초기화합니다:

이 명령은 다음을 포함하는 새로운 Rails 애플리케이션을 생성합니다. TailwindCSS 를 설치했습니다. 애플리케이션의 프론트엔드 스타일링에 Tailwind를 사용할 것입니다.

그런 다음 명령 실행이 완료되면 새 디렉토리로 변경하고 필요한 추가 종속성, 즉 Vonage Ruby SDK, Couchbase Ruby ORM 및 인기 있는 Ruby OpenAI SDK를 설치해 보겠습니다:

지금 바로 실행하세요. 번들 설치 를 사용하여 이러한 종속성을 설치합니다.

이제 앱에서 Vonage와 OpenAI 클라이언트 모두에 대한 이니셜라이저를 생성해 보겠습니다:

config 디렉터리에 파일을 생성하는 동안 Couchbase에 대한 연결 설정을 정의할 구성 파일도 추가해 보겠습니다:

이니셜라이저용 파일을 생성한 후에는 향후 모델과 컨트롤러를 저장할 파일을 생성할 수 있습니다:

이 시점에서 생성해야 할 파일은 프론트엔드 뷰뿐이며, 이 파일은 나중에 애플리케이션을 위한 프론트엔드 만들기 섹션으로 이동합니다.

이 시점에서 파일 구조는 다음과 같아야 하며, 아래에 언급되지 않은 모든 표준 Rails 파일도 포함되어 있어야 합니다:

이 시점에서 마지막으로 추가할 비트는 자격 증명 및 기타 기밀 정보를 저장하는 파일로, Git에 체크인하거나 공개하고 싶지 않은 기밀 정보를 저장합니다:

마지막 파일로 이제 다음 단계로 넘어가서 티켓 및 사용자 데이터를 보관할 Couchbase Capella 계정, 클러스터 및 버킷을 만들 준비가 되었습니다.

카우치베이스 아카펠라 설정

Capella는 Couchbase에서 제공하는 완전 관리형 서비스형 데이터베이스(DBaaS)입니다. 캐싱부터 전체 텍스트 검색, 빅 데이터 분석에 이르기까지 다양한 요구 사항을 충족하는 데 도움이 되는 완벽한 데이터 플랫폼을 제공합니다. 기둥형. 이 애플리케이션에서는 Capella의 JSON 문서 데이터베이스와 벡터 검색 기능을 활용할 것입니다.

Capella에서 호스팅되는 각 문서는 다음과 같습니다. 티켓 또는 사용자:

    • A 사용자 문서에는 사용자가 메시지를 보낸 WhatsApp 전화번호가 저장됩니다.
    • A 티켓 문서에는 원래 쿼리, 쿼리를 질문한 사용자의 사용자 ID, 티켓의 상태( 열기 또는 해결됨), 최종적으로 솔루션의 요약, 그리고 솔루션을 나타내는 벡터 임베딩을 제공합니다.

또한 벡터 검색 색인 를 사용하면 애플리케이션이 티켓 문서에 호스팅된 임베딩을 통해 상담원이 현재 작업 중인 티켓과 유사한 것이 있는지 검색할 수 있습니다.

카펠라 계정 만들기

첫 번째 단계는 무료 Capella 계정을 만드는 것입니다. 계정을 만들려면 다음 페이지로 이동합니다. cloud.couchbase.com 을 클릭하고 Google 또는 GitHub 계정으로 가입하거나 이메일과 비밀번호 조합을 사용하여 계정을 만드세요.

이것으로 계정을 만드는 데 필요한 모든 것이 완료되었습니다! 이제 계정이 생겼으니 클러스터를 만들 수 있습니다. 용어가 익숙하지 않으시다면 클러스터는 데이터베이스 서버와 비슷합니다. 시작해 봅시다!

클러스터 만들기

Capella는 멀티 클라우드 환경에서 작동하므로 클러스터를 AWS, GCP 또는 Azure에 자유롭게 배포할 수 있습니다. 원하는 것을 클릭하기만 하면 나머지는 Capella가 뒤에서 알아서 처리해 줍니다. 

로그인 후 계정의 홈 페이지에서 + 데이터베이스 생성 버튼을 클릭하고 세부 정보, 즉 선택한 이름을 입력합니다. 아직 이름을 정하지 않았다면 다음과 같이 입력할 수 있습니다. WhatsApp_지원_클러스터.

준비가 완료되면 최종 버튼을 클릭하세요. 데이터베이스 만들기 버튼을 누르고 나머지 작업은 카펠라가 알아서 처리합니다.

이제 클러스터, 즉 데이터베이스가 생겼습니다. 다음 단계는 데이터를 저장할 버킷을 추가하는 것입니다. 버킷은 데이터베이스 테이블과 비슷하지만 큰 차이가 있습니다. 비정형 및 반정형 JSON 데이터로 작업하기 때문에 하나의 버킷에 다양한 유형의 데이터를 담을 수 있습니다.

버킷 만들기

이제 클러스터에 대한 Capella 대시보드의 보기에 또 다른 + 만들기 버튼을 클릭합니다. 버튼을 클릭하면 첫 번째 아카펠라 버킷을 만들 수 있습니다.

버킷의 이름을 지정해 보겠습니다. WhatsApp_지원_버킷 를 클릭하고 범위 및 컬렉션에 시스템 생성 _DEFINITE 사용 확인란을 선택합니다. 

이제 버킷 이름을 .env 파일을 다음과 같이 생성합니다:

버킷이 생성되었으므로 이 시점에서 마지막으로 할 일은 액세스 자격 증명을 만들고 Capella 연결 문자열을 가져오는 것입니다.

액세스 자격 증명 만들기

애플리케이션에서 Capella의 데이터와 상호 작용하려면 연결 문자열을 알고 액세스 자격 증명을 만들어야 합니다. 연결 문자열은 애플리케이션의 연결 버튼을 클릭합니다. 이 버튼을 대시보드의 .env 파일을 다음과 같이 코드베이스에 생성했습니다:

액세스 자격 증명을 추가하려면 아래와 같이 아카펠라 설정에서 이 페이지로 이동한 후 + 데이터베이스 액세스 만들기 버튼을 클릭합니다. 이름과 비밀번호를 입력하고 저장을 클릭합니다. 즉시 자격 증명을 추가해야 합니다. .env 파일에 다시 액세스할 수 없으므로 이 후에는 비밀번호를 변경하지 마세요:

자격 증명을 생성하고 나면 Capella 설정이 거의 완료되었습니다! 마지막 단계는 벡터 검색 인덱스를 생성하는 것으로, 설명된 단계를 따르시면 됩니다. 이 게시물에서 를 클릭합니다.

이제 애플리케이션에서 대화를 구동할 WhatsApp API 서비스 제공업체를 설정할 준비가 되었습니다. 서비스 제공업체로는 Vonage 메시지 API를 사용하겠습니다.

보니지 메시지 API 사용

Vonage는 SMS부터 전화 통화, 챗봇에 이르기까지 현대 상호 작용의 거의 모든 측면을 포괄하는 커뮤니케이션 API 제품군을 제공합니다. 이 애플리케이션에 사용할 API는 다음과 같습니다. 메시지 API 는 Facebook Messenger, WhatsApp, Viber, SMS 및 MMS를 위한 단일 API로 멀티채널 커뮤니케이션을 제공합니다.

프로그래밍 방식으로 WhatsApp 메시지를 주고받을 수 있는 WhatsApp 기능에 사용할 예정입니다.

프로덕션 사용을 위해 WhatsApp 기능을 설정하려면 메타에서 몇 가지 단계, 즉 WhatsApp 비즈니스 계정을 만들어야 합니다. 이에 대한 자세한 내용과 단계별 방법은 Vonage 문서에서 자세한 내용을 읽어보시기 바랍니다.

하지만 아직 메타 WhatsApp 비즈니스 계정이 없다고 해서 기능을 구축하고 테스트할 수 없다는 의미는 아닙니다! Vonage 메시지 API 샌드박스에 들어가 보세요. 샌드박스를 사용하면 개인 휴대폰 번호를 인증하여 프로그래밍 방식으로 WhatsApp 메시지를 주고받을 수 있습니다. 이를 통해 메타 WhatsApp 비즈니스 계정 승인을 기다리는 동안 애플리케이션을 견고하게 구축할 수 있습니다.

이제 약간의 맥락을 이해했으니 이제 Vonage API 계정을 생성해 보겠습니다.

Vonage 계정 만들기

Vonage 계정을 만들려면 다음으로 이동합니다. dashboard.vonage.com 를 클릭하고 가입하기. 계정을 무료로 생성하고 다양한 API로 빌드를 시작할 수 있습니다.

이제 계정을 만들었으니 메시지 API 샌드박스를 설정할 준비가 되었습니다!

보니지 메시지 API 샌드박스 구성하기

위에서 설명한 것처럼 샌드박스는 애플리케이션을 테스트하고 프로토타입을 제작하는 데 매우 유용합니다. 샌드박스를 사용하면 미리 구성된 Vonage 전화번호와 승인된 개인 전화번호로 메시지를 주고받을 수 있습니다.

보니지 메시지 API 샌드박스를 구성하려면 미리 구성된 보니지 전화번호로 메시지를 보내야 합니다. 대시보드에서 메시지를 보낼 수 있는 QR코드, 링크 및 직접 전화번호를 제공하여 프로세스를 안내합니다. 또한 해당 번호로 보낼 정확한 메시지도 공유됩니다. 원하는 방법을 선택하여 메시지를 보낼 수 있습니다.

메시지를 보내면 Vonage 메시지 API 샌드박스에서 메시지를 수신하고 답장할 수 있도록 개인 휴대폰 번호를 성공적으로 구성한 것입니다.

샌드박스 설정에서 인바운드 및 상태 웹훅 메시지에 대한 URL을 제공하기 위한 공간을 확인할 수 있습니다. API에서 새 WhatsApp 메시지를 수신하는 방식은 웹훅을 통해 이루어지므로 웹훅에 액세스할 수 있도록 외부에서 액세스할 수 있는 URL을 제공해야 합니다. 사용 가능한 인기 있는 도구는 다음과 같습니다. localhost 환경을 인터넷에 연결하고 외부 URL을 제공하는데, 그 중 하나가 ngrok입니다. 

ngrok을 사용하는 방법은 컴퓨터에 설치한 다음 다음을 실행하는 것만큼이나 간단합니다. ngrok http 3000 를 별도의 터미널 창에 입력합니다. 이 예제에서는 명령에 두 개의 인수를 사용합니다:

    • 노출할 서비스 http
    • 로컬 호스트 서버가 실행 중인 포트 - 로컬 호스트 서버가 실행 중인 포트 3000

다음을 따르십시오. 빠른 시작 가이드 를 클릭하고 Mac, Linux 또는 Windows 사용 여부에 따라 컴퓨터에 ngrok을 설치하는 방법에 대한 지침을 확인하세요.

Vonage 환경 변수 정의

카펠라 세부 정보를 추가하면서 .env 파일을 열면 이제 같은 파일에 Vonage 세부 정보를 추가해야 합니다. 즉, 샌드박스에서 제공된 API 키와 비밀번호, 미리 구성된 Vonage 전화번호를 추가해야 합니다.

계속해서 .env 파일을 열고 다음을 추가합니다:

이제 Capella와 Vonage를 모두 설정했으므로 초기 설정의 마지막 단계는 OpenAI API 계정을 만들고 OpenAI API 키를 .env 파일을 만듭니다.

OpenAI 임베딩 API 시작하기

OpenAI 계정을 만들기 전에 잠시 시간을 내어 OpenAI를 사용하는 이유와 임베딩이 무엇인지 이해해 보겠습니다. 미리 말씀드리지만, 이 글은 벡터 임베딩과 임베딩의 기능에 대한 포괄적인 설명이 아닙니다. 그보다는 애플리케이션을 구축하기 위한 간단한 개요라고 생각하시면 됩니다.

벡터 임베딩은 데이터를 수학적으로 표현하는 숫자 배열입니다. 데이터는 텍스트, 이미지, 오디오 또는 동영상일 수 있습니다. 이러한 임베딩을 생성하는 다양한 알고리즘이 있으며, 각 알고리즘은 머신 러닝 모델에 유용한 방식으로 데이터의 다양한 측면을 캡처하도록 설계되었습니다. 

예를 들어, 텍스트의 경우 임베딩은 단어나 문장의 의미론적 의미를 포착하여 AI가 단순한 키워드 매칭을 넘어 개념 간의 관계를 이해할 수 있게 해줍니다. 이러한 임베딩은 기계가 복잡한 데이터를 효율적으로 처리하고 비교할 수 있게 해주므로 검색, 분류, 추천 시스템과 같은 작업의 기본 구성 요소가 됩니다. OpenAI의 강력한 모델을 사용하여 고품질 임베딩을 생성함으로써 애플리케이션이 콘텐츠 유사도 매칭과 같은 고급 기능을 수행할 수 있으며, 이는 현재 티켓에서 지원 상담원이 이전에 해결한 답변을 검색할 때 정확히 그 기능을 수행할 수 있는 것입니다.

이제 구축을 시작할 수 있도록 OpenAI 계정 설정을 진행하겠습니다.

OpenAI 계정 만들기

계정을 만들려면 다음 주소로 이동하세요. platform.openai.com 을 클릭하고 구글, 마이크로소프트 또는 애플 자격 증명으로 가입하거나 이메일과 비밀번호 조합을 사용하여 계정을 만드세요.

이제 계정을 만들었으니 API 키를 생성하고 복사하기만 하면 됩니다.

OpenAI API 키 생성

계정이 생성되면 다음 위치로 이동할 수 있습니다. platform.openai.com/api-keys 를 클릭하고 새 API 키를 생성합니다. + 새 비밀 키 생성 버튼을 클릭합니다.

다른 자격 증명과 마찬가지로 이 순간 이후에는 대시보드에서 다시 볼 수 없으므로 키를 즉시 저장해야 합니다. 따라서 이 키를 .env 파일에 저장합니다:

이제 끝입니다! 이 시점에서 모든 외부 서비스를 정의하고 설정했습니다. 이제 애플리케이션을 빌드할 준비가 되었습니다. 시작해 봅시다!

계속하기...

에서 2부로 구성된 이 시리즈의 두 번째 파트를 사용하여 애플리케이션 비즈니스 로직을 빌드하고 애플리케이션을 처음으로 실행해 보겠습니다. 다음 사항을 확인하세요. 파트 2 를 클릭해 여정을 계속하세요.

 

작성자

게시자 벤 그린버그, 수석 개발자 에반젤리스트

댓글 남기기