Перевірте перед застосуванням
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Обійдіть до 128 блоків RIFF WAVE у 12–1048576 байтах із точним оголошеним розміром.
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
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
Перевірте невідомі блоки й доповнення непарної довжини, відхиліть урвані заголовки або дані без декодування звуку.
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