Короткий ответ
Whizi не показывает ошибку о превышении контекста. Ни одна строка в продукте не упоминает окно контекста или лимит токенов, потому что диалог, переросший возможности модели, перед отправкой запроса молча обрезается под нужный размер, а не отклоняется. Об этом ничего не сообщается. Если кажется, что модель забыла середину длинного разговора, дело именно в этом.
Четыре вещи действительно отклоняют запрос напрямую, и каждая называет себя сама:
| Сообщение | 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 | Одно сообщение, включая текст, извлечённый из ваших файлов, превышает 100,000 символов |
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 | Системный промпт длиннее 32,000 символов |
{count} в строке про лимит символов подставляется вашим реальным числом, отформатированным с разделителями тысяч. Код рядом с каждой строкой это то, что видно в сетевой трассировке, даже когда интерфейс показывает только фразу.
Если вы видели сообщение, называющее длину контекста или количество токенов, оно пришло не от Whizi. Перейдите сразу к последнему разделу.
Бюджет, который получает каждая модель, и что происходит после его исчерпания
Каждая модель в каталоге получает одинаковый бюджет на один ход: 40,000 входных токенов и 20,000 выходных. Единственное исключение, канадский агент CPA, получает 55,000 входных токенов и 40,000 выходных.
Когда диалог превышает этот бюджет, бэкенд молча обрезает историю до бюджета токенов модели, вместо того чтобы отклонить запрос. Тут нет ни уведомления, ни баннера, ни кода ошибки.
Количество токенов, по которому Whizi выполняет обрезку, это оценка, а не реальный токенизатор. Она может недосчитать по сравнению с настоящим токенизатором до 1.66 раза на JSON, поэтому к входному лимиту применяется запас в 1.8 раза, чтобы покрыть худший измеренный случай.
Переключение на модель с большим окном контекста не увеличивает отправляемый объём
Это самое частое неверное решение. Входной бюджет в 40,000 токенов фиксирован: он одинаков и для модели с окном в миллион токенов, и для модели с окном в 200,000 токенов. Перенос длинного диалога с одной модели с большим окном на другую ничего не меняет в том, сколько текста будет отправлено.
Размер окна контекста меняет бюджет только в одну сторону, вниз. Любая модель с окном меньше 93,000 токенов получает не фиксированный, а меньший, пропорциональный бюджет, при этом вывод ограничен 40 процентами окна, а 1,000 токенов удерживается как запас безопасности. 31 модель в каталоге ограничена таким образом, и самое маленькое окно среди них составляет 6,144 токена.
Так что переключение, которое реально помогает, это противоположность тому, что пробуют люди: уход с маленькой, урезанной модели на обычную. Переход между двумя моделями с большим окном ничего не меняет в длине. О том, как ведёт себя переключение моделей в середине разговора, рассказано в статье переключение моделей в середине разговора.
Одна деталь, стоящая за цифрой 93,000, полезная, если вы разбираетесь, почему модель отклонила что-то небольшое: OpenRouter засчитывает в окно модели входные токены плюс запрошенный максимум выходных, а не только вход.
Длинная загрузка обрезается, и это сообщается
Загрузки, как правило, и есть причина, по которой одно сообщение превышает 100,000 символов, потому что файлы 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 сообщение длиннее примерно 6,000 символов направляется на длинную ступень за 4 кредита, из расчёта, что такое длинное сообщение это вставленный документ, а не вопрос. Короткий вопрос направляется на быструю ступень за 1 кредит. Шкала кредитов приведена в статье как работают кредиты.
Закреплённые файлы проекта учитываются в промпте на каждом ходу
Закреплённый файл проекта присоединяется как текст промпта на каждом отдельном ходу в этом проекте, а не один раз, и именно поэтому изображения намеренно исключены из закрепляемых типов файлов.
У ограничений своя логика: каждый закреплённый файл даёт не более 32,000 символов извлечённого текста, а весь блок проекта ограничен 120,000 символами, при не более чем 10 закреплённых файлах. Пользовательские инструкции проекта могут занимать до 32,000 символов.
Закреплённые файлы и инструкции пересобираются в промпт на каждом ходу в этом проекте, внутри того же входного бюджета, что и сам диалог. Если чат проекта, кажется, теряет нить быстрее обычного, открепите файлы, о которых вы сейчас не спрашиваете.
Если вы всё же увидели ошибку о длине контекста
Значит, она пришла от провайдера модели, а не от Whizi, и добралась до вас через сквозную передачу. Любой сбой на стороне провайдера, не связанный с ограничением частоты запросов, возвращается как HTTP 502 с кодом provider_error, несущий сообщение провайдера, обрезанное до 300 символов. Когда тело ошибки провайдера вообще не удаётся разобрать, вы получаете вместо этого The model provider rejected the request.
Отказ провайдера по длине будет называть длину контекста и количество токенов. Эти цифры это провайдер, считающий ваш запрос против окна меньшего, чем бюджет, отправленный Whizi, и именно это нужно посмотреть поддержке.
Никакая настройка интерфейса это не меняет. Переключитесь на другую модель, чтобы получить ответ, и отправьте поддержке точное сообщение вместе с цифрами.
Ещё две строки, которые люди принимают за проблему длины. Generation failed mid-stream. и The model stream was interrupted. это обрывы соединения посреди ответа, а не отказы по длине. Их стоит повторить. Too many requests. Please wait and try again. это ограничение частоты в 10 сообщений в минуту, которое тоже не имеет отношения к длине.
- У Whizi нет ошибки о превышении контекста: диалог молча обрезается
- Каждая модель получает фиксированный бюджет в 40,000 входных и 20,000 выходных токенов на ход
- Канадский агент CPA единственное исключение: 55,000 на входе и 40,000 на выходе
- Окно меньше 93,000 токенов снижает этот бюджет, но никогда не повышает его
- Одно сообщение ограничено 100,000 символами, включая извлечённый текст файлов
- Один запрос несёт не более 100 сообщений истории
- Только самое последнее сообщение с вложением пересылает свои вложения
- Закреплённый файл проекта присоединяется как текст промпта на каждом ходу в этом проекте
- В режиме Auto сообщение длиннее примерно 6,000 символов направляется на длинную ступень за 4 кредита
- Сообщение, называющее длину контекста, пришло от провайдера: переключите модель и сообщите поддержке
Частые вопросы
Есть ли у Whizi ошибка о превышении контекста?
Не о контексте как таковом. Сообщения о длине, которые Whizi действительно показывает, это счётчики, а не окна: 100,000 символов в одном сообщении, 100 сообщений в одном запросе, 32,000 символов в системном промпте и 413 Request is too large. для всего тела запроса. Если сообщение перед вами называет количество токенов или длину контекста, оно пришло через сквозную передачу ошибки 502 и принадлежит провайдеру модели.
Почему модель забыла что-то, сказанное мной раньше в чате?
Потому что это было вырезано из запроса ещё до его отправки. Бэкенд молча обрезает историю до бюджета токенов модели, вместо того чтобы отклонять запрос, поэтому нет ни ошибки для чтения, ни настройки, которая это отключает. Начать новый разговор при смене темы это практичный ответ.
Позволит ли переключение на модель с большим окном контекста отправлять больше?
Нет. Входной бюджет фиксирован на уровне 40,000 токенов для каждой модели в каталоге, так что окно в миллион токенов и окно в 200,000 токенов получают одинаковую долю вашего диалога.
Что значит "превышен лимит в 100,000 символов"?
Одно сообщение превысило лимит на сообщение в 100,000 символов и было отклонено с HTTP 400 и кодом message_too_long. Текст, извлечённый из приложенного PDF, файла Word или таблицы, учитывается в том же лимите, так что обычная причина это загрузка, а не набор текста. Решение указано в самом сообщении: приложите файл поменьше, или спрашивайте про один раздел за раз в том же диалоге.
Что значит "превышен лимит в 100 сообщений"?
Один запрос содержал историю более чем из 100 сообщений и был отклонён с HTTP 400 и кодом too_many_messages. Это ограничение на то, что может нести один запрос, а не на то, каким долгим может быть чат. Начать новый разговор для следующей темы это практичный ответ, который к тому же даёт модели более чёткое представление о том, что вы спрашиваете.
Как обобщить документ длиннее лимита?
Разбейте его и работайте раздел за разделом в одном диалоге, именно это рекомендует сама строка message_too_long. Попросите резюме каждого раздела, а затем резюме этих резюме. Если отдельный раздел всё равно превышает 100,000 символов после извлечения текста файла, разбейте и этот раздел.
Можно ли заплатить за больший бюджет контекста?
Нет. Бюджет это свойство модели в каталоге, а не вашего тарифа, и нигде нет настройки, повышающей его. Более высокий тариф даёт доступ к большему числу моделей и больший месячный лимит, а не больше места в одном ходу. Соответствие тарифов приведено в статье справочник моделей.