การรันโปรเซสลูก Python แบบจำกัดเวลา
รันข้อความ Python ที่เชื่อถือได้ไม่เกิน 4096 อักขระในไดเรกทอรีที่มีอยู่ด้วยเวลา 50–5000 ms.
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)| ตรวจสอบก่อนนำไปใช้ | เปรียบเทียบการทำงานจริงกับผลที่คาดหวัง หากการตรวจสอบไม่ผ่าน ให้หาสาเหตุก่อนแก้ไขเพิ่มเติม |
|---|---|
| โมเดล | ตั้งค่า endpoint ที่รองรับ OpenAI หรือ Anthropic ด้วย URL หลักและคีย์ API หากจำเป็น ทดสอบการเชื่อมต่อ เซิร์ฟเวอร์โมเดลในเครื่องต้องทำงานอยู่ เครื่องมือระยะไกลอาจส่งข้อมูลแยกต่างหาก |
| โปรเจกต์ | ทดสอบ Unicode การจบแบบผิดพลาดและหยุดลูกโดยตรง ปฏิเสธเวลาผิดโดยไม่รับรองการแยกหรือหยุดลูกหลาน. |
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)ตรวจตัวครอบโปรเซสโดยรักษาขอบเขตความเชื่อถือ
ChildHarbor เป็นไคลเอนต์เขียนโค้ดด้วย AI บน Windows สำหรับตรวจโค้ดจัดการโปรเซสในการสนทนาโครงการ เริ่มด้วยการระบุว่าโค้ดใดเชื่อถือให้รันได้และผู้เรียกต้องสังเกตอะไร ขอให้โมเดลที่เชื่อมต่อตรวจตัวครอบเดิมก่อนเสนอแก้ เพื่อให้ข้อเสนอรักษาทั้งวัตถุประสงค์และขอบเขต
งานที่เป็นรูปธรรมคือตัวครอบโปรเซสลูก Python ที่เชื่อถือได้ โดยมีไดเรกทอรีทำงานที่มีอยู่และเวลารอที่จำกัด อภิปรายผลลัพธ์ Unicode การจบโปรเซสด้วยสถานะล้มเหลว และสิ่งที่เกิดขึ้นเมื่อโปรเซสลูกโดยตรงเกินเวลาที่กำหนด แยกข้อกำหนดเหล่านี้จากการแยกเพื่อความปลอดภัย การยอมรับโค้ดที่เชื่อถือให้รันไม่ได้ทำให้ตัวครอบเป็นแซนด์บ็อกซ์สำหรับข้อมูลใดก็ได้
ตรวจการแก้ที่เสนอกับกรณีทดสอบโปรเซสของคุณ ตรวจผลที่บันทึก สถานะออก และเส้นทางหมดเวลาของโปรเซสลูกโดยตรงในสภาพแวดล้อมพัฒนา หากโปรเซสลูกหลานมีความสำคัญ ให้กำหนดและสืบหาข้อกำหนดเพิ่มเติมนั้นอย่างชัดเจน การทดสอบหมดเวลาที่สำเร็จกับลูกหนึ่งโปรเซสไม่ใช่หลักฐานว่าทำความสะอาดทั้งต้นไม้โปรเซส จึงต้องรักษาความต่างนี้ไว้ในการตรวจ
ChildHarbor รองรับการเชื่อมต่อปลายทางที่เข้ากันได้กับ OpenAI หรือปลายทาง Anthropic พร้อมข้อมูลรับรองเมื่อจำเป็น เลือกโมเดล AI ไร้การกรองได้เมื่อปลายทางมีให้ เซิร์ฟเวอร์และโมเดลกำหนดบริบท เครื่องมือที่มี และข้อจำกัด การเลือกโมเดลไม่ได้อนุญาตให้รันโค้ดที่ไม่เชื่อถือหรือยืนยันตัวครอบที่เสนอ
คำถามก่อนเปลี่ยนโค้ดเริ่มโปรเซส
ควรระบุอะไรเกี่ยวกับข้อมูลเข้าที่เชื่อถือได้?
ระบุว่าใครให้สคริปต์และเหตุใดแอปพลิเคชันอนุญาตให้รัน คงสมมติฐานนั้นให้ชัดในงาน หากสคริปต์มาจากผู้ใช้ที่ไม่เชื่อถือได้ ปัญหาความปลอดภัยกว้างกว่าการเพิ่มเวลารอให้ตัวครอบเดิม
การหมดเวลาหมายถึงลูกหลานทั้งหมดถูกยุติหรือไม่?
ไม่ ตรวจให้แน่ว่าโค้ดควบคุมโปรเซสใดและทดสอบพฤติกรรมนั้นในสภาพแวดล้อมของคุณ หากแอปพลิเคชันต้องทำความสะอาดต้นไม้โปรเซส ให้กำหนดเป็นข้อกำหนดแยกชัดเจนและตรวจโค้ดเฉพาะแพลตฟอร์ม แทนอนุมานจากการจัดการลูกโดยตรง
เหตุใดต้องทดสอบผล Unicode พร้อมการจบโปรเซสด้วยสถานะล้มเหลว?
ทั้งสองทดสอบคนละส่วนของข้อตกลงผู้เรียกของตัวครอบ รวมข้อความและพฤติกรรมออกที่คาดหวังเพื่อให้ข้อเสนอรักษาทั้งคู่ โปรเซสอาจรันถูกต้อง แต่การถอดรหัสผลหรือรายงานข้อผิดพลาดยังให้ผลที่แอปพลิเคชันใช้ไม่ได้
ควรรันทุกสคริปต์ที่เสนอในการสนทนาหรือไม่?
ตรวจโค้ดและผลกระทบก่อนรัน การสนทนาในพื้นที่ทำงานช่วยอธิบายข้อเสนอได้ แต่คุณเป็นผู้ตัดสินความเชื่อถือ ใช้กรณีทดสอบโครงการที่เหมาะสม และอย่าถือว่าข้อความที่โมเดลสร้างเป็นการอนุญาตให้รันการดำเนินการใดก็ได้
ChildHarbor · อัปเดตล่าสุด 2026-10-25