เทมเพลตคำสั่ง (Prompt templates)
เทมเพลตคำสั่ง (Prompt template) คือคำสั่งระบุชื่อที่นำกลับมาใช้ใหม่ได้ โดยจะมาพร้อมกับช่องใส่ตัวแปรในรูปแบบ เพื่อให้แอปพลิเคชันต่าง ๆ เรียกใช้งานผ่านชื่อแทนที่จะต้องเขียนข้อความคำสั่งแบบฮาร์ดโค้ด คุณสามารถสร้างและจัดการเวอร์ชันของเทมเพลตได้จากศูนย์กลาง โดยแอปพลิเคชันจะเรียกใช้เทมเพลตที่ได้รับการเผยแพร่ (published) แล้วและส่งค่าตัวแปรเข้ามาประมวลผล ทั้งนี้เทมเพลตจะใช้งานเป็นการภายในและเป็นส่วนตัวเฉพาะในโปรเจกต์เท่านั้น
ผู้ที่มีสิทธิ์ในการดำเนินการนี้
Org admin (สิทธิ์เฉพาะในองค์กรของตนเอง) และ Platform admin โดยดำเนินการผ่านหน้าจอ Projects → Templates
ประโยชน์ในการใช้งาน
- วิศวกรรมการป้อนคำสั่ง (Prompt engineering) เป็นทรัพย์สินส่วนกลางร่วมกัน: คุณสามารถเขียนคำสั่งที่ดีเพียงครั้งเดียวเพื่อให้ทุกแอปพลิเคชันนำไปใช้งานร่วมกันได้
- ปรับเปลี่ยนได้โดยไม่ต้องติดตั้งแอปพลิเคชันใหม่: เพียงแก้ไขและเผยแพร่เทมเพลตใหม่ แอปพลิเคชันปลายทางที่เรียกใช้จะดึงข้อมูลเวอร์ชันใหม่ไปทำงานโดยอัตโนมัติ
- โหมดร่างเทียบกับโหมดเผยแพร่: สามารถแก้ไขร่างงานได้อย่างอิสระ โดยการรับส่งข้อมูลจริงจะเปลี่ยนผ่านเฉพาะเมื่อคุณคลิก Publish เท่านั้น
- มีระบบจัดการเวอร์ชันและสืบย้อนประวัติได้: ทุกการคลิกเผยแพร่จะขยับเลขเวอร์ชันเพิ่มขึ้นและเก็บบันทึกประวัติไว้ในระบบประวัติการใช้งานอย่างชัดเจน
วิธีการสร้างเทมเพลต
- เปิดหน้า Projects → Templates และเลือกเทมเพลตที่มีอยู่หรือระบุ ชื่อใหม่ (name) โดยใช้อักษรภาษาอังกฤษตัวพิมพ์เล็ก ตัวเลข และอักขระ
-หรือ_เท่านั้น - คุณสามารถเลือกกำหนดค่า โมเดล (model) โดยระบุชื่อโมเดลเชิงตรรกะจากการจัดเส้นทางของคุณ เช่น
coding-default - เขียนข้อความส่วน system หรือ user โดยใช้ตัวแปร
ในส่วนที่ต้องการให้กรอกค่าข้อมูล เช่น"Review this diff and list risks:\n" - คลิก Save draft เพื่อบันทึกร่างโดยไม่มีผลกระทบกับการรับส่งข้อมูลจริง จากนั้นคลิก Publish เมื่อพร้อมเผยแพร่ใช้งาน

การเรียกใช้งานเทมเพลต
แอปพลิเคชันจะเรียกใช้ endpoint ของ chat-completions ตามปกติ แต่จะส่งฟิลด์ระบุชื่อเทมเพลตและตัวแปรต่าง ๆ แทนการส่งอาเรย์ messages ดังนี้
curl https://<your-gateway>/v1/chat/completions \
-H "Authorization: Bearer $OPSTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"template":"code-review","properties":{"language":"Go","diff":"..."}}'gateway จะแปลงข้อมูลเทมเพลตที่ได้รับการเผยแพร่แล้ว โดยนำค่าจาก properties ไปแทนที่ตัวแปร แต่ละตัวเพื่อสร้างเป็นคำร้องขอฉบับเต็มส่งต่อไปยังโมเดล สำหรับตัวแปรที่ไม่ได้กรอกค่าจะถูกส่งไปแบบข้อความดิบ และหากมีการเรียกใช้เทมเพลตที่ไม่ได้เผยแพร่ในโปรเจกต์ของคุณ ระบบจะส่งรหัสสถานะกลับเป็น 404
ข้อแตกต่างระหว่างเทมเพลตคำสั่งและคำสั่งระบบที่ถูกบังคับใช้งาน
- เทมเพลต (Template): ทำงานแบบเลือกเปิดใช้งานเป็นรายคำร้องขอ (opt-in per request) โดยแอปพลิเคชันจะเลือกเรียกใช้โดยอ้างอิงตามชื่อที่กำหนด
- คำสั่งระบบที่ถูกบังคับใช้งาน: คำสั่งระบบที่ถูกบังคับใช้งาน (Enforced prompt) จะมีผลบังคับใช้กับทุกคำร้องขอโดยอัตโนมัติ
ทั้งสองส่วนจะทำหน้าที่เสริมกัน คือเทมเพลตจะสร้างโครงร่างคำร้องขอ จากนั้นคำสั่งระบบประจำโปรเจกต์และระบบ guardrail จะเข้ามาตรวจสอบและบังคับใช้นโยบายความปลอดภัยต่อคำร้องขอนั้นเพิ่มเติม
ขั้นตอนต่อไป
- การจัดการคำสั่งระบบ — รายละเอียดระบบคำสั่งระบบที่มีผลบังคับใช้กับทุกคำร้องขอ
- การจัดเส้นทาง (Routing) — ข้อมูลโมเดลเชิงตรรกะที่เกี่ยวข้องกับการตั้งค่าความเข้ากันได้ในโมเดลของเทมเพลต