CChildHarbor
Không gian lập trình với AI

Chạy tiến trình con Python có thời hạn

Chạy văn bản Python đáng tin cậy tối đa 4096 ký tự trong thư mục có sẵn với hạn 50–5000 ms.

● ● ●ChildHarbor●
Quy trình · Chạy tiến trình con Python có thời hạn ×
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)
✳Chạy tiến trình con Python có thời hạn
✓ Thay đổiKiểm tra trước khi áp dụng ↗
Minh họa không gian làm việc
Kiểm tra trước khi áp dụngSo sánh hành vi thực tế với kết quả mong đợi. Nếu kiểm tra thất bại, tìm nguyên nhân trước khi sửa tiếp.
Mô hìnhCấu hình endpoint tương thích OpenAI hoặc Anthropic bằng URL cơ sở và khóa API nếu cần. Kiểm tra kết nối. Máy chủ mô hình cục bộ phải đang chạy; công cụ từ xa có thể truyền dữ liệu riêng.
Dự ánThử Unicode, thoát lỗi và dừng tiến trình con trực tiếp, từ chối hạn sai mà không hứa cô lập hoặc dọn tiến trình hậu duệ.
Quy trình

Chạy tiến trình con Python có thời hạn

Quy trình ↗
Quy trình
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)
Không gian lập trình với AI

Rà soát hàm bọc tiến trình mà vẫn giữ ranh giới tin cậy

ChildHarbor là ứng dụng khách lập trình AI trên Windows để xem mã quản lý tiến trình trong cuộc trao đổi về dự án. Bắt đầu bằng việc nêu mã nào được tin cậy để chạy và bên gọi cần quan sát gì. Yêu cầu mô hình được kết nối xem hàm bọc hiện có trước khi gợi ý thay đổi, để đề xuất giữ cả mục đích lẫn giới hạn của nó.

Một tác vụ cụ thể là hàm bọc tiến trình Python con tin cậy với thư mục làm việc có sẵn và thời hạn có giới hạn. Trao đổi đầu ra Unicode, thoát thất bại và điều xảy ra khi tiến trình con trực tiếp vượt thời hạn. Tách các yêu cầu đó khỏi cách ly bảo mật: chấp nhận thực thi mã tin cậy không biến hàm bọc thành môi trường cách ly cho đầu vào tùy ý.

Rà soát sửa đổi đề xuất bằng dữ liệu kiểm thử tiến trình riêng. Kiểm tra đầu ra thu được, trạng thái thoát và đường xử lý hết thời hạn của tiến trình con trực tiếp trong môi trường phát triển. Nếu tiến trình hậu duệ quan trọng, xác định và tìm hiểu rõ yêu cầu bổ sung đó. Kiểm thử hết thời hạn thành công trên một tiến trình con không chứng minh cả cây tiến trình đã được dọn, nên giữ sự phân biệt đó trong lần rà soát.

ChildHarbor hỗ trợ kết nối điểm cuối tương thích OpenAI hoặc Anthropic, với thông tin xác thực khi cần. Có thể chọn mô hình AI không lọc ở nơi điểm cuối cung cấp. Máy chủ và mô hình quyết định ngữ cảnh, công cụ có sẵn và hạn chế; chọn mô hình không cấp phép chạy mã không tin cậy hay xác nhận hàm bọc đề xuất là hợp lệ.

Câu hỏi trước khi sửa mã khởi chạy tiến trình

Tôi nên nói gì về đầu vào tin cậy?

Xác định ai cung cấp tập lệnh và vì sao ứng dụng cho phép chạy nó. Giữ giả định đó rõ trong tác vụ. Nếu tập lệnh có thể đến từ người dùng không tin cậy, vấn đề bảo mật rộng hơn việc thêm thời hạn cho hàm bọc hiện có.

Hết thời hạn có đồng nghĩa mọi tiến trình hậu duệ bị chấm dứt không?

Không. Rà soát chính xác tiến trình nào được cách triển khai kiểm soát và kiểm thử trong môi trường của bạn. Nếu ứng dụng cần dọn cây tiến trình, coi đó là yêu cầu riêng rõ ràng và xem cách triển khai theo nền tảng thay vì suy từ xử lý tiến trình con trực tiếp.

Vì sao kiểm thử đầu ra Unicode cùng thoát thất bại?

Chúng thực hiện các phần khác nhau của giao ước hàm bọc với bên gọi. Kèm văn bản và hành vi thoát mong đợi để đề xuất giữ cả hai. Tiến trình có thể chạy đúng nhưng giải mã đầu ra hoặc báo lỗi vẫn khiến ứng dụng nhận kết quả không dùng được.

Có nên chạy mọi tập lệnh được gợi ý trong cuộc trao đổi không?

Xem mã và tác động trước khi chạy. Cuộc trao đổi trong không gian làm việc có thể giúp giải thích đề xuất, nhưng quyết định tin cậy thuộc về bạn. Dùng dữ liệu kiểm thử dự án phù hợp và tránh coi văn bản do mô hình tạo là sự cho phép thực thi thao tác tùy ý.

Tải cho Windows ↗

ChildHarbor · Cập nhật 2026-10-25