简短的答案
Whizi不会显示上下文上限的错误。产品里没有任何一处提到上下文窗口或token上限,因为一段超出模型能力的对话会在请求发出前被裁剪到合适长度,而不是被拒绝。系统不会告诉你发生了这件事。如果模型看起来忘记了长对话中间的内容,你遇到的就是这种情况。
有四种情况会直接拒绝你,而且每一种都会报出自己的名字:
| 消息 | HTTP状态码 | 触发条件 |
|---|---|---|
This message is {count} characters, over the 100,000 character limit. Attach a shorter file, or ask about one section at a time. | 400 message_too_long | 单条消息(包括从你的文件中提取出的文字)超过10万字符 |
This conversation has {count} messages, over the 100 message limit. | 400 too_many_messages | 单次请求携带的对话记录超过100条消息 |
Request is too large. | 413 request_too_large | 整个JSON请求体超出了路由的字节上限 |
That system prompt is missing or over the 32,000 character limit. | 400 invalid_system_prompt | 系统提示词超过3.2万字符 |
字符上限字符串中的{count}会替换成你的真实数字,并加上千位分隔符格式化。每条消息旁边的代码会出现在网络请求记录里,即便界面上只显示那句话。
如果你看到的提示里提到了上下文长度或token数量,那就不是Whizi发出的。请直接跳到最后一节。
每个模型能拿到的预算,以及超出之后会怎样
目录里的每个模型单轮对话都拿到同样的预算:4万个输入token和2万个输出token。加拿大CPA智能体是唯一的例外,输入5.5万个token,输出4万个token。
当一段对话超出这个预算时,后端会默默把历史记录裁剪到模型的token预算以内,而不是拒绝请求。不会有提示,不会有横幅,也不会有对应的错误代码。
Whizi用来裁剪的token计数是估算值,而不是真正的分词器。在JSON上它可能比真实分词器少算最多1.66倍,因此对输入应用了1.8倍的余量,以覆盖测得的最差情况。
换成上下文更大的模型并不会发送更多内容
这是最常见的错误做法。4万token的输入预算是固定的:在一个拥有百万级token窗口的模型上,和在一个20万token窗口的模型上完全一样。把一段长对话从一个大窗口模型换到另一个大窗口模型,对实际发送的内容量没有任何改变。
上下文窗口大小只会朝一个方向改变预算,那就是往下调。任何窗口低于9.3万token的模型,得到的都是按比例缩小的预算而不是固定预算,输出被限制在窗口的40%,并额外保留1000个token的安全余量。目录里有31个模型受到这种限制,其中最小的窗口只有6144个token。
所以真正有用的切换,恰恰和大家常做的相反:从一个受限的小窗口模型换到一个普通模型上。在两个大窗口模型之间切换,对长度没有任何影响。对话中途切换模型时的具体行为,写在对话中途切换模型里。
关于9.3万这个数字,还有一个细节值得知道,如果你在琢磨为什么一个小请求也会被模型拒绝:OpenRouter计算窗口占用时,用的是输入加上请求的最大输出,而不是只算输入。
较长的上传文件会被裁剪,而且会告诉你
上传文件是单条消息超过10万字符最常见的原因,因为PDF、Word和表格文件会在你的浏览器里被提取成文字,而这些文字和你手动打的字算在同一个上限里。
当提取出的文字放不下时,它会被裁剪而不是被拒绝,并且会出现两段文字。提示条上写着Your upload was too large, so only the first part of it was sent. Ask about a smaller section for full coverage.。消息本身在被裁掉的地方会带上标记[Attachment truncated: the upload was larger than one message can carry, so the content past this point was not included.],这样模型就能看到自己看到的副本在哪里断掉。
如果消息是被拒绝而不是被裁剪,你会看到前面表格里的message_too_long字符串。修复方法就是错误提示本身写的那样:附上更短的文件,或者一次只问一个部分。
还有一个容易被当成遗忘的行为:只有最近一条带附件的用户消息,其附件才会被转发给模型。十轮之前附上的图片或PDF不会在后续每一轮都重新发送。如果你需要模型再看一次,就重新附上一次。Whizi支持什么文件、提取又是怎么运作的,写在支持的文件类型里。
顺带说一句成本,因为长度会改变一轮对话的价值。在Auto模式下,超过约6000字符的消息会被路由到长文档档位,消耗4个积分,理由是这么长的消息更像是粘贴进来的文档,而不是一个问题。一个简短的问题会被路由到快速档位,消耗1个积分。积分等级的说明在积分是怎么计算的里。
固定在项目里的文件,每一轮都会计入提示词
固定在项目里的文件,会在该项目的每一轮对话中都以提示词文字的形式重新携带一次,而不是只携带一次,这也是为什么图片被特意排除在可固定的文件类型之外。
上限是单独设置的:每个固定文件最多贡献3.2万字符的提取文字,整个项目文件块的上限是12万字符,最多涵盖10个固定文件。项目的自定义指令最多可以有3.2万字符。
固定文件和指令会在该项目的每一轮对话中重新构建进提示词,占用和对话本身相同的输入预算。如果一个项目对话比普通对话更快丢掉话题线索,就取消固定那些你当前没有在问的文件。
如果你确实看到了一条上下文长度错误
那这条提示来自模型提供方,而不是来自Whizi,它是通过透传通道送到你手上的。任何不是速率限制的上游故障,都会以HTTP 502和代码provider_error返回,携带提供方的消息,并截断到300字符。当提供方的错误内容根本无法解析时,你会看到The model provider rejected the request.。
提供方就长度问题发出的拒绝,会报出一个上下文长度和一个token数量。这些数字是提供方在按一个比Whizi发送的预算更小的窗口来计算你的请求,而这正是支持团队排查问题时需要的数据。
没有任何界面设置能改变这一点。换一个模型来得到你要的答案,然后把包含这些数字的完整消息发给支持团队。
还有两条容易被误认为长度问题的提示。Generation failed mid-stream.和The model stream was interrupted.是回复到一半时的连接故障,不是长度拒绝,重试就好。Too many requests. Please wait and try again.是每分钟10条消息的速率限制,同样和长度无关。
- Whizi没有上下文上限错误:它会默默裁剪对话
- 每个模型每轮对话都有固定的4万输入和2万输出token预算
- 加拿大CPA智能体是唯一的例外,输入5.5万,输出4万
- 窗口低于9.3万token只会降低这个预算,从不会提高它
- 单条消息上限是10万字符,包含提取出的文件文字
- 单次请求最多携带100条消息的对话记录
- 只有最近一条带附件的消息才会转发它的附件
- 固定在项目里的文件会在该项目每一轮都作为提示词文字重新携带
- 在Auto模式下,超过约6000字符的消息会路由到长文档档位,消耗4个积分
- 提到上下文长度的消息来自模型提供方:换个模型,并告诉支持团队
常见问题
Whizi有上下文上限错误吗?
没有针对上下文的错误。Whizi确实会显示的长度提示都是计数,而不是窗口:单条消息10万字符、单次请求100条消息、系统提示词3.2万字符,以及针对整个请求体的413Request is too large.。如果你眼前的提示报出了token数量或上下文长度,那它是通过502的提供方透传通道送达的,属于模型提供方。
为什么模型忘了我在对话前面说过的话?
因为它在请求发出之前就被裁掉了。后端会默默把历史记录裁剪到模型的token预算以内,而不是拒绝请求,所以没有错误提示可看,也没有开关能关掉这个行为。话题变了就开一个新对话,是实际可行的做法。
换成上下文窗口更大的模型能让我发送更多内容吗?
不能。目录里每个模型的输入预算都固定为4万token,所以一个百万token窗口的模型和一个20万token窗口的模型,能拿到的对话内容量是一样的。
“超过10万字符限制”是什么意思?
有一条消息超过了单条消息10万字符的上限,被以HTTP 400和代码message_too_long拒绝了。从附加的PDF、Word文件或表格中提取出的文字,也算在同一个上限里,所以上传文件通常才是原因,而不是打字打太多。修复方法就写在错误提示本身里:附上更短的文件,或者在同一段对话里一次只问一个部分。
“超过100条消息限制”是什么意思?
单次请求携带了超过100条消息的对话记录,被以HTTP 400和代码too_many_messages拒绝了。这是对单次请求能携带多少内容的上限,不是对一段对话能有多长的上限。为下一个话题开一个新对话是实际可行的做法,这样也能让模型更清楚地看到你在问什么。
如何总结一份超过上限长度的文档?
把它拆开,在同一段对话里按部分逐个处理,这正是message_too_long提示本身给出的建议。先让模型总结每个部分,再总结这些总结。如果某一部分提取出文字后仍然超过10万字符,就把那一部分再拆一次。
我能付费换取更大的上下文预算吗?
不能。这个预算是目录里模型本身的属性,而不是你所选套餐的属性,没有任何设置能提高它。更高的套餐买到的是访问更多模型和更大的月度额度,而不是单轮对话里更多的空间。套餐对应关系写在模型参考手册里。