ボット変数は、さまざまなタスク、ノード、その他のボット要素で共通して使用される値を取得するのに役立ちます。ボット変数は、ボットの設定でキーと値の組み合わせとして設定することができ、会話の流れの中で実行時にキーと値を置き換えることができます。頻繁に使用される値を一箇所で取得することで、ボット変数は再利用性と一貫性という利点をもたらします。例えば、ステージングエンドポイントを使用してフライト予約ボットをテストしているとします。このエンドポイントを変数として設定した場合、複数の場所から素早くAPIを呼び出すことができるようになります。ボットの公開中にステージングエンドポイントを本番環境に変更したい場合も、簡単に行えます。同様に、変数を使使用して、ダイアログフローの定義からメッセージとプロンプトのコンテンツを外部に置くことができます。Kore.aiプラットフォームでは、ボットの開発者は、環境とコンテンツの2種類の変数を定義することができます。
環境変数
(以前はグローバル変数と呼ばれていた)環境変数は、キーと値の組み合わせを定義し、その変数をボット全体で使用する、主要なタイプのボット変数です。環境変数はグローバルに宣言されているため、ボットの設定のどの時点でも使用することができます。開発者が環境変数を使用する典型的なユースケースは、次の通りです。
- 異なるエンドポイントURLを持つ環境間でボットを管理する場合。環境に応じてボットをエクスポートおよびインポートすることができ、インフラストラクチャチームは変数設定ファイルのみを変更する必要があります。
- ボットの設定内で繰り返されるボットの応答を変数として定義および管理する場合。
- 認証トークン
- チャネルに関連するトークンとURL
プラットフォームのバージョン8.1リリース以降、オンプレミスのインストールでは、コレクションを使用してこれらの環境変数に複数の値のセットを保存することができます。詳細はこちらを参照してください。
コンテンツ変数
基本的に、ボットの構築には大規模なコンテンツ管理が必要です。多言語対応のボットの場合には、開発者と世界各地に散らばるコンテンツ作成者や著作権管理チームとの間で、面倒な調整作業が必要になります。コンテンツ変数は、コンテンツの制作や編集からボットフローの開発作業を抽象化することで、この問題を解決します。プログラマーは、コンテンツ変数を使用して、ユーザーに提示されるプロンプト、メッセージ、またはデータなどのボットコンテンツをボットコンポーネントにハードコーディングすることを回避し、代わりに各ボット言語の一元管理されたコンテンツ変数ファイル内の特定の変数を指定することができます。この言語固有のコンテンツ変数ファイルは、ボットの設定を公開することなく、コンテンツ編集者にエクスポートすることができます。ライターは、エクスポートされたファイル内のコンテンツを制作し、ボットにインポートすることができます。
ボット変数の定義
ボット変数を追加または編集するには、以下の手順に従います。
- 変数を追加すrボットを開いて、設定 > 環境設定を選択します。
- 環境変数またはコンテンツ変数セクションのいずれかを選択します。
- 変数ページで変数を追加をクリックして、以下の詳細を入力します。
- 変数名:「ボット環境」など、特殊文字を使用しない名前を入力します。
- 値:文字列式を追加します。この文字列は、起動されたあらゆる場所で変数を置き換えます。
注意:コンテンツ変数の場合は、ボットの言語ごとに異なる値を入力する必要があります。方法については、次のセクションを参照してください。
- メモフィールドに開発者のメモを入力します。これは任意のフィールドですが、有用なメモを入力することで、ターゲットボットを担当する開発者が関連する値を把握し提供するのに役立ちます。
- グループは、変数を分類するために使用することができます。
- 有効な場合は、名前空間を割り当てます()。
- [保存] をクリックします。
- さらに変数を追加または編集する場合は、ステップ3~5を繰り返します。
環境変数の使用
プレーンテキストモード(標準エディター)では、の構文を使用して環境変数を呼び出すことができます。JavaScriptモードで使用している場合は、env.variableNameとなります。JavaScriptモードで使用している場合は、env.variableNameとなります。ここでは、botTypeおよびparametersと呼ばれる2つの環境変数を使用して、開発、テスト、本番といった様々なボット環境を決定しているボットの例をご紹介します。ボットのタスクの1つにある以下のスクリプトノードは、現在のボット環境に応じて、ボットのベースURLを取得します。次のサービスノードのURLは、取得したURLに基づいて変更されます。
コンテンツ変数の使用
プレーンテキストモード(標準エディター)では、の構文を使用してコンテンツ変数を呼び出すことができます。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":"これは、ボットに設定されたエンドポイントで使用することができる環境のURLです", "audioTag":"", "variableType":"env", "scope":"prePopulated", "group":"URLS"} ]