Проверьте перед применением
Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.
RiffMeadow — AI-клиент для Windows для разбора обхода RIFF-чанков. Откройте папку проекта, обсудите с совместимой моделью объявленные размеры, выравнивание и неизвестные чанки, затем проверьте предлагаемые изменения парсера.
def riff_chunks(wire):
if type(wire) is not bytes or not 12 <= len(wire) <= 1048576:
raise ValueError("riff.input")
if wire[:4] != b"RIFF" or wire[8:12] != b"WAVE" or int.from_bytes(wire[4:8], "little")+8 != len(wire):
raise ValueError("riff.header")
chunks, pos = [], 12
while pos < len(wire):
if len(chunks) == 128 or pos+8 > len(wire):
raise ValueError("riff.chunk")
tag = wire[pos:pos+4]
size = int.from_bytes(wire[pos+4:pos+8], "little")
start, stop = pos+8, pos+8+size
next_pos = stop+(size & 1)
if next_pos > len(wire):
raise ValueError("riff.truncated")
chunks.append((tag, wire[start:stop]))
pos = next_pos
return chunks
Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.
Базовый URL, учётные данные и доступный сервер.
Проверьте неизвестные блоки и дополнение нечётной длины, отклоняя обрыв заголовков и данных без декодирования звука.
def riff_chunks(wire):
if type(wire) is not bytes or not 12 <= len(wire) <= 1048576:
raise ValueError("riff.input")
if wire[:4] != b"RIFF" or wire[8:12] != b"WAVE" or int.from_bytes(wire[4:8], "little")+8 != len(wire):
raise ValueError("riff.header")
chunks, pos = [], 12
while pos < len(wire):
if len(chunks) == 128 or pos+8 > len(wire):
raise ValueError("riff.chunk")
tag = wire[pos:pos+4]
size = int.from_bytes(wire[pos+4:pos+8], "little")
start, stop = pos+8, pos+8+size
next_pos = stop+(size & 1)
if next_pos > len(wire):
raise ValueError("riff.truncated")
chunks.append((tag, wire[start:stop]))
pos = next_pos
return chunks
RiffMeadow переносит сопровождение файловых форматов в рабочую среду программирования Windows с исходниками проекта и обсуждением с подключённой моделью. Начните с поведения импорта, которое нужно изменить, и определите использование разобранных блоков приложением. Попросите модель изучить этот путь до предложения правок отдельного вычисления длины.
Задача с riff_chunks.py может исследовать файл RIFF, у которого блок нечётного размера требует байта дополнения перед следующим заголовком. Предоставьте небольшой байтовый пример и ожидаемые границы блоков. Проверяйте заявленную длину контейнера вместе с поведением при усечении, чтобы предложение объясняло начальную позицию следующего чтения.
После изучения изменения запустите корректные и усечённые примеры в своей среде разработки и проверьте результат импорта через потребителя. Добавьте незнакомый тег блока, если приложение должно сохранять или пропускать его. Разделяйте обход формата и интерпретацию приложением: обнаружение байтов блока не подтверждает пригодность содержимого для любой последующей операции.
Для помощи модели настройте поддерживаемую конечную точку, совместимую с OpenAI, или Anthropic и учётные данные при необходимости. ИИ-модель с удалёнными механизмами ограничений можно выбрать при наличии; ограничения определяет поставщик. Инструменты и объём контекста зависят от модели и сервера; конкретным основанием принятия кода служат пример и ожидаемое поведение импорта.
Дополнение влияет на начало следующего заголовка, поэтому пример чётной длины может пропустить ошибку смещения. Предоставьте файл с ещё одним блоком после дополненного. Проверяйте возвращённые границы и конечную позицию, а не только обнаружение первого блока.
Решите это по поддерживаемому подмножеству формата и поведению приложения. Обход и интерпретация могут иметь разные политики. Попросите модель изучить потребителя до изменения обработки тегов и включите незнакомый тег в примеры, если он допускается.
Укажите, какая заявленная граница выходит за предоставленные байты и какого отказа ожидает вызывающий код. При необходимости включите укороченный заголовок или полезные данные. Проверьте импорт, чтобы интерфейс не принял частичный разбор за успешную загрузку файла.
Нет. Он подтверждает только проверки границ, охваченные кодом и тестами. Интерпретация метаданных аудио и отсчётов относится к дополнительной логике. Сосредоточьтесь на запрошенном изменении парсера и проверьте поздние этапы, если приложение от них зависит.
RiffMeadow · Обновлено 2026-10-25