Begrensde runlengtedecodering
Vouw bytereeksen pas uit nadat de totale uitvoerlimiet is gecontroleerd.
def expand_runs(runs, limit):
if type(limit) is not int or limit < 0:
raise ValueError("limit.invalid")
total = 0
for value, count in runs:
if type(value) is not int or not 0 <= value <= 255:
raise ValueError("byte.invalid")
if type(count) is not int or count <= 0:
raise ValueError("count.invalid")
total += count
if total > limit:
raise ValueError("output.limit")
return bytes(value for value, count in runs for _ in range(count))Controleer vóór het toepassen
Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
Modellen
Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
Project
Weiger nul of negatieve aantallen, ongeldige bytewaarden en een te groot totaal zonder de oorspronkelijke lijst te wijzigen.
def expand_runs(runs, limit):
if type(limit) is not int or limit < 0:
raise ValueError("limit.invalid")
total = 0
for value, count in runs:
if type(value) is not int or not 0 <= value <= 255:
raise ValueError("byte.invalid")
if type(count) is not int or count <= 0:
raise ValueError("count.invalid")
total += count
if total > limit:
raise ValueError("output.limit")
return bytes(value for value, count in runs for _ in range(count))Maak limieten voor gegevensuitbreiding zichtbaar in de codereview
OctetWeave is AI-programmeersoftware voor het uitwerken van wijzigingen aan parsers en gegevenstransformaties in een bestaand project. De Windows-werkomgeving houdt de projectmap en het modelgesprek dicht bij de te inspecteren code. Begin met toegestane invoer, verwachte uitvoer en het punt waarop te grote gegevens moeten worden afgewezen. Die details helpen een voorgestelde patch aan een echte applicatie-eis te voldoen.
Begrensde run-length-uitbreiding in runs.py biedt een voorbeeld. Je kunt de assistent laten bekijken of de uitgebreide lengte wordt gecontroleerd vóór het produceren van uitvoer en daarna beoordelen hoe een ongeldig aantal de aanroeper bereikt. Dit is een illustratieve programmeertaak, geen decompressiefunctie die bij OctetWeave is inbegrepen. Het nuttige resultaat is een wijziging waarvan je validatie en geheugentoewijzing samen met de omringende parser kunt onderzoeken.
Voer na de beoordeling projecttests uit voor gewone reeksen, ongeldige aantallen en gegevens op de afgesproken limiet. Controleer hoe de verwerkende code afwijzingen afhandelt, want een nieuwe validatieregel kan meer veranderen dan alleen de transformatie. Verbind alleen een ongefilterd model als er een beschikbaar is via een ondersteund OpenAI-compatibel of Anthropic-endpoint, met inloggegevens waar nodig. Modelbeleid, serverhulpmiddelen en contextcapaciteit blijven die verbinding bepalen; deze keuze biedt geen garanties over het middelengebruik van de voorgestelde code.
Een begrensde parserwijziging voorbereiden
- Waar moet een uitvoerlimiet op worden gebaseerd?
Bepaal deze vanuit je applicatie-eisen en operationele beperkingen in plaats van een willekeurig modelvoorstel te accepteren. Stel vast wie de limiet aanlevert en hoe afwijzing wordt gemeld. Beoordeel die beslissing vervolgens in zowel parser als aanroeper.
- Wat moeten grenstests bevatten?
Gebruik gewone invoer, invoer precies op de toegestane limiet en invoer die haar overschrijdt. Voeg ongeldige waarden toe die bij het formaat passen. Controleer zowel het verwachte foutgedrag als de geslaagde uitvoer.
- Kan OctetWeave een parser certificeren tegen uitputting van middelen?
Er wordt geen dergelijke certificering geclaimd. Je kunt voorgestelde code bekijken en tests bespreken in de werkomgeving, maar middelengebruik beoordelen vereist controle van de daadwerkelijke implementatie en runtime onder omstandigheden die relevant zijn voor je applicatie.
- Waarom de aanroeper bekijken na toevoeging van validatie?
Die kan verwachten dat elke invoer gegevens oplevert en een nieuwe afwijzing verkeerd afhandelen. Beoordeel foutdoorgifte en gebruikerszichtbaar gedrag, zodat de limiet het applicatiecontract verbetert zonder ongeldige invoer in een onverklaarde fout te veranderen.
OctetWeave · Bijgewerkt 2026-10-25