如何在Flask中建立一个新的Watson Assistant会话以终止会话过期?

时间:2019-07-03 19:55:31

标签: ibm-watson watson-assistant

我正在使用带有烧瓶框架的Watson Assistant。一旦会话过期,我会收到以下错误

ApiException(response.status_code,error_message,http_response = 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

刷新页面不会创建新会话

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

2 个答案:

答案 0 :(得分:1)

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

Watson Plus试用版具有此功能,仅供测试之用,并不打算用于生产级别。无法更改。

标准版本和lite可以使用会话,但是它们最初都是无状态的。您应该使用V1 API。您将不得不管理状态,但是您将不再有超时。

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

答案 1 :(得分:0)

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

我认为您是在烧瓶应用程序中将会话创建为全局会话,并且可能将其保存为app对象。您可能有一个对话框的路由,该路由利用了会话。此路由中的代码需要捕获错误,或者测试会话是否仍然有效,然后重新创建它。如果发现错误并尝试重新创建会话,则可能与Python的全局变量限制不符。本质上,如果在函数中将变量作为赋值的右侧,则其范围将限于该函数。

刷新网页不会强制Flask应用重新创建会话。因为您可能在任何路由之外都具有该逻辑。