サービスアーキテクチャ
Last updated
Last updated
ユーザーのフロントエンドは、必要なキー/トークンおよびパラメータ(製品名、アバターIDなど)を使用して公開されているSDKを呼び出し、ライブアバターとのチャットをリクエストします。
SaaSバックエンドは、ビデオを作成し、ユーザーとワーカー間でメディアを送受信するストリーミングチャンネルを作成および接続するために、ワーカーと呼ばれる別個の計算リソースを指定するよう要求します。チャンネルへのエントリーはSDK内のロジックを通じて行われます。
アイドル状態のワーカーがない場合、待機情報が返送され、SDKがそれを受信して画面に表示します。
ユーザーの音声とアバターのビデオはそのチャンネルを介して送受信されます。しかし、必要な信号がある場合は、それらはSaaSバックエンドを介して送受信されます。すべての通信はSDKコードを通じて行われます。
ビデオは、SDKを適用することでユーザーのフロントエンドに表示されたコンポーネントで再生および操作されます。
お客様のサーバーには、SDKキーとは異なるAPIキーが設定されます。このAPIキーはお客様のサーバー用であり、顧客に渡したり開示したりしてはいけません。
エンドユーザーが顧客のサーバーに会員登録する際、または初めてサービスを利用する際に、顧客はエンドユーザーIDをSaaSサーバーに要求して保存します。
エンドユーザーがサーバーにログインし、アバターとの会話を希望する場合、お客様のサーバーは独自のビジネスロジックに基づいてユーザーが会話に参加する資格があるかどうかを検証し、その後、会話のためのエンドユーザートークンを発行するためにSaaSバックエンドにAPIリクエストを行います。(必要に応じて使用量を指定できます。)
顧客のサーバーはエンドユーザートークンをエンドユーザーのフロントエンドに渡します。
エンドユーザーのフロントエンドはSDKにエンドユーザートークンをロードし、チャット接続をリクエストします。
非ログインユーザーは、SDKキーおよび必要なパラメータを使用して公開SDKを呼び出すことで、ライブアバターとのチャットをリクエストできます。ただし、SDKコードおよびキーが公開情報であるため、この方法は非ログインユーザーに無差別に使用される可能性があるため推奨されません。それにもかかわらず、プロトタイプや簡単な接続をテストしたいユーザーには限定的に使用できます。将来的には、SaaSバックエンドが以下の要素をサポートして乱用を防止します。
SDKキーを使用したアクセスの許可/不許可の切り替え
SDKキーを使用してアクセスを許可する場合でも、非ログインユーザーによる無差別な使用を防ぐためのクォータ/レート制御
推奨される方法は、非ログインユーザーが(a)のパスに従って顧客のサーバーにリクエストを行い、会話が許可された場合に一時的なエンドユーザーアカウントとトークンを発行し、ログインユーザーと同様にアクセスすることです。会話リクエストを処理する際、お客様のサーバーは独自のポリシーに基づいて許可/不許可を判断するか、ポリシーに合わせて使用量を指定して会話を許可することができます。