CChildHarbor
Środowisko programowania z AI

Procesy potomne Python z limitem czasu

Uruchom zaufany tekst Python do 4096 znaków w istniejącym katalogu z limitem 50–5000 ms.

● ● ●ChildHarbor●
Sposoby pracy · Procesy potomne Python z limitem czasu ×
import math, os, subprocess, sys
from pathlib import Path

def run_trusted_python(script, seconds, folder):
    if type(script) is not str or len(script) > 4096:
        raise ValueError("child.script")
    if type(seconds) not in (int, float) or not .05 <= seconds <= 5 or not math.isfinite(seconds):
        raise ValueError("child.timeout")
    if not isinstance(folder, (str, Path)) or not Path(folder).is_dir():
        raise ValueError("child.folder")
    return subprocess.run([sys.executable, "-I", "-S", "-X", "utf8", "-c", script],
        cwd=folder, timeout=seconds, capture_output=True, text=True,
        encoding="utf-8", check=False,
        creationflags=subprocess.CREATE_NO_WINDOW if os.name == "nt" else 0)
✳Procesy potomne Python z limitem czasu
✓ ZmianySprawdź przed zastosowaniem ↗
Ilustracja środowiska
Sprawdź przed zastosowaniemPorównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
ModeleDodaj 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.
ProjektSprawdź Unicode, kody błędów i zakończenie bezpośredniego dziecka, odrzuć złe limity bez obietnicy izolacji czy sprzątania potomków.
Sposoby pracy

Procesy potomne Python z limitem czasu

Sposoby pracy ↗
Sposoby pracy
import math, os, subprocess, sys
from pathlib import Path

def run_trusted_python(script, seconds, folder):
    if type(script) is not str or len(script) > 4096:
        raise ValueError("child.script")
    if type(seconds) not in (int, float) or not .05 <= seconds <= 5 or not math.isfinite(seconds):
        raise ValueError("child.timeout")
    if not isinstance(folder, (str, Path)) or not Path(folder).is_dir():
        raise ValueError("child.folder")
    return subprocess.run([sys.executable, "-I", "-S", "-X", "utf8", "-c", script],
        cwd=folder, timeout=seconds, capture_output=True, text=True,
        encoding="utf-8", check=False,
        creationflags=subprocess.CREATE_NO_WINDOW if os.name == "nt" else 0)
Środowisko programowania z AI

Przeglądaj kod obsługi procesów, zachowując jego granicę zaufania

ChildHarbor to klient programistyczny AI dla Windows do analizy kodu zarządzania procesami w rozmowie o projekcie. Zacznij od określenia, jaki kod jest zaufany do uruchomienia i co musi obserwować kod wywołujący. Poproś podłączony model o sprawdzenie obecnej funkcji opakowującej przed sugerowaniem zmian, aby propozycja zachowała zarówno jej cel, jak i ograniczenia.

Konkretnym zadaniem jest funkcja uruchamiająca zaufany proces potomny Pythona z istniejącym katalogiem roboczym i ograniczonym czasem wykonania. Omów wyjście Unicode, zakończenia z błędem i sytuację, gdy bezpośredni proces potomny przekracza limit czasu. Oddziel te wymagania od izolacji bezpieczeństwa: dopuszczenie zaufanego kodu do wykonania nie czyni tej funkcji piaskownicą dla dowolnego wejścia.

Oceń proponowaną zmianę względem własnych przypadków testowych procesów. Sprawdź przechwycone wyjście, status zakończenia i ścieżkę przekroczenia limitu przez bezpośredni proces potomny w środowisku programistycznym. Jeśli dalsi potomkowie mają znaczenie, jawnie określ i zbadaj to dodatkowe wymaganie. Udany test limitu czasu jednego potomka nie dowodzi posprzątania całego drzewa procesów, więc zachowaj to rozróżnienie podczas przeglądu.

ChildHarbor obsługuje połączenia z punktami końcowymi zgodnymi z OpenAI lub punktami Anthropic, z uwierzytelnianiem, gdy jest wymagane. Model AI bez filtrów można wybrać tam, gdzie udostępnia go Twój punkt końcowy. Serwer i model określają kontekst, dostępne narzędzia i ograniczenia; wybór modelu nie upoważnia do uruchamiania niezaufanego kodu ani nie potwierdza poprawności proponowanej funkcji.

Pytania przed zmianą kodu uruchamiania procesów

Co powiedzieć o zaufanym wejściu?

Wskaż dostawcę skryptu i powód, dla którego aplikacja pozwala go uruchomić. Zachowaj to założenie jawnie w zadaniu. Jeśli skrypty mogą pochodzić od niezaufanych użytkowników, problem bezpieczeństwa wykracza poza dodanie limitu czasu do obecnej funkcji.

Czy limit czasu oznacza zakończenie wszystkich potomków?

Nie. Sprawdź dokładnie, którym procesem steruje implementacja, i przetestuj to zachowanie w swoim środowisku. Jeśli aplikacja wymaga sprzątania drzewa procesów, określ to jako osobne jawne wymaganie i sprawdź implementację zależną od platformy, zamiast wnioskować z obsługi bezpośredniego potomka.

Dlaczego testować wyjście Unicode oprócz zakończeń z błędem?

Sprawdzają różne części kontraktu funkcji z kodem wywołującym. Uwzględnij oczekiwany tekst i zachowanie zakończenia, aby propozycja zachowała oba elementy. Proces może działać poprawnie, a dekodowanie wyjścia lub raportowanie błędów nadal dawać aplikacji bezużyteczny wynik.

Czy należy uruchamiać każdy skrypt sugerowany w rozmowie?

Przed uruchomieniem przejrzyj kod i jego skutki. Rozmowa w środowisku może pomóc wyjaśnić propozycję, ale decyzja o zaufaniu należy do Ciebie. Używaj odpowiednich przypadków testowych projektu i nie traktuj tekstu wygenerowanego przez model jako upoważnienia do wykonywania dowolnych operacji.

Pobierz dla Windows ↗

ChildHarbor · Zaktualizowano 2026-10-25