Whizi网页搜索不生效:为什么没有真正搜索

快速解答

多数情况下根本没有发起过搜索。开关打开后,Whizi会先给模型发送一个大约50个token的低成本探测工具,只有模型在某一轮真正调用了这个工具,才会执行真正的网页搜索。如果模型判断自己已经能够回答,你得到的就是一个没有来源的答案,而开关依然显示为绿色。

简短回答

多数情况下根本没有发起过搜索。开关打开后,Whizi会先给模型发送一个大约50个token的低成本探测工具,只有模型在某一轮真正调用了这个工具,才会执行真正的网页搜索。如果模型判断自己已经知道答案,就不会发起搜索,你得到的就是一个没有来源的答案,而开关依然显示为绿色。

值得依次排查的原因:

你看到的情况最可能的原因该怎么办
开关是开的,但答案没有来源模型从未调用探测工具,所以没有发起搜索你这边无法强制发起搜索:由模型按每一轮自行判断
这次对话里开关看起来是关的开关是按对话保存的,不是按账号保存的,而且新对话里搜索默认是开启的在这次对话里重新打开它
只返回了两三条来源普通搜索的结果上限是3条无需更改:单次搜索上限3条,总数上限也是3条
出现提到布尔值的错误请求内容格式有误刷新页面并重新发送
整条消息都报错了模型服务商出现故障重试,如果反复出现就联系支持团队

为什么开关打开并不代表搜索真的发生了

一次请求会运行在三种搜索模式之一:关闭、探测或原生。

关闭模式完全不携带搜索工具:开关是关的,模型没有办法查找任何信息,只能根据对话本身作答。开关打开后,消息就会进入探测模式。

探测模式是一种低成本的替代方案。模型会被交给一个可以调用的普通函数,大约花费50个token,只有模型真的调用了这个函数的消息,才会重新携带真正的搜索发出。对于本来就不需要联网的消息,探测模式比原生模式便宜大约46倍;对于确实需要联网的消息,它只多花费大约0.8%的成本。

原生模式直接运行服务商真正的网页搜索工具。它并不是免费的:工具定义会插入大约4,400个输入token的固定前导内容。同样的两条消息提示词,不带这个工具时测得36个token,带上之后测得4,472个token。

开关只是允许发起搜索,是否真的执行由模型自己决定。这就是为什么在同一场对话里、开关始终没动过的情况下,像“什么CRM比较好”这样的问题可能没有来源返回,而“这家公司这周发布了什么”这样的问题却会真正触发搜索。

网页搜索是按每次请求由用户控制的开关,而不是按模型划分的能力标记,所以并没有一份公开的名单去区分哪些模型能联网、哪些不能。

确切的错误提示文字,以及每一条的含义

Whizi客户端会直接展示后端返回的error.message,所以你看到的文字就是接口本身抛出的内容。如果你正对着下面这几条中的一条,它想告诉你的就是这些。

错误提示文字HTTP状态码和错误码触发原因
webSearchEnabled must be a boolean.400,invalid_generate_request网站发送接口收到的webSearchEnabled字段不是true或false
webSearch must be a boolean.400,invalid_chat_requestApp聊天接口收到的webSearch字段不是true或false
Web searches failed. You have not been charged.写在失败的运行记录上Deep Research运行中完成的搜索次数低于最低要求

这两条布尔值错误说明的是请求格式有误。客户端为搜索标记发送的值不是布尔值,这和你的账号、套餐或所选模型都没有关系。刷新页面,然后重新发送消息。如果刷新之后问题仍然存在,请联系支持团队。

Web searches failed. You have not been charged.会写在失败的Deep Research运行记录上,出现在完成的搜索次数低于最低要求的时候。额度不会被扣除。请稍后再试一次。

结果返回了,但只有三条

在较低的搜索上下文规模下,普通搜索请求单次上限是3条结果,总数上限也是3条。无论问题看起来多么详尽还是多么简单,背后最多都只有三个网页作为依据。

有一个接口的表现不一样。加拿大CPA智能助手是唯一一个强制每一轮都发起网页搜索的接口,上限是7次搜索,而且它的搜索被限定在一份允许域名清单内,并大致定位在加拿大用户的位置。在这个助手上,如果结果都来自很小一批网站,那正是允许域名清单在起作用。

如果问题是答案过时而不是没有来源,或者你想用多次检索去核对一个数字,网页搜索使用指南故障排查中心讲了这部分内容。

整条消息失败时

一轮搜索也可能因为和搜索完全无关的原因而失败。下面这些提示文字来自模型服务商这一层,意味着生成本身失败了。

错误提示文字HTTP状态码和错误码含义
The model is temporarily rate-limited. Please retry shortly.429,provider_rate_limited是上游服务商拒绝了连接,不是Whizi的问题
The model provider rejected the request.502,provider_error服务商返回的错误内容无法读取
The model provider returned an empty stream.502上游响应本身正常,但没有携带任何内容
The model stream was interrupted.流式传输过程中的错误事件流在传输过程中中断了
Too many requests. Please wait and try again.429,rate_limit_reached你触发了Whizi的速率限制窗口

聊天消息按每个用户限制为每分钟10条、每小时60条,所有套餐一视同仁,同时所有接口共享每分钟30次请求的总上限。被拒绝的请求不会产生任何花费:速率限制导致的拒绝会被撤销,所以一次429不会从你的额度里扣掉一条消息。

这些情况都没有你这边可以调整的设置来预防。稍等片刻再重新发送。如果同一个模型持续几分钟都在报错,先切换到另一个模型继续工作,并联系支持团队,让他们查看你的账号情况。

操作清单
  • 绿色开关只是允许发起搜索,是否真的执行由模型决定
  • 探测模式大约花费50个token,只有模型调用它的那一轮才会得到真正的搜索
  • 普通搜索最多返回3条结果
  • 两条布尔值错误都是请求格式有误:刷新页面并重新发送
  • 搜索是按每次请求控制的开关,不是按模型划分的能力标记
  • 服务商错误和429都是暂时性的:稍等、重试,然后联系支持团队

常见问题

我在Whizi里打开了网页搜索,但它没有搜索。这是为什么?

因为模型判断它并不需要搜索。开关打开后,Whizi会随你的消息一起发送一个大约50个token的低成本探测工具,只有模型真的调用了这个工具的那一轮,才会发起真正的搜索。这样设计是为了控制成本,因为服务商原生的搜索会在每次请求中插入大约4,400个输入token的前导内容。

“webSearchEnabled must be a boolean.”是什么意思?

这是一个HTTP 400错误,错误码是invalid_generate_request,会在发送请求携带的webSearchEnabled值不是true或false时返回。你的账号、套餐和所选模型都和它无关。刷新页面并重新发送,如果刷新之后问题依然存在,请联系支持团队。App聊天接口有对应的提示文字webSearch must be a boolean.,错误码是invalid_chat_request

“Web searches failed. You have not been charged.”是什么意思?

它会写在失败的Deep Research运行记录上,出现在完成的搜索次数低于最低要求的时候。这句话字面意思属实:额度确实不会被扣除。没有任何配置调整能预防这种情况,唯一有用的做法就是稍后再重新运行一次请求。