หน้านี้อธิบายแนวทางปฏิบัติแนะนำและข้อควรพิจารณาบางประการสำหรับเทมเพลตพรอมต์เซิร์ฟเวอร์ รวมถึงฟีเจอร์ที่ยังไม่รองรับ โปรดทราบว่าฟีเจอร์เหล่านี้จำนวนมากจะพร้อมใช้งานเมื่อเทมเพลตพรอมต์เซิร์ฟเวอร์ได้รับการพัฒนา ดังนั้นโปรดดูข้อมูลอัปเดตในบันทึกประจำรุ่น
แนวทางปฏิบัติแนะนำ
แนวทางปฏิบัติแนะนำเหล่านี้หลายข้อมีรายละเอียดอยู่ในจัดการเทมเพลตด้วย
กำหนดเวอร์ชันของเทมเพลต
สร้างรหัสเทมเพลตที่ต่อท้ายด้วยเวอร์ชันที่ใช้การกำหนดเวอร์ชันเชิงความหมาย (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 หากคุณใช้ Agent Platform Gemini API (formerly Vertex AI) และกรณีการใช้งานของคุณต้องมีการจำกัดตามสถานที่ คุณสามารถระบุสถานที่สำหรับเทมเพลตโดยใช้ REST API ได้
หากต้องการระบุเทมเพลตพรอมต์เซิร์ฟเวอร์เป็นไฟล์ (แทนการใช้ UI ที่มีคำแนะนำของคอนโซล Firebase) คุณสามารถใช้ REST API ได้ โปรดทราบว่าเทมเพลตพรอมต์ของเซิร์ฟเวอร์ไม่รองรับสคีมาที่กำหนดไว้ในโค้ดแอปและส่งไปยังเทมเพลต
แม้ว่าเทมเพลตจะอยู่บนเซิร์ฟเวอร์ แต่ก็ไม่สามารถโต้ตอบกับทรัพยากรฝั่งเซิร์ฟเวอร์อื่นๆ ของโปรเจ็กต์ Firebase (เช่น ฐานข้อมูล) ได้โดยตรง ยกเว้น URL ของ Cloud Storage for Firebase (ซึ่งระบุเป็นตัวแปรอินพุตได้)