2017-10-25 5 views
2

Microsoft Bot Frameworkのドキュメントには、さまざまなタイプのデータがあります。そのうちの1つは、dialogData、privateConversationData、conversationDataおよびuserDataです。異なるノード間でdialogDataを永続化するにはどうすればよいですか?

デフォルトでは、userDataはノード間の永続性を処理するように準備されている必要がありますが、dialogDataは一時データ用に使用する必要があります。

それはここで言うように:https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-dialog-waterfall

ボットは の各ステップは、したがって、それが中に格納ボットデータに重要 だ、滝が異なるノードによって処理することができ、複数の計算ノードに分散されている場合適切なデータバッグ

ノードが2つある場合、どのようにして/どのようにしてdialogDataを使用する必要がありますか?ノード間で保証されないことがありますか?複数のノードがある場合は、userDataを使用するだけです。

+0

あなたは正しい、これら3 databags 'privateConversationData'、' conversationData'と 'userData' – JasonSowers

+0

ので、conversationDataがあまりにもノード間で同期されるのいずれかを使用しますか?私はuserDataだけがそのように処理されたことを読んでいます。 – sfratini

答えて

2

文書の最後の部分を削除するようにドキュメントチームに依頼しました。「ボットデータを適切なデータバッグに保存することが重要です。それは間違いです。 Bot Builderは安心してステートレスです。 dialogData、privateConversationData、conversationDataおよびuserDataはState Serviceに格納されているため、これらのオブジェクトのいずれかからデータを取得することができます。

注意:デフォルトのConnector State Serviceはプロトタイプ作成のみを目的としており、本番ボットでは使用しないでください。 Azure Extensionsを使用するか、カスタム状態のクライアントを実装してください。

このブログの記事にも役に立つかもしれません:Saving State data with BotBuilder-Azure in Node.js

+0

ありがとう!それは実際には理にかなっています。私は完全なアーキテクチャがどのように機能するのか把握できませんでした。あなたの説明の後で、そのページと状態データの管理を読む方が理にかなっています。 "dialogData、privateConversationData、conversationData、およびuserDataの各データは状態サービスに格納されているため、"計算ノード "はこれらのオブジェクトのいずれかからデータを取得できます。 – sfratini

+0

また、デフォルトでは、userData、privateConversationData、およびconversationDataプロパティを使用して保存されたデータは、dialogDataが永続化されなかったため、会話が終了した後も持続するように設定されています。これは、[状態データの管理]ページにあります。 – sfratini

関連する問題