หน้านี้อธิบายแนวทางปฏิบัติแนะนำและข้อควรพิจารณาบางประการ สำหรับเทมเพลตพรอมต์ของเซิร์ฟเวอร์ ซึ่งรวมถึงฟีเจอร์ที่ยังไม่รองรับ โปรดทราบว่าฟีเจอร์เหล่านี้หลายอย่างจะพร้อมใช้งานเมื่อเทมเพลตพรอมต์ของเซิร์ฟเวอร์ได้รับการพัฒนา ดังนั้นโปรดดูบันทึกประจำรุ่นเพื่อรับข้อมูลอัปเดต
แนวทางปฏิบัติแนะนำ
แนวทางปฏิบัติแนะนำหลายอย่างเหล่านี้มีรายละเอียดอยู่ในหัวข้อจัดการเทมเพลตด้วย
จัดเวอร์ชันเทมเพลต
สร้างรหัสเทมเพลตที่ต่อท้ายด้วยเวอร์ชันที่ใช้ การกำหนดเวอร์ชันเชิงความหมาย (semver)
ใช้ Firebase Remote Config เพื่อให้คุณเปลี่ยนเทมเพลตและค่าอื่นๆ ในคำขอได้อย่างง่ายดาย
ปกป้องเทมเพลตของคุณ
หลีกเลี่ยงการแก้ไขเทมเพลตที่ใช้ในการผลิต เว้นแต่คุณจะทดสอบการเปลี่ยนแปลงอย่างละเอียดแล้ว
ล็อกเทมเพลตก่อนเผยแพร่เป็นเวอร์ชันที่ใช้งานจริง
การล็อกเทมเพลตจะช่วยป้องกันการแก้ไขโดยไม่ตั้งใจ แต่ไม่ได้บล็อกการแก้ไขทั้งหมด สมาชิกโปรเจ็กต์ที่มี สิทธิ์ที่เหมาะสมจะปลดล็อกเทมเพลตเพื่อแก้ไขได้เสมอ
เราขอแนะนำให้ล็อกเทมเพลตที่โค้ดใช้อยู่ในขณะนี้ โดยเฉพาะโค้ดที่ใช้งานจริง
ปกป้องการใช้งาน Gemini API
เขียนการตรวจสอบอินพุตที่รัดกุม สำหรับตัวแปรอินพุต ซึ่งจะช่วยในเรื่องต่อไปนี้
- ช่วยป้องกันการแทรกพรอมต์ได้
- ช่วยให้มั่นใจได้ว่าคำขอจะสำเร็จและคำตอบจะเป็นไปตามที่คาดไว้
บังคับใช้โหมดเทมเพลตเท่านั้น สําหรับโปรเจ็กต์ Firebase เพื่อให้คําขอ Gemini API ทั้งหมดผ่าน Firebase AI Logic ต้องใช้เทมเพลตพรอมต์ของเซิร์ฟเวอร์
ฟีเจอร์ที่เทมเพลตพรอมต์ฝั่งเซิร์ฟเวอร์ยังไม่รองรับ
ฟีเจอร์เหล่านี้หลายอย่างจะพร้อมใช้งานเมื่อเทมเพลตพรอมต์ของเซิร์ฟเวอร์ได้รับการพัฒนา โปรดดูข้อมูลอัปเดตในบันทึกประจำรุ่น
เทมเพลตยังไม่รองรับความสามารถของ Firebase AI Logic
ความสามารถมาตรฐานต่อไปนี้จาก Firebase AI Logic ยังไม่ รองรับผ่านเทมเพลตพรอมต์ของเซิร์ฟเวอร์
- การสตรีมแบบสองทิศทาง (Gemini Live API)
- การอนุมานแบบไฮบริดหรือในอุปกรณ์
- จำกัดเอาต์พุตให้เป็นรายการ Enum
นอกจากนี้ โปรดทราบว่าหากคุณใช้การตรวจสอบ AI ในคอนโซล Firebase ระบบจะยังไม่ได้ป้อนรหัสเทมเพลตในระเบียนใดๆ
องค์ประกอบทั่วไปของ Dotprompt ที่เทมเพลตยังไม่รองรับ
เทมเพลตพรอมต์ฝั่งเซิร์ฟเวอร์น่าจะรองรับองค์ประกอบทั่วไปต่อไปนี้ของ Dotprompt ในเร็วๆ นี้
การใช้ข้อกำหนดของสคีมา JSON สำหรับสคีมาอินพุตและเอาต์พุตในส่วนหน้า
- โปรดทราบว่าคำขอเทมเพลตที่ไม่ใช่เซิร์ฟเวอร์ก็ไม่รองรับข้อกำหนดนี้เช่นกัน ปัจจุบันเรารองรับเฉพาะ ข้อกําหนดของสคีมา OpenAPI
การประกาศคำจำกัดความของฟิลด์ไวลด์การ์ดโดยใช้
*การใช้
@keyหรือการวนซ้ำฟิลด์ของอินพุตออบเจ็กต์โดยทั่วไป (ซึ่งเป็นกรณีที่@keyเกี่ยวข้อง)การใช้
@rootซึ่งช่วยให้คุณอ้างอิงบริบทตัวแปรรากได้ไม่ว่าthisจะเป็นอะไรก็ตาม
เทมเพลตพรอมต์ของเซิร์ฟเวอร์อาจไม่รองรับองค์ประกอบทั่วไปต่อไปนี้ของ Dotprompt
- การใช้ไฟล์ย่อย ซึ่งเป็นข้อมูลโค้ดเทมเพลตที่นำกลับมาใช้ใหม่ได้ซึ่งรวมอยู่ใน เทมเพลตอื่นๆ
ข้อควรพิจารณาอื่นๆ
โดยค่าเริ่มต้น เมื่อคุณใช้ UI ที่มีคำแนะนำใน Firebase Console เราจะจัดสรรเทมเพลตในภูมิภาคที่รองรับทั้งหมดสำหรับ Firebase AI Logic หากคุณใช้ Agent Platform Gemini API (formerly Vertex AI) และกรณีการใช้งานของคุณต้องมีข้อจำกัดตามตำแหน่ง คุณจะระบุตำแหน่งสำหรับเทมเพลตได้ โดยใช้ REST API
หากต้องการระบุเทมเพลตพรอมต์ของเซิร์ฟเวอร์เป็นไฟล์ (แทนการใช้ UI แบบมีคำแนะนำของคอนโซล Firebase) คุณสามารถใช้ REST API ได้ โปรดทราบว่าเทมเพลตพรอมต์ของเซิร์ฟเวอร์ไม่รองรับสคีมาที่กำหนดไว้ใน โค้ดแอปและส่งไปยังเทมเพลต
แม้ว่าเทมเพลตจะอยู่ในเซิร์ฟเวอร์ แต่ก็ไม่สามารถโต้ตอบโดยตรง กับทรัพยากรฝั่งเซิร์ฟเวอร์อื่นๆ ของโปรเจ็กต์ Firebase (เช่น ฐานข้อมูล) ยกเว้น URL ของ Cloud Storage for Firebase (ซึ่งระบุเป็นตัวแปรอินพุตได้)