我需要将LLM的聊天历史保存在会话变量中,以避免必须在每个用户的数据表中进行。会话变量在这里会非常有效。然而,我有一个生成器函数,它将Chatbot LLM流返回到用户视图中的JavaScript阅读器,似乎在生成器函数中保存会话变量并不容易。
我读了很多书,想出了下面这些本应该解决这个问题的东西,但仍然没有运气。现在我可以访问嵌套函数中的会话变量(流_with_context
但我无法保存它。
从烧瓶导入烧瓶,会话,render_template,请求,重定向,stream_with_context,响应从烧瓶_会话导入会话app=烧瓶(名称)wsgi_app=应用程序app.config['SECRET_KEY']=“madeupkeyforstackoverflow”app.config.update(SESSION_COOKIE_NAME=“madeupcookieforstackoverflow”)app.config['SESSION_TYPE']='文件系统'会话(应用程序)@请求前申请定义make_session_permanent():session.permanent=真app.permanent_session_lifetime=日期时间.timedelta(分钟=10)@app.route('/login',methods=['GET','POST'])定义登录():session['chat_history']=“数组中的一些聊天数据”#登录用户并将其发送到默认视图的其余代码@app.route(“/chat”,methods=['POST'])@登录_必需定义聊天():#删除了仅从用户视图收集变量并设置与各种LLM的连接的代码定义ask_function():#下面的命令成功打印了上面LOGIN()中定义的数据打印(会话['chat_history'])#以下内容成功地将新数据添加到会话变量中。在此功能中,数据在本课时变量中可用。但是,一旦完成此功能并再次运行,下面附加的数据就不存在了,而只是上面登录时最初设置的数据。解决我的问题。session['chat_history'].append({“角色”:“用户”,“部分”:“问题”})产生“一些随机响应”return响应(stream_with_context(ask_function()),mimetype='text/event-stream')
我试过了session.modified=真
并使用单独的函数保存会话变量。但无济于事。如何在Flask中保存会话变量?