ボット変数によって、異なるタスク、ノード、およびその他のボット要素で共通して使用される値をキャプチャできるようになります。ボット変数は、ボット設定において一度キー・値のペアとして設定し、会話フローの中で実行時にキーと値を置換することができます。ボット変数は、頻繁に使用される値を一か所でキャプチャすることにより、再利用性および一貫性の利点をもたらします。例として、ステージングエンドポイントを用いて、フライト予約ボットをテストしているとします。エンドポイントを変数として設定している場合、APIを複数の場所から迅速に呼び出すことができます。ボットの公開中に、ステージングエンドポイントをプロダクションに変更したいときは、簡単にできます。同様に、メッセージとプロンプトのコンテンツをダイアログフロー定義から外部に出すために、変数を使用することができます。Kore.aiプラットフォームでは、ボット開発者は環境とコンテンツの2タイプの変数を定義することができます。
環境変数
環境変数(以前はグローバル変数と呼ばれていた)は、キー・値のペアを定義して、その変数をボット全体で使用するという、ボット変数の主要なタイプです。環境変数は、グローバルに宣言されているため、ボット構成のどの時点でも使用することができます。開発者が環境変数を使用する典型的なユースケースとしては、以下のようなものがあります。
- 異なるエンドポイントURLを持つ環境間でボットを管理するため。ボットは環境に合わせてエクスポートおよびインポートすることができので、インフラストラクチャチームは可変構成ファイルの変更のみが必要になるだけです。
- ボットの設定内で繰り返されるボットの応答を変数として定義および管理する場合。
- 認証トークン
- チャネルに関連するトークンとURL
プラットフォームのバージョン8.1リリース以降、オンプレミスのインストールでは、コレクションを使用してこれらの環境変数に複数の値のセットを保存することができます。詳細はこちらを参照してください。
コンテンツ変数
ボットの構築には、基本的に大規模なコンテンツ管理が必要です。また、多言語対応のボットの場合、開発者と世界各地に散らばるコンテンツ制作者や著作権チームとの間で、面倒な調整作業が必要になります。コンテンツ変数は、ボットフローの開発作業をコンテンツのオーサリングや編集から抽象化することにより、この問題を解決します。コンテンツ変数を使用すると、プログラマは、プロンプト、メッセージ、またはユーザーに提示されるデータなどのボットコンテンツをボットコンポーネントにハードコーディングすることなく、一元管理された各ボット言語のコンテンツ変数ファイルに特定の変数を指定することができます。ボットの構成を公開することなく、言語固有のコンテンツ変数ファイルをコンテンツエディターにエクスポートすることができます。ライターは、エクスポートされたファイルのコンテンツをオーサリングすることができ、それをボットにもう一度インポートして戻すことができます。
ボット変数の定義
ボット変数を追加または編集するには、以下の手順に従います。
- 変数を追加したいボットを開きます。
- トップメニューの構築を選択します
- 左側メニューの構成から、環境変数またはコンテンツ変数を選択します。
- 変数ページで変数の追加をクリックして、以下の詳細を入力します。
- 変数名:特殊文字を含まない名前を入力します。例:ボット環境。
- 値:文字列式を追加します。この文字列は、呼び出されたあらゆる場所で変数を置き換えます。
メモ:コンテンツ変数については、ボットの言語ごとに異なる値を入力する必要があります。その方法については、次のセクションをご参照ください。
- メモフィールドに開発者のメモを入力します。これはオプションのフィールドですが、役に立つメモを入力することで、対象ボットで作業している開発者が関連する値を理解し、提供することができます。
- グループは、変数を分類するために使用することができます。
- 有効な場合は、名前空間を割り当てます(詳細はこちらを参照してください)。
- 保存をクリックします。
- さらに変数を追加または編集する場合は、ステップ3~5を繰り返します。
環境変数の使用
プレーンテキストモード(標準エディター)では、以下の構文を使用して環境変数を呼び出すことができます。{{env.variableName}}
JavaScriptモードで使用している場合は、“env.variableName”となります。ここでは、“botType”と“parameters”という2つの環境変数を使用して、開発、テスト、プロダクションといった異なるボット環境を決定するボットの例を紹介します。ボットのタスクの1つである以下のスクリプトノードは、現在のボット環境に合わせて、ボットの“ベースURL”をキャプチャします。 キャプチャしたURLをベースに、以下のサービスノードのURLが変更されます。
コンテンツ変数の使用
プレーンテキストモード(標準エディター)では、以下の構文を使用してコンテンツ変数を呼び出すことができます。{{content.variableName}}
JavaScriptモードで使用している場合は、“content.variableName”となります。これは、多言語フライト予約ボットのエンティティノードで、ユーザーのソース空港をキャプチャしています。ハードコードされたユーザープロンプトではなく、コンテンツ変数を使用します。 ボットがユーザーとのインタラクションの一環としてこのノードに到達した場合、ユーザープロンプトはインタラクションの言語に合わせて変化します(有効な言語すべてにそれぞれの変数値を入力した場合)。
インポートとエクスポート
ボット変数をボット間でインポートおよびエクスポートすることができます。
- 構築->構成->(環境/コンテンツ)変数からアクセス可能ないずれかのボット変数ページで、
- 追加変数の隣にある楕円をクリックします。
- “インポート”:JSONまたはCSVファイルから変数をインポートするには、 インポートを選択します。
- インポートは既存の変数を置き換えるため、バックアップを取ることをお勧めします。
- バックアップを取った後、インポートを続行します。
- インポートするJSONファイルまたはCSVファイルを選択します(ファイル形式については以下をご確認ください)。
- “エクスポート”:エクスポートから、エクスポートファイルの優先形式を選択します。
ボット変数ファイル には、以下の情報が含まれており、インポートファイルにも同じ情報が必要です。CSVファイルにはヘッダー行が必要です。エクスポート(あるいはバックアップ)ファイルを参照して、インポートファイルについても同一形式の使用をお勧めします。
- key(必須) – 変数の名前
- scope – 変数の範囲は、変数宣言時の設定オプションに対応しており(提供されない場合はprePopulatedに設定されます)、以下のいずれかになる可能性があります。
- prePopulated
- askOnInstall
- hidden
- value – 変数の値
- variableType(設定されていない場合、デフォルトではenv)-
- 環境に対してenv
- コンテンツ変数に対してlocale
- audioTag – IVRが有効な場合、プレーヤーの詳細用
- group – グループ名
- hint – 変数の説明
[ {"key":"hosturl", "value":"https://bots.kore.ai", "hint":"This is the URL of environment which can be used across the endpoints configured in the bot", "audioTag":"", "variableType":"env", "scope":"prePopulated", "group":"URLS"} ]