2017-09-07 3 views
2

私は大量のトラフィックを持っているウェブサイトのためのチャットボットを構築していますに(AWSのLEXで)チャットボットのチャットの会話を保存するためにどのように私は私がしたいはDynamoDBの

AWS LEXでチャットボットを構築することを決めすべてのチャットの会話をDynamo DBの1つの属性に保存します。その属性のリストデータタイプを選択しました。

すべてのスロットデータを別の変数に取得できますが、ユーザーが入力した発言を保存する方法と、それは会話のようにそれらを整理する方法です。

チャットの会話を保存するための代替手段がありますか?

答えて

1

これはあなたのボットなので、セッションタイムアウト値を知っています。ラムダ関数では、セッションID(ランダムUUID)を生成し、それをセッション属性に入れることができます(詳細はhereを参照してください)。あなたは、あなたのアカウントにDDBのテーブルを作成し、このようにそれを設計することができます。

  • ハッシュキー:userIdを
  • レンジキー:セッションID#timeStampに
  • 要求(String属性):でリクエスト構造のJSONフォーマットラムダ関数に送信

セッションが有効であれば、セッション属性マップに入れたsessionIdをいつでも取得できます。これを使用すると、常に範囲キー(sessionId + "#" + currentTimeStamp)を作成することができます。あなたのラムダに入るすべての呼び出しで、あなたのボットのユーザーIDも取得します。あなたは、あなたが好きかもしれないように発言を保存するために、このすべての情報を得ることができます。

+0

このようにして、各発話のDynamoDBテーブルに新しいレコードが挿入されます。この効率的な方法ですか? – sid8491