Revise antes de aplicar
Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
Percorra até 128 blocos de uma sequência RIFF WAVE de 12–1048576 bytes com tamanho declarado exato.
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
Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.
Teste blocos desconhecidos e preenchimento ímpar, rejeitando cabeçalhos ou dados truncados sem decodificar áudio.
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 traz a manutenção de formatos de arquivo para um ambiente de programação Windows com o código do projeto e uma conversa com um modelo conectado. Comece pelo comportamento de importação a alterar e identifique o que a aplicação faz com os blocos analisados. Peça ao modelo que examine esse caminho antes de sugerir alterações em um cálculo individual de comprimento.
Uma tarefa usando riff_chunks.py pode investigar um arquivo RIFF cujo bloco de tamanho ímpar precisa de um byte de preenchimento antes do próximo cabeçalho. Forneça um pequeno caso em bytes e os limites esperados dos blocos. Revise conjuntamente o comprimento declarado do contêiner e o comportamento em caso de truncamento, para que a proposta explique por que a próxima leitura começa onde começa.
Após examinar a mudança, execute casos válidos e truncados no seu ambiente de desenvolvimento e verifique o resultado da importação por meio de seu consumidor. Inclua uma identificação de bloco desconhecida se a aplicação precisar preservá-la ou ignorá-la. Mantenha distintas a navegação pelo formato e a interpretação pela aplicação: localizar os bytes dos blocos não comprova que seu conteúdo seja adequado a todas as operações posteriores.
Para assistência do modelo, configure um endpoint compatível com OpenAI ou da Anthropic que seja suportado e credenciais quando necessário. Um modelo de IA abliterado pode ser selecionado onde estiver disponível, com restrições determinadas pelo provedor. As ferramentas e a capacidade de contexto dependem do modelo e do servidor; o caso de teste e o comportamento esperado de importação fornecem a base concreta para aceitar o código.
O preenchimento afeta onde começa o cabeçalho seguinte, de modo que um exemplo de comprimento par pode não detectar um erro de deslocamento. Forneça um arquivo com outro bloco após o bloco preenchido. Verifique os limites retornados e a posição final, não apenas se o primeiro bloco foi encontrado.
Decida conforme o subconjunto do formato e o comportamento da aplicação que pretende suportar. A navegação e a interpretação podem usar políticas diferentes. Peça ao modelo que examine o consumidor antes de alterar o tratamento das identificações e inclua uma desconhecida nos casos de teste se ela for aceita.
Identifique qual limite declarado excede os bytes fornecidos e o comportamento de rejeição esperado pelo chamador. Inclua um cabeçalho ou conteúdo encurtado, conforme adequado. Revise o caminho de importação para que uma análise parcial não seja confundida pela interface com um arquivo carregado com sucesso.
Não. Ela estabelece apenas as verificações de limites cobertas por esse código e seus testes. Interpretar metadados de áudio ou dados de amostras pertence a uma lógica adicional. Concentre a revisão na mudança solicitada no analisador e verifique etapas posteriores quando a aplicação depender delas.
RiffMeadow · Atualizado 2026-10-25