Oracle Cloud Infrastructureドキュメント

D SDKヘルパー・メソッド

関数 使用方法
conversation.payload() 現在のユーザー・メッセージのペイロードを取得します。ペイロードには、メッセージ・テキストとその他の情報(ユーザーIDなど)が含まれます。
conversation.text() テキスト文字列にアクセスします。
conversation.attachment() アタッチメント・メッセージにアクセスします。
conversation.location() ロケーション・メッセージにアクセスします。
conversation.postback() ポストバック・メッセージにアクセスします。
conversation.transition(“action”)およびconversation.transition() ダイアログ・エンジンをダイアログ・フローの次の状態に移行します。カスタム・コンポーネントは、ダイアログ・フローの状態にマップされているアクション文字列を返すことにより、ナビゲーションに影響を与えることができます。
  • コンポーネント制御のナビゲーション(conversation.transition(“action”))—ターゲット状態を設定するには、次のスニペットのnameFoundnameNotFoundなど、コンポーネント・モジュールのmetatdata関数のsupportedActions文字列のいずれかと一致する文字列引数を渡します:
    metadata: () => ({
        "name": "helloWorld",
        "properties": {
          "properties": {
            "name": {
            "type": "string",
            "required": false"
          }
        },
        "supportedActions": ["nameFound", "nameNotFound"]
      }),      
    
  • ダイアログ・フロー制御のナビゲーション(conversation.transition())—コンポーネント・モジュールにsupportedActions定義がない場合(したがって、渡す引数がない場合)、この関数を引数なしでコールできます。この場合、ダイアログ・フロー定義によってコンポーネントではなく遷移が設定されます。たとえば、ダイアログ・フロー定義に応じて、ダイアログ・エンジンは、transitionメソッドの実行(transitions: {})後のフローの次の状態または特定の状態に移行する場合があります:
    transitions:
      next: "newState"

    コンポーネント・モジュールにsupportedActions定義があるが、関数自体に引数がない場合も、ダイアログ・フローによって遷移が決定されます。

conversation.channelType() メッセージング・チャネルを決定できます。
conversation.keepTurn(boolean) ボットが会話の制御を保持できるようにします。基本的には、keepTurnによって、入力またはレスポンスを提供するユーザー(ボットまたはそのユーザー)が決定されます。そのため、doneをコールする前に、conversation.keepTurn(true)またはconvesationkeepTurn(false)をコールして、次は誰の順番かを示すことができます。
  • conversation.keepTurn(true)—ボットが会話を制御できるようにするには、trueに設定します。これは、基本的にはボットが(コンポーネントを介して)「まだ自分が話す順番である」と主張することです。コンポーネントがユーザー入力を必要としない場合、またはユーザー入力を抑制する際に複数の返信を連続して送信する必要がある場合に、この設定を使用します。

  • conversation.keepTurn(false)—ユーザーが返信できるようにするには、false (デフォルト)に設定します。この設定により、基本的にはコンポーネントからの次の返信までユーザーに制御が戻ります。これにより、通常の双方向の会話が可能になります。

conversation.reply({text: "..."}) メッセージング・クライアントからのレスポンスを返します。このレスポンスは、単純なテキスト・メッセージ、またはカスタム・コンポーネントSDKのMessageModelクラスの関数を使用するリッチUIを含む、より複雑なレスポンスです。この関数を使用すると、Facebookのスクロール付きカルーセルなど、より複雑なレスポンスを作成できます。このタイプのレスポンスの場合、JSONペイロードを適切に構造化する必要があります。

conversation.replyに対して行われたコール数にかかわらず、レスポンスを送信するにはdone()をコールする必要があります。

conversation.properties() コンポーネント入力プロパティ(conversation.properties().accountType)へのアクセスを提供します。
conversation.error 処理中にエラーがあったことを示します。
conversation.botId() リクエストを送信したボットのIDを返します。
conversation.platformVersion() メッセージ・プラットフォームのバージョン(Facebook 1.0など)を返します。
conversation.text() インテントとコンポーネントの起動をトリガーしたNLPテキスト・メッセージへのアクセスを提供します。
conversation.variable(“name”,value) 現在のフローで定義された変数への読取りまたは書込みアクセスを提供します。この関数は次の引数を使用します:
  • variable(name)name変数を読み取り、その値を返します。

  • variable(name, value)value変数の値をname変数に書き込みます。文字列の場合にのみ、値を引用符で囲みます。

この関数では、実行時に、コンポーネントの状態のトラッキングに使用できる変数も作成されます。コンポーネントがダイアログ・フローの次の状態に遷移しないため、内部状態をトラッキングする必要がある場合に、これを使用できます。
conversation.nlpResult() nlpresult変数のNLPResultヘルパー・オブジェクトを返します。たとえば、conversation.nlpResult.entityMatches(entity name)をコールして、ユーザー入力から抽出されたエンティティの値を検索できます。この値を使用して、エンティティ・タイプの変数を更新できます。
conversation.request() ボットによって送信されるJSONオブジェクト本体にアクセスします。この関数を使用して、SDK関数の1つによって直接公開されない情報のペイロードを解析します。
conversation.response() done()をコールするとボットに返信されるHTTPレスポンス・ペイロード(JSONオブジェクト)へのアクセス権を付与します。