Controlla prima di applicare
Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche.
Scorri fino a 128 blocchi di una sequenza RIFF WAVE di 12–1048576 byte con dimensione dichiarata esatta.
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
Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche.
Configura un endpoint compatibile con OpenAI o Anthropic usando URL di base e chiave API, se necessaria. Prova la connessione. Il server locale deve essere in esecuzione; gli strumenti remoti possono trasmettere dati separatamente.
Prova blocchi sconosciuti e riempimento dispari, rifiutando intestazioni o dati troncati senza decodificare audio.
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 porta la manutenzione dei formati di file in un ambiente di programmazione Windows con il sorgente del progetto e una conversazione con un modello collegato. Parti dal comportamento d'importazione da modificare e identifica cosa fa l'applicazione con i blocchi analizzati. Chiedi al modello di esaminare quel percorso prima di suggerire modifiche a un singolo calcolo di lunghezza.
Un compito con riff_chunks.py potrebbe indagare un file RIFF il cui blocco di dimensione dispari richiede un byte di riempimento prima dell'intestazione successiva. Fornisci un piccolo caso di prova in byte e i confini attesi dei blocchi. Esamina insieme la lunghezza dichiarata del contenitore e il comportamento in caso di troncamento, così la proposta spiega perché la lettura successiva inizia in quel punto.
Dopo aver esaminato la modifica, esegui casi di prova validi e troncati nel tuo ambiente di sviluppo e verifica il risultato dell'importazione attraverso il codice utilizzatore. Includi un identificatore di blocco sconosciuto se l'applicazione deve conservarlo o saltarlo. Mantieni distinti l'attraversamento del formato e l'interpretazione dell'applicazione: individuare i byte dei blocchi non dimostra che i loro contenuti siano adatti a ogni operazione successiva.
Per l'assistenza del modello, configura un endpoint supportato compatibile con OpenAI o Anthropic e le credenziali quando richieste. È possibile selezionare un modello IA abliterato dove disponibile, con restrizioni determinate dal fornitore. Strumenti e capacità di contesto dipendono da modello e server; il caso di prova e il comportamento d'importazione atteso forniscono la base concreta per accettare il codice.
Il riempimento influisce sul punto in cui inizia l'intestazione successiva, quindi un esempio di lunghezza pari può non rilevare un errore di posizione. Fornisci un file con un altro blocco dopo quello riempito. Controlla i confini restituiti e la posizione finale, non solo che sia stato trovato il primo blocco.
Decidi secondo il sottoinsieme del formato e il comportamento applicativo che intendi supportare. Attraversamento e interpretazione possono usare politiche diverse. Chiedi al modello di esaminare il codice utilizzatore prima di cambiare la gestione degli identificatori e includine uno sconosciuto nei casi di prova se è accettato.
Identifica quale confine dichiarato supera i byte forniti e il comportamento di rifiuto atteso dal chiamante. Includi un'intestazione o un contenuto abbreviato, secondo il caso. Esamina il percorso d'importazione affinché l'interfaccia non possa scambiare un'analisi parziale per un file caricato correttamente.
No. Dimostra solo i controlli dei confini coperti da quel codice e dai suoi test. Interpretare metadati audio o dati dei campioni compete a logica aggiuntiva. Concentrati sulla modifica richiesta al parser e verifica le fasi successive quando l'applicazione ne dipende.
RiffMeadow · Aggiornato 2026-10-25