Projekt
Sprawdź zero i największą mieszczącą się wartość, odrzucając wartości logiczne, błędne szerokości i przekroczenia zakresu.
Przekształć całkowite słowa do kodu Graya i z powrotem przy jawnej szerokości od jednego do 16 bitów.
def checked_word(value, width):
if type(width) is not int or not 1 <= width <= 16:
raise ValueError("word.width")
if type(value) is not int or not 0 <= value < (1 << width):
raise ValueError("word.value")
return value
def to_gray(value, width):
value = checked_word(value, width)
return value ^ (value >> 1)
def from_gray(value, width):
value = checked_word(value, width)
result = 0
while value:
result ^= value
value >>= 1
return resultSprawdź zero i największą mieszczącą się wartość, odrzucając wartości logiczne, błędne szerokości i przekroczenia zakresu.
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.
def checked_word(value, width):
if type(width) is not int or not 1 <= width <= 16:
raise ValueError("word.width")
if type(value) is not int or not 0 <= value < (1 << width):
raise ValueError("word.value")
return value
def to_gray(value, width):
value = checked_word(value, width)
return value ^ (value >> 1)
def from_gray(value, width):
value = checked_word(value, width)
result = 0
while value:
result ^= value
value >>= 1
return resultGraySorrel to środowisko programowania z AI dla Windows, które pomaga uwidocznić założenia reprezentacji podczas tworzenia oprogramowania. Włącz kod konwersji i kod, który go używa, do rozmowy o projekcie, a następnie określ wartości i szerokości przyjmowane przez interfejs. Dzięki temu model może omówić konkretną zmianę zamiast proponować ogólną procedurę o innych granicach.
Przykładowym zadaniem jest konwersja kodu Graya o stałej szerokości. Poproś o wspólny przegląd konwersji w obu kierunkach, wraz ze wspólną kontrolą danych wejściowych. Podaj kilka znanych wartości i przypadek graniczny szerokości, a następnie poproś tylko o poprawki potrzebne do realizacji zamierzonego kontraktu. Przykład wyznacza rozmowie cel, który można przetestować.
Sprawdź, jak propozycja obsługuje wartości wykraczające poza wybraną szerokość. Ciche obcięcie i jawne odrzucenie prowadzą do innego zachowania programu, nawet jeśli zwykłe konwersje dają ten sam wynik. Uruchom testy projektu, porównaj konwersje tam i z powrotem w obsługiwanym zakresie oraz sprawdź obsługę błędów w kodzie wywołującym. Zachowaj dokładne oczekiwane kodowania, a także przykłady odwracalne.
Połącz model przez obsługiwany punkt końcowy zgodny z OpenAI lub punkt końcowy Anthropic, dodając dane uwierzytelniające, jeśli są wymagane. Wybór modelu AI bez cenzury jest możliwy, gdy taki model oferuje dany punkt końcowy; jego faktyczne ograniczenia nadal mają znaczenie. Obsługa narzędzi i pojemność kontekstu zależą od modelu i serwera, a odpowiedzialność za kontrakt i ostateczną poprawkę pozostaje po Twojej stronie.
Nie. Dwie funkcje mogą wzajemnie odwracać swoje działanie, a mimo to realizować błędne odwzorowanie. Dodaj niezależnie znane kodowania obok testów konwersji tam i z powrotem i przed przyjęciem proponowanej zmiany sprawdź, jak kod korzystający z wyniku go interpretuje.
Określ, czy kontrakt je odrzuca, czy celowo obcina. Poproś model o prześledzenie istniejącej walidacji i oczekiwań kodu wywołującego. Maskowanie zmienia zachowanie, jeśli wcześniej kod wywołujący otrzymywał błąd, nawet gdy upraszcza konwersję.
Zacznij od kodu, który zapisuje, porównuje lub przesyła przekonwertowaną wartość, oraz odpowiednich testów. Ujawni to założenia dotyczące szerokości i reprezentacji. Rozszerzaj kontekst dopiero wtedy, gdy przegląd wskaże kolejną zależność potrzebną do zrozumienia proponowanej edycji.
Nie. Zweryfikuj obsługiwany zakres w kodzie i testach. Sprawdź również wykonanie narzędzi: użycie osobno działającego lokalnego serwera modelu nie sprawia, że każde podłączone narzędzie jest lokalne, ani nie ustala, gdzie faktycznie uruchamiane są testy.
GraySorrel · Zaktualizowano 2026-10-25