如何在 Flask 中的现有会话过期时创建新的 watson assistant 会话?

How to create a new watson assistant session on exisiting session expiration in Flask?

我正在使用带有 Flask 框架的 watson 助手。会话过期后,我收到以下错误

ApiException(response.status_code, error_message, http_response=响应) ibm_cloud_sdk_core.api_exception.ApiException:错误:未找到:代理实例 0e5c653c-9-b4e0-5a597c3e541e 的会话 ID ba62bf14-87e-4c7b071b591e,代码:404,X-global-transaction-id:ffea409d54977b49 127.0.0.1 - - [03/Jul/2019 11:27:47] "GET / HTTP/1.1" 200

刷新页面不会创建新会话

如何在这个异常上创建一个新会话,这样我就不需要重新启动本地服务器?

您需要提供代码,因为任何响应都是盲目的,并且基于对您所犯错误的猜测,并且有很多错误。但是基于您未能提供代码这一事实,并且仍然提出了希望有人告诉您您做错了什么的问题,那么让我们来处理菜鸟错误。

我认为您在 Flask 应用程序中将会话创建为全局会话,并可能将其保存为 app 对象。您可能有一个对话路线,它使用了会话。此路由中的代码需要捕获错误,或测试会话是否仍然有效,然后重新创建它。如果您正在捕获错误并尝试重新创建会话,那么您可能已经违反了 Python 的全局变量限制。本质上,如果在一个函数中你有一个变量作为赋值的右侧,那么它的范围将被限制在函数内。

刷新网页,不会强制 flask 应用 re-create 会话。因为您可能在任何路线之外都有这种逻辑。

您提到了 5 分钟的会话超时。

Watson Plus 试用版仅用于测试,并不打算用于生产级别。它不能改变。

标准版和精简版都可以使用session,但是本来都是无状态的。对于这些,您应该使用 V1 API。你将不得不管理状态,但你将不再有超时。

如果您使用的是付费版 Watson Plus 或高级版,您可以在助手设置中更改超时。