서비스 호출 구조
Last updated
Last updated
사용자의 프론트엔드는 필요한 키/토큰과 필요 파라미터(제품명, 아바타 ID 등)를 공개된 SDK에 넣어 호출함으로써 실시간 디지털 휴먼과의 채팅을 요청합니다.
SaaS Backend는 영상을 만들어 주는 별도의 계산 자원(이하 작업자)을 지정하고, 사용자와 작업자 간에 미디어를 송수신할 수 있는 스트리밍 채널을 만들어 연결할 것을 요청합니다. SDK의 로직을 통해 채널 입장이 이루어집니다.
만약 유휴 작업자가 없다면, 대기 정보가 돌아오고, SDK는 이를 받아 화면에 표시합니다.
사용자의 음성과 디지털 휴먼의 영상은 해당 채널을 통해 송수신됩니다. 단, 필요한 시그널이 있는 경우 SaaS Backend를 경유하여 송수신됩니다. 이러한 소통 과정은 모두 SDK 코드를 통해 이루어집니다.
SDK 적용을 통해 사용자 프론트엔드에 표출된 컴포넌트에서 해당 영상이 재생되고 상호작용이 일어납니다.
고객사 서버는 SDK 키와는 다른 API 키를 보유합니다. 이 API Key는 서버용 키이므로, 고객에게 전달되거나 공개되어서는 안 됩니다.
최종 이용자가 고객사 서버에 회원 가입을 할 때, 혹은 서비스를 이용하기로 처음 결정한 때에, 고객사는 SaaS 서버에 해당 이용자에 대한 End User ID를 발급 요청하여 저장합니다.
최종 이용자가 고객사 서버에 로그인한 뒤 디지털 휴먼 대화를 진행하려면, 고객사 서버는 해당 사용자가 대화를 해도 되는지 여부를 자체 비즈니스 로직에 따라 검증한 뒤, 대화를 위한 End User Token 발급을 SaaS Backend에 API로 요청합니다. (필요하면 사용한도를 지정할 수 있습니다)
고객사 서버는 End User Token을 최종 이용자의 프론트엔드에 전달합니다.
최종 이용자의 프론트엔드는 SDK에 End User Token을 실어서 채팅 연결을 요청합니다.
로그인하지 않은 사용자는 SDK 키와 필요 파라미터를 공개된 SDK에 넣어 호출함으로써 실시간 디지털휴먼과의 채팅을 요청할 수 있습니다. 단, SDK 코드 및 키는 공개 정보이므로, 이 방법은 비 로그인 사용자가 무분별하게 사용할 수 있으므로 권장되지 않습니다. 그럼에도 불구하고 시제품이나 간단한 연결 테스트를 원하는 이용자를 위해 제한적으로 이용될 수 있습니다. 추후 SaaS Backend에서는 남용 방지를 위해 아래 요소를 지원할 예정입니다.
SDK 키를 이용한 접근 허용/불허 토글
SDK 키를 이용한 접근을 허용하더라도, 비 로그인 사용자의 무분별한 사용을 막기 위한 Quota / Rate Control
권장되는 방법은 비 로그인 사용자도 (a)의 경로에 따라 고객사 서버에 요청하고, 서버는 대화 허용 시 임시 End User 계정 및 토큰을 발급한 뒤 로그인 된 사용자와 동일한 방식으로 접근하는 방법입니다. 고객사 서버는 대화 요청을 처리할 때 자체 정책에 따라 허용/불허를 결정하거나 정책에 맞게 사용한도를 지정하여 대화를 허용할 수 있습니다.