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