简短答案
Whizi将单个附件的上限设为10MB,一次提示中所有附件合计不超过20MB,错误提示会说明是哪一层拒绝了这个文件。
各项上限一览:
| 上限项目 | 数值 | 适用范围 |
|---|---|---|
| 单个附件 | 10 MB | 聊天消息中附加的任意文件 |
| 一次提示的全部附件合计 | 20 MB | 整个提示 |
| 每次提示的附件数量 | 4个 | 由后端强制执行,仅针对最后一条用户消息 |
| 输入框中暂存的文件 | 6个 | 网页版输入框 |
| 直接上传图片 | 8 MB | 图片上传接口 |
| 每分钟图片上传次数 | 10次 | 按账号,按UTC分钟计算 |
| 每天图片上传次数 | 60次 | 按账号,按UTC天计算 |
| 项目固定文件 | 10 MB,10个文件 | 每个项目 |
| 单条聊天消息中的文字 | 100,000个字符 | 包含从你的文件中提取的文字 |
附件本身不消耗额度,所以一次被拒绝的上传不会让你有任何损失,成功的上传同样如此。
文件太大
根据是哪一层拦下了文件,大小超限时可能出现四种不同的提示。
| 提示 | HTTP状态码 | 触发条件 |
|---|---|---|
File {name} exceeds 10MB limit. Please upload a smaller file. | 无,网页提示 | 你通过附加按钮选择了单个超过10MB的文件 |
One or more files exceed the 10MB size limit. Please upload smaller files. | 无,网页提示 | 你拖放了多个文件,其中至少一个超过10MB |
Attachments must be 10 MB or smaller. | 413 attachment_too_large | 后端拒绝了该文件,先核对声明的长度,再核对实际字节数 |
Attachments are limited to 20 MB per prompt. | 413 attachments_too_large | 每个文件都小于10MB,但合计超过20MB |
前两条提示中的{name}会替换成你的文件名。
系统会先检查声明的长度,再检查实际字节数,所以把大文件的大小改小声明并不能绕过10MB的检查。
四种情况的解决办法是一样的:一次发送的内容少一点。把一份很长的PDF拆分成你真正需要模型阅读的部分,只附上你要问的那部分。只有携带附件的最新一条用户消息,其附件才会被转发给模型提供方,所以把文件附加在提出问题的那条消息上,而不要依赖对话中更早发送的文件。
直接上传的图片有自己更低的上限:Image is too large. Please upload an image under 8 MB. 对应HTTP 413 upload_too_large。它会触发两次检查,一次是声明的Content-Length超过上限的两倍以上,另一次是实际文件大小达到8 MiB,所以即便长度声明有误也会被两头拦住。请把图片重新导出为更小的尺寸或更低的分辨率。
项目固定文件的上限同样是10MB,有自己的提示:网页提示为{name} is over the 10 MB limit.,HTTP 413 project_file_too_large对应的提示为Project files must be 10 MB or smaller.。
文件类型不被接受
存在三份不同的允许类型清单,因为聊天附件、直接图片上传和项目固定文件是三条不同的路径。
| 提示 | HTTP状态码 | 接受的类型 |
|---|---|---|
Choose an image, PDF, text, Markdown, CSV, or JSON file. | 415 unsupported_attachment_type | 聊天附件:JPEG、PNG、WebP、GIF、PDF、TXT、Markdown、CSV、JSON |
Unsupported image type. Please upload a JPG, PNG, WebP, or GIF. | 400 unsupported_image_type | 图片上传接口:image/jpeg、image/png、image/webp、image/gif |
Choose a PDF, Word, Excel, text, Markdown, CSV, or JSON file. | 415 unsupported_project_file_type | 项目固定文件,故意不包含图片 |
Unsupported file type. Please upload an image, document (PDF, Word), spreadsheet (Excel), or text-based file. | 无,网页提示 | 输入框在你选择文件时对其进行分类 |
{name} is not a supported file type. | 无,网页提示 | 你为项目选择了一张图片,或其他不受支持的文件 |
当你通过附加按钮选择文件时,输入框会显示这条不支持类型的提示。拖放操作在同样的情况下则保持沉默,所以一个被拖入却从未出现在输入框里、也没有产生任何消息的文件,最可能就是不受支持的类型。改用附加按钮选择它,你就会看到指出问题所在的提示。
GIF是两条路径唯一不一致的地方。网页输入框会直接用GIF files are not supported. Please upload a PNG or JPEG image.拒绝它,而后端的图片上传接口其实接受image/gif。在网页上,先把GIF转换成PNG或JPEG帧再上传。
对于清单之外的其他类型,最快的办法是转换格式:把它另存为PDF、CSV或纯文本再上传。完整的受支持列表见支持的文件类型。
文件的实际内容和它声称的不一致
在类型清单之外还有两项检查会运行,各自产生自己的提示。
The file extension does not match its content type.是HTTP 415,在聊天附件上代码为attachment_extension_mismatch,在项目文件上为project_file_extension_mismatch。当文件名的扩展名和随文件一起发送的内容类型不一致时,就会触发它。
The selected file does not match its declared format.是HTTP 415,在聊天附件上代码为invalid_attachment,在项目文件上为invalid_project_file。这是一项签名检查:系统读取文件的前几个字节,并与声明的MIME类型进行比对,所以一个被改名而不是被转换过的文件会在这里被发现。
常见原因是改名。把report.txt改成report.pdf并不会让它变成PDF,而这项检查恰恰能发现这一点。请在文件对应的应用程序里打开它,导出或另存为你想要的格式,再上传结果文件。
文件太多,或上传次数太多
数量限制有自己的一套提示,而且数字并不统一,因为输入框和后端计算的是不同的东西。
| 提示 | HTTP状态码 | 触发条件 |
|---|---|---|
You can only upload up to 6 files per message. | 无,网页提示 | 一次选择或拖放会让输入框中暂存的文件超过6个 |
Message {n} may carry up to 4 valid attachments, and only on the final user message. | 400 invalid_attachments | 一次提示中的附件超过4个,或附件出现在非最后一条用户消息上 |
Message {n} repeats an attachment. | 400 invalid_attachments | 同一个附件id在同一条消息中出现了两次 |
Projects hold up to 10 files. Remove one first. | 409 project_file_limit_reached | 一个项目中出现了第11个固定文件 |
This project already holds 10 files. Remove one first. | 无,网页提示 | 在上传开始之前就显示,此时列表已经满了 |
速率限制和数量限制是分开的。Upload rate limit reached. Please wait a moment before uploading another image.是HTTP 429 upload_rate_limited,在单个UTC分钟内图片上传超过10次后触发。等待时间是一分钟。
Daily upload limit reached. Please try again tomorrow.是HTTP 429 upload_daily_limit_reached,在单个UTC天内图片上传达到60次后触发。重置时间是UTC午夜,而不是你所在时区的午夜。项目文件上传有自己独立的上限,为每分钟10次。
上传成功了,但文件读不出来
当PDF、Word或表格文件的提取过程报错时,上传本身其实是成功的,失败发生在读取内容这一步。每种格式都有自己的提示。
| 提示 | 通常意味着什么 |
|---|---|
Could not read {name}. The PDF may be corrupted or password-protected. | PDF文字提取报错,常见情况是PDF设置了密码保护 |
Could not read {name}. Please try re-saving the document. | Word提取报错 |
Could not read {name}. The spreadsheet may be corrupted. | 表格提取报错 |
Could not read {name}. Older .xls files are not supported. Please re-save the file as .xlsx and upload it again. | 旧版二进制Excel文件,提示本身就是解决办法 |
Could not read {name}. | 纯文本提取报错 |
No readable text found in this file, so the model cannot see it. | 项目固定文件,提取结果完全为空 |
对于设有密码保护的PDF,请在你的PDF阅读器中解除密码,再上传解锁后的副本。对于旧版.xls文件,打开它并另存为.xlsx。扫描件PDF提取不出任何内容的情况,在与PDF对话中有说明。
文件也可能被成功读取,随后又被截断。单条聊天消息的上限是100,000个字符,从文件中提取的文字也计入其中。当提取的文字放不下时,你会看到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.]。模型只会收到截止到这个标记为止的文字,之后的内容一概收不到,所以一个看起来完整的回答,实际依据的可能只是一份不完整的文档。
如果整条消息被直接拒绝而不是被截断,后端会返回HTTP 400 message_too_long,提示为This message is {count} characters, over the 100,000 character limit. Attach a shorter file, or ask about one section at a time.,其中{count}是你的实际字符数。
上传失败,原因不明显
有几条提示意味着上传根本没有完成,而不是因为内容本身被拒绝。
| 提示 | 含义 | 该怎么做 |
|---|---|---|
Failed to retrieve session token. | 在发起上传请求前,未能获取你的会话令牌 | 刷新页面并重新登录,然后重试 |
Failed to upload image: {statusText} | 图片上传的响应返回了非成功状态,并附带了服务器的状态文本 | 重试。如果反复出现,状态文本就是客服需要的信息 |
Image URL not returned by the server. | 上传成功了,但响应中没有携带图片地址 | 重试上传 |
Could not upload your attachments. | 上传步骤在并排对比视图中报错 | 重试,或在普通聊天中发送同样的提示 |
Could not upload {name}. | 项目文件上传报错,且没有携带具体信息 | 重试 |
Invalid request和No file uploaded | HTTP 400 invalid_upload和no_file_uploaded。请求不是multipart/form-data格式,表单数据解析失败,或请求体中没有文件字段 | 重试上传 |
Media could not be stored. | 存储写入没有返回任何对象 | 重试一次。如果仍然出现,请联系客服 |
Stored media metadata was invalid. | 已存储的媒体记录无法被读回 | 重试一次。如果仍然出现,请联系客服 |
Something went wrong. Please retry. | HTTP 500,任何未被处理的后端错误 | 先重试一次,仍不行再联系客服 |
另一类提示意味着文件已经不存在了,而不是没能到达。One or more attachments could not be found.是HTTP 404 attachment_not_found,当某个附件id无法对应到属于你的已存储媒体时返回。Media not found.是HTTP 404 media_not_found,Media has expired.是HTTP 404 media_expired,在已存储对象超出保留期限(最长30天)后返回。一段旧对话仍可能引用一个已经不存在的文件,重新上传它即可。保留期限的说明见数据与隐私。
- 单个附件上限为10MB,一次提示总计上限为20MB
- 输入框最多可暂存6个文件,后端每次提示最多接受4个附件
- 直接上传图片的上限为8MB,每分钟10次、每UTC天60次
- 改文件名不会转换文件格式,签名检查会发现这一点
- 拖放对不支持的类型保持沉默,附加按钮会告诉你原因
- 网页输入框会拒绝GIF,请转换成PNG或JPEG
- 旧版.xls文件必须另存为.xlsx
- 设有密码保护的PDF必须先解锁才能被读取
- 从文件中提取的文字计入100,000字符的消息上限
- 附件不消耗额度,所以上传失败也不会有任何损失
常见问题
"Attachments must be 10 MB or smaller."是什么意思?
你附加的文件超过了单个文件10MB的上限,后端用HTTP 413和代码attachment_too_large拒绝了它。这条提示只针对单个文件的上限。四个文件各自小于10MB,但合计超过20MB时,会返回另一条提示,"Attachments are limited to 20 MB per prompt.",代码为attachments_too_large。同一提示中的第五个附件会返回"Message {n} may carry up to 4 valid attachments, and only on the final user message.",代码为invalid_attachments。
为什么一个能正常打开的文件会出现"The file extension does not match its content type."?
扩展名检查在签名检查之前运行,所以一个扩展名和声明的内容类型不一致的文件会被这条提示拒绝,根本到不了比对文件魔数的那一步,也就不会返回"The selected file does not match its declared format."。不同上传路径的代码也不同:聊天附件返回attachment_extension_mismatch和invalid_attachment,项目文件返回project_file_extension_mismatch和invalid_project_file,所以网络请求记录里的代码能告诉你是哪条上传路径拒绝了文件。
我把文件拖进聊天窗口,什么反应都没有,也没有报错,为什么?
最可能的原因是文件类型不受支持,而拖放这条路径故意对此保持沉默。被拖入的文件也不会出现在暂存列表里,所以既没有东西可以移除,屏幕上也没有任何解释这种沉默的信息。但并不是每次拖放都是无声的:如果一次拖放会让输入框中暂存的文件超过6个,确实会弹出提示,"You can only upload up to 6 files per message.",而不受支持的类型走的是同一条路径却什么都不会弹出。
怎样才能绕过"Upload rate limit reached. Please wait a moment before uploading another image."?
等待就行。它是HTTP 429,在单个UTC分钟内图片上传超过10次时触发。它背后的计数器属于图片上传接口,而不是笼统的所有附件,项目文件接口有自己独立的计数器,所以把文件固定到项目里和上传图片并不会互相占用额度。不管你走的是哪条接口,账号在所有接口上还共同受到每分钟30次请求的总上限约束。
我的PDF上传成功了,但模型说看不到内容,出了什么问题?
上传成功了,出问题的是提取内容这一步。设有密码保护或已损坏的PDF会产生提示"Could not read {name}. The PDF may be corrupted or password-protected."。一个被固定到项目、但提取结果为空的PDF,会在项目里的文件旁边显示"No readable text found in this file, so the model cannot see it."。第一种情况,去掉密码后重新上传即可。第二种情况,是没有文字层的扫描件,在与PDF对话页面中有说明。
升级套餐会改变上传相关的任何事情吗?
它改变的是你能把文件发给哪些模型。任何套餐下附件都不消耗额度,所以上传本身从来都不是你的套餐在计量的东西。入门版能使用四个模型标识,专业版在此基础上再增加37个,目录里的其余所有模型都需要Powerhouse。