Watson Assistant V2 API:更改会话超时

问题描述 投票:3回答:1

使用Watson Assistant V2 API,必须首先创建一个会话句柄(create_session(assistantid)),它返回在单个消息调用中使用的会话ID(assistantid,sessionid,request)。会话维护会话状态,因此等效于V1 API的context id参数。

不幸的是,默认情况下似乎有5分钟的会话超时。响应包括以下标头属性:

{...,"x-watson-session-timeout": [
"x-watson-session-timeout",
                "session_timeout=300"
            ],...}

通过使用助手对象的set_default_headers()方法或通过将可选的头参数添加到create_session()调用来尝试更改此参数似乎没有任何效果。由于我没有找到任何关于如何正确更新此参数的文档,我只是尝试了几种替代方法:

1)self.assistant.set_default_headers({'x-watson-session-timeout':"['x-watson-session-timeout','session_timeout=3600']"})

2)self.assistant.set_default_headers({'x-watson-session-timeout':"'x-watson-session-timeout','session_timeout=3600'"})

3)self.assistant.set_default_headers({'x-watson-session-timeout':"session_timeout=3600"})

4)self.assistant.set_default_headers({'x-watson-session-timeout':"3600"})

5)self.assistant.set_default_headers({'session_timeout':"3600"})

没有什么是有效的。响应标头中的参数值仍为300。

我是否使用不正确的dict对来更新参数?是否有另一种方法可以使用V2 API将对话状态维持超过5分钟?是不是可以改变它?

ibm-watson watson-conversation
1个回答
2
投票

会话超时的值不在调用者的控制之下,实际上与您正在使用的Assistant计划相关。对于免费和标准,超时确实是5分钟。对于其他计划,超时更大。

Retaining information across dialog turns

当前会话持续用户与助理交互的时间长,然后Plus或Premium计划长达60分钟不活动(Lite或标准计划为5分钟)。

© www.soinside.com 2019 - 2024. All rights reserved.