私はメッセンジャープラットフォームでチャットボットを作っていますが、私はユーザーに一連の質問をしています。しかし、ユーザーが最初の質問に答えると、Apiのフォールバックインテントに直接移動します。それが次の質問に行くまで同じ質問。 私はsessionIDを設定して問題を修正すると思ったが、問題は解決しなかった。Flask:一定の期間、変数に値を保持する方法はありますか?
ai = ApiAI(os.environ["APIAI_TOKEN"])
req = ai.text_request()
req.session_id = str(uuid.uuid1(int(str(senderID)[0:15])))
それはSENDERIDが同じであっても、時には新しい要求(ユーザーが質問に答えるとき)(SENDERIDがFacebookから送信されたユーザIDである)UUID1変化の出力を結局のところ。だから私はuuid1の値を辞書に保存しようとしています。ユーザの回答が最初の質問であれば、新しいリクエストは辞書にsenderIDをチェックし、すでに存在する場合は同じsenderIDに対して新しいuuidを生成しません。 しかし、同じユーザーからの新しい要求が英雄にヒットすると、辞書の値がなくなってしまうことがあります。これは毎回起こるのではなく、時間の約90%です。 新しいリクエストのログは次のとおりです。
2017-11-18T09:43:03.784670+00:00 heroku[router]: at=info method=POST path="/" host=website.com request_id=ab6d6488-0343-4c68-9b2a-d6faf2ee2302 fwd="173.252.123.140" dyno=web.1 connect=0ms service=633ms status=200 bytes=161 protocol=https
値を保持するにはどうすればよいですか。他のアプローチはありますか? 私は初心者で、私はこの問題で1週間立ち往生しています。
サーバーを再起動してもredisの値が失われませんか? –
同じマシンにインストールする場合は、はい。しかし、私が知っているほとんどの人は、少なくとも新しい開発者は、リセットしない別のサーバー上で実行しているので、redis(azure、awsなど)用のクラウドサービスを使用しています。 また、回答がお手伝いしました – Akshay