Ograniczone rozwijanie serii
Rozwiń serie bajtów dopiero po sprawdzeniu całkowitego limitu wyjścia.
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))Sprawdź przed zastosowaniem
Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
Modele
Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie.
Projekt
Odrzuć zerowe i ujemne liczności, błędne wartości bajtów oraz nadmierną sumę bez zmiany listy źródłowej.
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))Uwidocznij limity rozwijania danych podczas przeglądu kodu
OctetWeave to oprogramowanie AI do pracy nad zmianami parserów i przekształceń danych w istniejącym projekcie. Środowisko Windows utrzymuje folder projektu i rozmowę z modelem blisko analizowanego kodu. Zacznij od opisu akceptowanego wejścia, oczekiwanego wyjścia i momentu odrzucania zbyt dużych danych. Te szczegóły pomagają dopasować proponowaną poprawkę do rzeczywistych wymagań aplikacji.
Przykładem jest ograniczone rozwijanie sekwencji powtórzeń w runs.py. Możesz poprosić asystenta o sprawdzenie, czy długość po rozwinięciu jest kontrolowana przed utworzeniem wyjścia, a następnie ocenić, jak informacja o nieprawidłowej liczbie powtórzeń trafia do kodu wywołującego. To przykładowe zadanie programistyczne, a nie funkcja dekompresji zawarta w OctetWeave. Przydatnym wynikiem jest zmiana, której walidację i alokację można zbadać wraz z otaczającym parserem.
Po przeglądzie uruchom testy projektu dla zwykłych sekwencji, błędnych liczników i danych na uzgodnionym limicie. Sprawdź obsługę odrzucenia przez odbiorcę, ponieważ nowa reguła walidacji może zmienić więcej niż samo przekształcenie. Podłącz model bez filtrów tylko wtedy, gdy jest dostępny przez obsługiwany punkt końcowy zgodny z OpenAI lub Anthropic, podając w razie potrzeby dane uwierzytelniające. Zasady modelu, narzędzia serwera i pojemność kontekstu nadal regulują połączenie; jego wybór nie zapewnia gwarancji zasobów dla proponowanego kodu.
Przygotowanie zmiany parsera z limitami
- Skąd powinien pochodzić limit wyjścia?
Wyznacz go na podstawie wymagań aplikacji i ograniczeń działania zamiast przyjmować arbitralną sugestię modelu. Określ, kto podaje limit i jak zgłaszane jest odrzucenie, a następnie oceń tę decyzję zarówno w parserze, jak i kodzie wywołującym.
- Co powinny obejmować testy graniczne?
Użyj zwykłego wejścia, wejścia dokładnie na akceptowanym limicie i takiego, które go przekracza. Dodaj błędne wartości właściwe dla formatu. Sprawdź oczekiwane zachowanie przy błędzie oraz poprawne wyjście.
- Czy OctetWeave może certyfikować odporność parsera na wyczerpanie zasobów?
Nie deklarujemy takiej certyfikacji. W środowisku możesz badać proponowany kod i omawiać testy, ale ocena wykorzystania zasobów wymaga sprawdzenia rzeczywistej implementacji i środowiska wykonawczego w warunkach istotnych dla aplikacji.
- Dlaczego sprawdzać kod wywołujący po dodaniu walidacji?
Może oczekiwać danych dla każdego wejścia i błędnie obsłużyć nowe odrzucenie. Oceń propagację błędów i zachowanie widoczne dla użytkownika, aby limit poprawiał kontrakt aplikacji, a nie zamieniał nieprawidłowe wejście w niewyjaśnioną awarię.
OctetWeave · Zaktualizowano 2026-10-25