Bixby 是否在服务器上缓存请求?

Does Bixby cache the requests on server?

在我的应用程序中,来自 Bixby 的所有话语都被重定向到一个进行 api 调用的操作。此 api 调用 returns 对用户话语的 Bixby 响应。最近我观察到如果用户说以下内容:-

用户说:- 将 xyz 添加到我的购物车
api 回复:- 你想要其中的 2 个吗?
用户说:-
api 回复:- 你想结账吗?
用户说:-

理想情况下,现在请求应该到达我的 api 并且应该向用户显示结帐结果页面,但是 Bixby 显示用户缓存的响应并再次显示以下响应:-

api 回复:- 你想结账吗?

并且循环无限期地继续下去。我想知道这种行为是否符合预期?有没有一种方法可以跳过缓存并将请求发送到 api 端点进行响应?

是的,请求缓存在服务器上。如果需要,您可以禁用缓存。

例如,

let options = {
    cacheTime: 0
  };

let response = http.getUrl('https://my-capsule.com/api/search/', options);

有关更多选项,请参阅 https://bixbydevelopers.com/dev/docs/reference/JavaScriptAPI/http#http-options。没有双关语的意思。 :)

除了客户端提供的cacheTime,服务端有时可以在Cache-Control header。发生这种情况时,Bixby 会执行以下操作:

  1. no-cacheno-store:Bixby 不会缓存任何内容。这将覆盖客户端提供的 cacheTime 变量。
  2. 响应时间 + max-age < 当前时间:从缓存中删除响应(即使客户端请求更长 cacheTime
  3. 响应时间 + cacheTime < 当前时间:从缓存中删除响应(即使响应提供的时间更长 max-age