機械翻訳について

その他の変数タイプ

フロー変数およびグローバル変数の他に、ユーザー・スコープ、プロファイルおよびシステム変数を使用できます。

ユーザー・コンテキストのプロファイル・スコープ変数

ユーザーの名前、ロケールおよびローカル時間の値には、チャット・クライアントからプロファイル設定にアクセスするプロファイル・スコープ変数を使用してアクセスできます。

たとえば:
"Hello ${profile.firstName}, how can I help you today?"

これは出力のprofile.firstNameのイメージです。
これらの事前定義済変数を使用して、スキル・ユーザーに固有のコンテキストを出力します。
これを行うには... 方法...
ボット・ユーザーの名を取得します。 ${profile.firstName}
ボット・ユーザーの姓を取得します。 ${profile.lastName}
ボット・ユーザーのロケールを取得します。 ${profile.locale}
ユーザーのタイムゾーンを取得します(ミリ秒単位でオフセットされます)。 ${profile.timezoneOffset}

これらの事前定義済変数は、メッセージング・プラットフォームが渡す値から自動的に設定されます。 値はメッセージング・プラットフォームによって異なり、一部のメッセージング・プラットフォームでは提供されない場合があります。 たとえば、「digital assistant as agent統合」の場合、profile.firstNameprofile.lastNameおよびprofile.emailに値が設定されるのは、ユーザーがOracle Service Cloudにサインインした場合、またはチャットをリクエストする前にOracle Service Cloudチャット開始ページで名、姓および電子メール・アドレスのフィールドに入力した場合のみです。 Oracle Web Clientの場合、これらのプロファイル値はinitUserProfileプロパティまたはupdateUserメソッドで設定する必要があります。

戻り訪問のユーザー固有値の保存

ユーザー・スコープ変数を作成して、セッション間で永続化できます。

一般に、ユーザーがスキルまたはデジタル・アシスタントとの会話が終了すると、ユーザー入力から設定された変数値は破棄されます。 ただし、ユーザー・スコープ変数を定義して、以前のセッションからのユーザー入力を保持し、新しい会話を拡張することもできます。 ユーザー・スコープ変数は、コンポーネント自体で直接作成します。

ユーザー・スコープ変数を作成するには:

  1. 作成するコンポーネントのプロパティ・インスペクタの「変数」フィールドで、ドロップダウンから「ユーザー・スコープ変数」を選択します。
  2. 表示される「スコープ付き変数名」フィールドに、変数名を入力します。

    user.プレフィクスの名前withoutを入力します。 (このプレフィクスは、ユーザー・スコープ変数を参照するときに使用しますが、定義時には使用しません。)

ユーザー・スコープ変数を参照するには、${user.VAR_NAME}のような式を使用します。

たとえば、「ピザ・スキル - ビジュアル・フロー・デザイナ」サンプル・スキルでは、lastOrderNumberユーザー・スコープ変数は、ユーザーが順序をservice.reg.placeOrderフローに配置した後に設定されます。 この変数は、スキルが起動するたびにコールされるフローの最初の状態(handler.startSkill)の式${((user.lastOrderNumber)?has_content)}によって参照され、ユーザーが前の順序を実行したかどうかを判断します。

ノート:

user-scope変数の値はチャネル固有です。 たとえば、ユーザーがwebチャネルのスキルにアクセスし、後でMicrosoft Teamsチャネルを介してスキルにアクセスした場合、チーム・チャネルはユーザー変数の独自のインスタンスを持ち、Webチャネルの以前の会話の値を認識しません。

システム変数

変数 タイプ 説明
system.nlpresult NLP結果 ユーザー発話のNLP結果を保存するために使用されます。 NLPの完全な結果を取得するには、式${skill.system.nlpresult.value}を使用できます。
system.intent.utterance String この変数に値がある場合、最後のユーザー・メッセージのかわりにインテント照合に使用されます。 この変数にアクセスするには、式${skill.system.intent.utterance}を使用できます。
system.event マップ 組込みイベントの1つがメイン・フローまたはサブ・フローにマップされている場合、この変数にはイベントの処理に使用できるイベント・プロパティが保持されます。 たとえば、イベント・ペイロードを取得するには、${skill.system.event.value.EVENT_NAME}という形式で式を使用します。
system.rb リソース・バンドル 言語リソース・バンドル・エントリにアクセスするために使用します。 リソース・バンドル・エントリにアクセスするには、${skill.system.rb.RB_ENTRY_NAME}形式の式を使用できます。