Projekt
Sprawdź pusty wskaźnik korzenia i klucze z escapowaniem, odrzucając błędne sekwencje, brakujące elementy i niekanoniczne indeksy.
Rozwiąż JSON Pointer w słownikach i listach bez ich zmiany.
import re
def pointer_get(root, pointer):
if not isinstance(pointer, str): raise ValueError("pointer text")
if pointer == "": return root
if not pointer.startswith("/"): raise ValueError("root slash")
value = root
for raw in pointer[1:].split("/"):
if re.search(r"~(?![01])", raw): raise ValueError("escape")
key = raw.replace("~1", "/").replace("~0", "~")
if isinstance(value, dict): value = value[key]
elif isinstance(value, list):
if not re.fullmatch(r"0|[1-9][0-9]*", key):
raise ValueError("array index")
if len(key) > len(str(len(value))): raise IndexError(key)
value = value[int(key)]
else: raise ValueError("not a container")
return valueSprawdź pusty wskaźnik korzenia i klucze z escapowaniem, odrzucając błędne sekwencje, brakujące elementy i niekanoniczne indeksy.
Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
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.
import re
def pointer_get(root, pointer):
if not isinstance(pointer, str): raise ValueError("pointer text")
if pointer == "": return root
if not pointer.startswith("/"): raise ValueError("root slash")
value = root
for raw in pointer[1:].split("/"):
if re.search(r"~(?![01])", raw): raise ValueError("escape")
key = raw.replace("~1", "/").replace("~0", "~")
if isinstance(value, dict): value = value[key]
elif isinstance(value, list):
if not re.fullmatch(r"0|[1-9][0-9]*", key):
raise ValueError("array index")
if len(key) > len(str(len(value))): raise IndexError(key)
value = value[int(key)]
else: raise ValueError("not a container")
return valuePointerMallow daje programistom środowisko AI dla Windows do śledzenia zachowania danych strukturalnych w projekcie. Błędne wyszukiwanie łatwiej zdiagnozować, gdy rozmowa obejmuje ścieżkę, strukturę danych i oczekiwaną wartość. Zacznij od małego odtwarzalnego przypadku i poproś model o analizę implementacji, która faktycznie go wykorzystuje.
Rozważ jako zadanie wyszukiwanie JSON Pointer. Podaj klucz obiektu zawierający ukośnik, indeks tablicy i brakujący cel, a następnie określ zamierzony wynik każdego przypadku. Poproś o konkretną poprawkę, jeśli obecny kod błędnie traktuje te ścieżki. Korzyść wynika z powiązania danych testowych z implementacją i jej wywołaniami.
Oceniaj propozycję nie tylko po udanym wyniku. Nieprawidłowa ścieżka, brak klucza i przechodzenie przez wartość skalarną mogą wymagać różnej obsługi w aplikacji. Przeczytaj zmiany i uruchom odpowiednie testy, sprawdzając błąd przekazany odbiorcy równie uważnie jak wartość zwracaną dla poprawnego wyszukiwania.
Połączenie modelu może używać obsługiwanego punktu końcowego zgodnego z OpenAI lub Anthropic, z wymaganym uwierzytelnieniem. Jeśli wybierzesz oferowany tam model AI z usuniętymi mechanizmami odmowy, ograniczenia dostawcy nadal obowiązują. Limity kontekstu i narzędzia różnią się zależnie od modelu i serwera, więc zachowaj małe dane testowe pozwalające bezpośrednio ocenić rozumowanie i proponowany kod.
Podaj osobne dane testowe i oczekiwane wyniki dla obu. Zapytaj, gdzie w obecnym kodzie kończy się parsowanie, a zaczyna przechodzenie po danych, a potem sprawdź, jak każdy błąd dociera do wywołującego. Połączenie ich w jeden pusty wynik może ukryć błąd wejścia.
Liczy się typ zawierających go danych. Dodaj przypadek klucza obiektu wyglądającego jak liczba i osobny przypadek tablicy. Przejrzyj gałąź obsługi ścieżki dla każdego, zamiast zakładać, że identyczny tekst zawsze wskazuje ten sam rodzaj miejsca.
Wyodrębnia strukturę odpowiedzialną za problem i ułatwia weryfikację wyniku. Usuń nieistotne pola i poufne wartości, zachowując błędną ścieżkę, a następnie potwierdź poprawkę na reprezentatywnych danych projektu.
Kontrakt należy do aplikacji. Inny model może sugerować inną konwencję błędów, lecz nie upoważnia to do zmiany zachowania. Sprawdź też miejsca działania narzędzi: lokalny serwer modelu nie sprawia, że wszystkie podłączone narzędzia działają lokalnie.
PointerMallow · Zaktualizowano 2026-10-25