ผลิตภัณฑ์แซนด์บ็อกซ์คือ flow ที่รันได้แบบส่วนตัวซึ่งเป็นของโปรเจกต์เดียว ประกอบด้วยสัญญา input/output ที่มีชื่อ บวกกับกราฟของ node ที่มีชนิดกำกับ สร้างขึ้นในคอนโซลโดยไม่ต้องเขียนโค้ด มันไม่เคยเข้าสู่แคตตาล็อกและไม่ได้เผยแพร่สิ่งใด — แต่เรียกใช้ได้ และทุก product node ภายในคิดเงินจากกระเป๋าเงินของโปรเจกต์เหมือนการเรียกโดยตรงทุกประการ
ก่อนเริ่ม#
- โปรเจกต์ที่มีผลิตภัณฑ์กำหนดไว้แล้ว — กราฟเรียกได้เฉพาะสิ่งที่โปรเจกต์เรียกได้ ดู ให้โมเดลแก่โปรเจกต์
- สิทธิ์ใช้งานบนโปรเจกต์นั้น (Project Owner หรือ Project Consumer) การเป็นสมาชิกทีมเจ้าของหรือผู้ดูแลองค์กรเพียงอย่างเดียวเข้าถึงแซนด์บ็อกซ์ไม่ได้
- กระเป๋าเงินที่มีเงิน การรัน flow มีค่าใช้จ่ายเท่ากับผลรวมของการเรียกลูกทั้งหมด
1. สร้างผลิตภัณฑ์#
เปิดแท็บ Sandbox ของโปรเจกต์ แล้วคลิก New sandbox product:
- Identity — Name และ Description
- Contract — ตัวแก้ไขสคีมา Input และ Output ฟิลด์มีชนิดกำกับ: string, select, number, boolean, object, image, audio, video พร้อมรายการฟิลด์ที่จำเป็น
ฟิลด์ select ระบุค่าที่ผู้เรียกเลือกได้อย่างเจาะจง จะพิมพ์เองก็ได้ หรือคลิก Pick from options เพื่อคัดลอกเสียงพูด อัตราส่วนภาพ ความละเอียด ขนาด หรือความยาวที่โมเดลเผยแพร่ไว้ ส่วนชนิด voice, aspect ratio, resolution และ duration รู้อยู่แล้วว่าตัวเลือกมาจากไหน — Populate from a model จะแสดงเฉพาะโมเดลที่เผยแพร่ชุดตัวเลือกนั้น แล้วเติมรายการให้ในคลิกเดียว
2. ประกอบใน studio#
เปิด Studio ลาก node จากพาเลตต์ที่ค้นหาได้ — input, output, product, text template, branch, expression, media — แล้วเชื่อมสายใน inspector
Max output tokens ของ chat node เป็นตัวเลือก หากเว้นว่างจะขอค่าสูงสุดของโมเดลนั้นเอง โดยลดให้พอดีกับพื้นที่ที่เหลือข้าง prompt ใส่ตัวเลขเมื่อต้องการจำกัดโดยเจตนาเท่านั้น
กราฟถูกตรวจสอบฝั่งเซิร์ฟเวอร์ ไม่ใช่โดยผืนผ้าใบ: ความเข้ากันได้ของ port ตามชนิด การเชื่อม input ที่จำเป็นครบ การเชื่อมสายแบบไม่มีวงวน การเข้าถึงได้จาก input ถึง output และทุก product dependency ต้องถูกกำหนดให้โปรเจกต์นี้อยู่จริง ขีดจำกัดคือ 50 node, 200 edge, การเรียกผลิตภัณฑ์ที่มีค่าใช้จ่าย 8 ครั้ง และเวลาทำงานไม่เกิน 5 นาที
3. บันทึก revision แล้วเปิดใช้งาน#
Save revision (หรือ Ctrl/Cmd+S) เก็บ snapshot ที่แก้ไขไม่ได้ revision ที่บันทึกแล้วจะไม่ถูกแก้ไขอีก — การแก้ไขต่อจะบันทึกเป็น revision ใหม่ การแก้ไขจึงเปลี่ยนการรันที่กำลังดำเนินอยู่ไม่ได้
Activate (หรือ Re-activate) แล้วยืนยัน Save and activate? ทำให้ revision นั้นเป็นตัวที่รันจริง กล่องยืนยันจะเตือนคุณว่าผลิตภัณฑ์นี้จะเรียกใช้ได้จากภายนอก: คีย์ API ใดก็ได้ของโปรเจกต์จะเรียกมันผ่าน HTTP ได้ MCP client เข้าถึงได้หากเปิดอินเทอร์เฟซนั้นไว้ และทุกการเรียกคิดเงินจากกระเป๋าเงินของโปรเจกต์นี้
การเปิดใช้งานตรวจสอบกราฟทั้งหมดอีกครั้ง หากล้มเหลวจะไม่มีอะไรเปลี่ยน — revision ที่ใช้งานอยู่เดิมยังคงทำงานต่อ
4. รัน แล้วเรียกใช้#
จากคอนโซล ใช้แท็บ Run ใน studio: มันรับ input ตามสัญญา แล้วแสดงผลลัพธ์ ผลรายโหนด และค่าใช้จ่ายลูกที่เกิดขึ้น
จากโค้ด ใช้คีย์ API ที่ผูกกับโปรเจกต์:
/v1/sandbox/{id}/invoke/v1/sandbox/{id}/mcpมีสามอย่างที่ต่างจากการเรียก chat:
Idempotency-Keyเป็นสิ่งจำเป็น ที่นี่ (8–128 อักขระ) ไม่ใช่ตัวเลือก การใช้คีย์เดิมซ้ำจะเล่นการรันเดิมและค่าใช้จ่ายของมันเพียงครั้งเดียว- มีเพียง revision ที่ใช้งานอยู่เท่านั้นที่รัน การระบุ revision อื่นจะตอบ
409 revision_not_active; ละrevisionไว้เพื่อใช้ตัวที่ใช้งานอยู่ - การทำงานที่ล้มเหลวก็ยังถูกส่งคืน พร้อมค่าใช้จ่ายที่เกิดขึ้นไปแล้ว
หากสัญญาที่ deploy ไว้คือข้อความเข้าหนึ่งข้อความออกหนึ่ง ผลิตภัณฑ์นั้นเรียกผ่าน POST /v1/chat/completions ได้เหมือนโมเดลทั่วไป ส่วนสัญญาที่ซับซ้อนกว่านั้นยังคงอยู่ที่ invoke endpoint และการเรียกด้วย bearer แบบธรรมดาที่ output เดียวเป็นภาพ จะได้ตัวภาพกลับมาเลย
ตรวจว่าสำเร็จแล้ว#
แท็บ Runs จะแสดงการรันพร้อมผลรายโหนด และ node ที่มีค่าใช้จ่ายแต่ละตัวจะปรากฏเป็นแถวของตัวเองใน การใช้งานและบันทึกการเรียก ค่า chargedMicro ของการทำงานเท่ากับผลรวมของลูกพอดี — ไม่มีค่าธรรมเนียมของ parent แยกต่างหาก
หากยังไม่สำเร็จ#
| สิ่งที่คุณเห็น | ความหมาย |
|---|---|
409 revision_not_active |
คุณระบุ revision ที่ไม่ใช่ตัวที่ deploy อยู่ |
409 revision_conflict |
มีคนบันทึกทับ base revision ของคุณ — โหลดใหม่แล้วบันทึกอีกครั้ง |
422 input_type |
ฟิลด์ select ได้รับค่าที่อยู่นอกรายการตัวเลือก |
422 sandbox_contract |
สัญญาที่ไม่ใช่ chat ถูกเรียกผ่าน chat/completions — ให้ใช้ invoke endpoint |
404 กับผลิตภัณฑ์ที่คุณมองเห็น |
โปรเจกต์อื่นเป็นเจ้าของ แซนด์บ็อกซ์เข้าถึงได้ผ่านโปรเจกต์ของตัวเองเท่านั้น |
| การเปิดใช้งานถูกปฏิเสธ | กราฟไม่ผ่านการตรวจสอบซ้ำ หรือ product dependency ไม่ได้ถูกกำหนดไว้แล้ว |
| Why it stopped ในการรัน | เปิดดู — รายการปัญหาจะระบุ node และเหตุผล |
ถัดไป#
- ผลิตภัณฑ์แซนด์บ็อกซ์ — ระเบียน แท็บต่าง ๆ และ studio ฉบับเต็ม
- ผลิตภัณฑ์แซนด์บ็อกซ์ (API) — สัญญา revision ความคืบหน้าผ่าน NDJSON และ MCP
- การใช้งานและบันทึกการเรียก — ที่ที่ค่าใช้จ่ายลูกแต่ละตัวไปปรากฏ