A resposta rápida
O Whizi limita cada anexo individual a 10 MB e todos os anexos de um mesmo prompt a 20 MB no total, e a mensagem de erro indica qual camada recusou o arquivo.
Os limites, todos em um só lugar:
| Limite | Valor | Onde se aplica |
|---|---|---|
| Anexo único | 10 MB | Qualquer arquivo anexado a uma mensagem de chat |
| Todos os anexos em um prompt | 20 MB | O prompt como um todo |
| Anexos por prompt | 4 | Aplicado pelo backend, apenas na última mensagem do usuário |
| Arquivos preparados no compositor | 6 | O compositor do site |
| Upload direto de imagem | 8 MB | A rota de upload de imagem |
| Uploads de imagem por minuto | 10 | Por conta, por minuto UTC |
| Uploads de imagem por dia | 60 | Por conta, por dia UTC |
| Arquivo fixado no projeto | 10 MB, 10 arquivos | Por projeto |
| Texto em uma mensagem de chat | 100,000 caracteres | Inclui o texto extraído dos seus arquivos |
Anexos não custam créditos, então um upload recusado não custa nada e um upload bem-sucedido também não.
O arquivo é grande demais
Quatro mensagens diferentes podem aparecer em uma recusa por tamanho, dependendo de qual camada capturou o arquivo.
| Mensagem | Código HTTP | Gatilho |
|---|---|---|
File {name} exceeds 10MB limit. Please upload a smaller file. | nenhum, um toast do site | Você escolheu um único arquivo com mais de 10 MB pelo botão de anexar |
One or more files exceed the 10MB size limit. Please upload smaller files. | nenhum, um toast do site | Você arrastou arquivos e pelo menos um tem mais de 10 MB |
Attachments must be 10 MB or smaller. | 413 attachment_too_large | O backend recusou o arquivo, verificado primeiro pelo tamanho declarado e depois pelos bytes reais |
Attachments are limited to 20 MB per prompt. | 413 attachments_too_large | Cada arquivo tem menos de 10 MB, mas juntos somam mais de 20 MB |
O {name} nos dois primeiros é preenchido com o nome do seu arquivo.
O tamanho declarado é verificado antes dos bytes reais, então declarar novamente um tamanho menor não faz um arquivo grande passar pela verificação de 10 MB.
A correção para os quatro casos é a mesma: envie menos de uma vez. Divida um PDF longo nas seções que você realmente quer que sejam lidas e anexe a seção sobre a qual está perguntando. Apenas a mensagem mais recente do usuário que carrega anexos tem seus anexos encaminhados ao provedor, então anexe o arquivo à mensagem que faz a pergunta, em vez de contar com uma enviada antes na conversa.
Imagens enviadas diretamente têm seu próprio limite, mais baixo: Image is too large. Please upload an image under 8 MB. é HTTP 413 upload_too_large. Ele dispara duas vezes: uma pelo Content-Length declarado acima do dobro do limite e outra pelo tamanho real do arquivo em 8 MiB, então um tamanho declarado incorretamente é pego de qualquer forma. Reexporte a imagem em um tamanho menor ou em uma resolução mais baixa.
Para arquivos fixados no projeto o limite também é 10 MB, com mensagens próprias: {name} is over the 10 MB limit. como o toast do site e Project files must be 10 MB or smaller. como HTTP 413 project_file_too_large.
O tipo de arquivo não é aceito
Existem três listas diferentes de tipos permitidos, porque anexos de chat, uploads diretos de imagem e arquivos fixados no projeto são três caminhos diferentes.
| Mensagem | Código HTTP | O que aceita |
|---|---|---|
Choose an image, PDF, text, Markdown, CSV, or JSON file. | 415 unsupported_attachment_type | Anexos de chat: JPEG, PNG, WebP, GIF, PDF, TXT, Markdown, CSV, JSON |
Unsupported image type. Please upload a JPG, PNG, WebP, or GIF. | 400 unsupported_image_type | A rota de upload de imagem: image/jpeg, image/png, image/webp, image/gif |
Choose a PDF, Word, Excel, text, Markdown, CSV, or JSON file. | 415 unsupported_project_file_type | Arquivos fixados no projeto, que excluem imagens propositalmente |
Unsupported file type. Please upload an image, document (PDF, Word), spreadsheet (Excel), or text-based file. | nenhum, um toast do site | O compositor classificando um arquivo escolhido |
{name} is not a supported file type. | nenhum, um toast do site | Um arquivo de projeto escolhido que é uma imagem, ou de outra forma não suportado |
O compositor mostra esse toast de tipo não suportado quando você escolhe um arquivo pelo botão de anexar. Arrastar e soltar permanece silencioso no mesmo caso, então um arquivo solto que nunca aparece no compositor e não produz nenhuma mensagem é muito provavelmente um tipo não suportado. Escolha-o pelo botão de anexar e você receberá o toast que indica o problema.
GIFs são o único ponto em que os dois caminhos discordam. O compositor do site os rejeita totalmente com GIF files are not supported. Please upload a PNG or JPEG image., enquanto a rota de upload de imagem do backend aceita image/gif. No site, converta o GIF para um quadro em PNG ou JPEG e envie esse arquivo.
Para qualquer outro tipo fora da lista, o caminho mais rápido é uma conversão de formato: salve como PDF, CSV ou texto simples e envie esse arquivo. A lista completa de tipos aceitos está em tipos de arquivo suportados.
O arquivo não corresponde ao que afirma ser
Duas verificações rodam além da lista de tipos, e cada uma produz sua própria mensagem.
The file extension does not match its content type. é HTTP 415, código attachment_extension_mismatch em um anexo de chat e project_file_extension_mismatch em um arquivo de projeto. Ela dispara quando a extensão no nome do arquivo e o tipo de conteúdo enviado com ele não coincidem.
The selected file does not match its declared format. é HTTP 415, código invalid_attachment em um anexo de chat e invalid_project_file em um arquivo de projeto. Essa é uma verificação de assinatura: os primeiros bytes do arquivo são lidos e comparados com o tipo MIME declarado, então um arquivo que foi renomeado em vez de convertido é pego aqui.
A causa mais comum é uma renomeação. Mudar report.txt para report.pdf não o transforma em um PDF, e é isso que essa verificação percebe. Abra o arquivo em seu próprio aplicativo e exporte ou salve como o formato desejado, depois envie o resultado.
Muitos arquivos, ou muitos uploads
Limites de quantidade produzem suas próprias mensagens, e não são todos o mesmo número, porque o compositor e o backend contam coisas diferentes.
| Mensagem | Código HTTP | Gatilho |
|---|---|---|
You can only upload up to 6 files per message. | nenhum, um toast do site | Uma escolha ou um arraste levaria o compositor além de 6 arquivos preparados |
Message {n} may carry up to 4 valid attachments, and only on the final user message. | 400 invalid_attachments | Mais de 4 anexos em um prompt, ou anexos em uma mensagem que não é o último turno do usuário |
Message {n} repeats an attachment. | 400 invalid_attachments | O mesmo id de anexo aparece duas vezes na mesma mensagem |
Projects hold up to 10 files. Remove one first. | 409 project_file_limit_reached | Um 11º arquivo fixado em um projeto |
This project already holds 10 files. Remove one first. | nenhum, um toast do site | Exibido antes mesmo do início do upload, quando a lista já está cheia |
Limites de taxa são separados das contagens. Upload rate limit reached. Please wait a moment before uploading another image. é HTTP 429 upload_rate_limited, e dispara após mais de 10 uploads de imagem em um único minuto UTC. A espera é de um minuto.
Daily upload limit reached. Please try again tomorrow. é HTTP 429 upload_daily_limit_reached, após 60 uploads de imagem em um dia UTC. A redefinição ocorre à meia-noite UTC, não à meia-noite no seu fuso horário. Uploads de arquivo de projeto têm seu próprio teto de 10 por minuto.
O upload funcionou, mas o arquivo não pôde ser lido
Quando a extração de um PDF, Word ou planilha falha, o upload em si teve sucesso e a falha está na leitura do conteúdo. Cada formato tem sua própria mensagem.
| Mensagem | O que geralmente significa |
|---|---|
Could not read {name}. The PDF may be corrupted or password-protected. | A extração de texto do PDF falhou. Um PDF protegido por senha é o caso comum |
Could not read {name}. Please try re-saving the document. | A extração do Word falhou |
Could not read {name}. The spreadsheet may be corrupted. | A extração da planilha falhou |
Could not read {name}. Older .xls files are not supported. Please re-save the file as .xlsx and upload it again. | Um arquivo binário legado do Excel. A mensagem já é a correção |
Could not read {name}. | A extração de texto simples falhou |
No readable text found in this file, so the model cannot see it. | Um arquivo fixado no projeto cuja extração não produziu nada |
Para um PDF protegido por senha, remova a senha no seu leitor de PDF e envie a cópia desbloqueada. Para um .xls mais antigo, abra-o e salve como .xlsx. Um PDF escaneado que não extrai texto é abordado em conversar com um PDF.
Um arquivo também pode ser lido com sucesso e depois cortado. Uma única mensagem de chat tem um limite de 100,000 caracteres, e o texto extraído de arquivos conta para esse total. Quando o texto extraído não cabe, você vê Your upload was too large, so only the first part of it was sent. Ask about a smaller section for full coverage. e a própria mensagem carrega o marcador [Attachment truncated: the upload was larger than one message can carry, so the content past this point was not included.] no ponto de corte. O modelo recebe o texto até esse marcador e nada depois dele, então uma resposta que parece completa pode se basear em um documento parcial.
Se a mensagem inteira for recusada em vez de cortada, o backend retorna HTTP 400 message_too_long com This message is {count} characters, over the 100,000 character limit. Attach a shorter file, or ask about one section at a time., onde {count} é sua contagem real de caracteres.
O upload falhou sem motivo aparente
Algumas mensagens indicam que o upload nunca foi concluído, em vez de ter sido recusado por seus méritos.
| Mensagem | O que significa | O que fazer |
|---|---|---|
Failed to retrieve session token. | Seu token de sessão não pôde ser obtido antes da chamada de upload | Atualize a página e faça login novamente, depois tente de novo |
Failed to upload image: {statusText} | A resposta do upload de imagem voltou não OK, com o texto de status do servidor anexado | Tente novamente. Se persistir, o texto de status é o que o suporte precisa |
Image URL not returned by the server. | O upload teve sucesso, mas a resposta não trouxe uma URL de imagem | Tente o upload novamente |
Could not upload your attachments. | A etapa de upload falhou na visualização de comparação lado a lado | Tente novamente, ou envie o mesmo prompt em um chat normal |
Could not upload {name}. | Um upload de arquivo de projeto falhou sem mensagem própria | Tente novamente |
Invalid request e No file uploaded | HTTP 400 invalid_upload e no_file_uploaded. A requisição não era multipart/form-data, os dados do formulário não puderam ser interpretados, ou o corpo não trazia um campo de arquivo | Tente o upload novamente |
Media could not be stored. | A gravação no armazenamento não retornou um objeto | Tente uma vez mais. Se persistir, contate o suporte |
Stored media metadata was invalid. | A linha de mídia armazenada não pôde ser lida de volta | Tente uma vez mais. Se persistir, contate o suporte |
Something went wrong. Please retry. | HTTP 500. Qualquer erro não tratado do backend | Tente uma vez mais, depois contate o suporte |
Uma família diferente de mensagens significa que o arquivo sumiu, em vez de ter falhado ao chegar. One or more attachments could not be found. é HTTP 404 attachment_not_found, retornado quando um id de anexo não resolve para uma mídia armazenada pertencente a você. Media not found. é HTTP 404 media_not_found, e Media has expired. é HTTP 404 media_expired, retornado assim que o objeto armazenado passa da janela de retenção, que é de até 30 dias. Uma conversa antiga ainda pode manter uma referência a um arquivo que já não existe, então reenvie-o. O texto sobre retenção está em dados e privacidade.
- Um anexo tem limite de 10 MB, um prompt de 20 MB no total
- O compositor prepara até 6 arquivos; o backend aceita 4 anexos por prompt
- Uploads diretos de imagem têm limite de 8 MB, 10 por minuto e 60 por dia UTC
- Renomear um arquivo não o converte: a verificação de assinatura pega isso
- Arrastar e soltar fica silencioso em um tipo não suportado, o botão de anexar avisa
- GIFs são rejeitados pelo compositor do site, então converta para PNG ou JPEG
- Arquivos .xls mais antigos precisam ser salvos novamente como .xlsx
- Um PDF protegido por senha precisa ser desbloqueado antes de poder ser lido
- O texto extraído de arquivos conta para o limite de 100,000 caracteres da mensagem
- Anexos não custam créditos, então um upload que falha não custa nada
Perguntas frequentes
O que significa "Attachments must be 10 MB or smaller."?
O arquivo que você anexou está acima do limite de 10 MB por arquivo, e o backend o recusou com HTTP 413 e o código attachment_too_large. Essa mensagem é apenas para o limite por arquivo. Quatro arquivos que têm cada um menos de 10 MB, mas juntos somam mais de 20 MB, retornam uma mensagem diferente, "Attachments are limited to 20 MB per prompt.", com o código attachments_too_large. Um quinto anexo no mesmo prompt retorna "Message {n} may carry up to 4 valid attachments, and only on the final user message." com o código invalid_attachments.
Por que "The file extension does not match its content type." aparece em um arquivo que abre sem problemas?
A verificação de extensão roda antes da verificação de assinatura, então um arquivo cuja extensão não coincide com o tipo de conteúdo declarado é recusado com essa mensagem e nunca chega à comparação de magic bytes que retorna "The selected file does not match its declared format." Os códigos diferem conforme o caminho de upload: um anexo de chat retorna attachment_extension_mismatch e invalid_attachment, um arquivo de projeto retorna project_file_extension_mismatch e invalid_project_file, então o código em um registro de rede indica qual caminho de upload recusou o arquivo.
Eu arrastei um arquivo para o chat e nada aconteceu, sem nenhum erro. Por quê?
O motivo mais provável é um tipo de arquivo não suportado, e o caminho de arrastar e soltar deliberadamente não diz nada sobre isso. O arquivo solto também nunca aparece na lista preparada, então não há nada para remover e nada na tela para explicar o silêncio. Nem todo arraste é silencioso: um arraste que levaria o compositor além de 6 arquivos preparados de fato exibe um toast, "You can only upload up to 6 files per message.", no mesmo caminho onde um tipo não suportado não exibe nenhum.
Como faço para superar "Upload rate limit reached. Please wait a moment before uploading another image."?
Você espera. É HTTP 429, disparado por mais de 10 uploads de imagem em um único minuto UTC. O contador por trás disso pertence à rota de upload de imagem, não aos anexos em geral, e a rota de arquivo de projeto mantém um contador separado, então fixar arquivos em um projeto e enviar imagens não consomem a mesma cota. Seja qual for a rota, a conta também está sujeita a um teto compartilhado de 30 requisições por minuto em todas as rotas.
Meu PDF foi enviado, mas o modelo diz que não consegue ver o conteúdo. O que deu errado?
O upload chegou e a etapa de extração é que falhou. Um PDF protegido por senha ou corrompido produz o toast "Could not read {name}. The PDF may be corrupted or password-protected." Um PDF fixado em um projeto cuja extração não produziu nada mostra "No readable text found in this file, so the model cannot see it." ao lado do arquivo no projeto. Remova a senha e reenvie para o primeiro caso. O segundo caso, uma digitalização sem camada de texto, é abordado na página sobre conversar com um PDF.
Fazer upgrade do meu plano muda alguma coisa nos uploads?
Isso muda para quais modelos você pode enviar um arquivo. Anexos não custam créditos em nenhum plano, então o upload em si nunca é o que o seu plano mede. O Starter alcança quatro identificadores de modelo, o Pro adiciona mais 37 além desses, e todos os outros modelos do catálogo exigem o Powerhouse.