แนวทางปฏิบัติแนะนำและข้อควรพิจารณาสำหรับเทมเพลต


หน้านี้อธิบายแนวทางปฏิบัติแนะนำและข้อควรพิจารณา สำหรับเทมเพลตพรอมต์ของเซิร์ฟเวอร์ รวมถึง ฟีเจอร์ที่ยังไม่รองรับ โปรดทราบว่าฟีเจอร์เหล่านี้หลายรายการจะพร้อมใช้งานเมื่อเทมเพลตพรอมต์ของเซิร์ฟเวอร์ได้รับการพัฒนา ดังนั้นโปรดดู บันทึกประจำรุ่นเพื่อดูข้อมูลอัปเดต

แนวทางปฏิบัติแนะนำ

แนวทางปฏิบัติแนะนำหลายรายการเหล่านี้มีการอธิบายไว้โดยละเอียดใน หัวข้อจัดการเทมเพลต

กำหนดเวอร์ชันเทมเพลต

ปกป้องเทมเพลต

  • หลีกเลี่ยงการแก้ไขเทมเพลตที่ใช้ในเวอร์ชันที่ใช้งานจริง เว้นแต่คุณจะทดสอบการเปลี่ยนแปลงอย่างละเอียดแล้ว

  • ล็อกเทมเพลตก่อนที่จะนำไปใช้ในเวอร์ชันที่ใช้งานจริง

    • การล็อกเทมเพลตทำหน้าที่เป็นการป้องกันการแก้ไขโดยไม่ตั้งใจ แต่ การล็อก **ไม่ได้** ป้องกันการแก้ไขทั้งหมด สมาชิกโปรเจ็กต์ที่มีสิทธิ์ที่เหมาะสมจะปลดล็อกเทมเพลตเพื่อแก้ไขได้ทุกเมื่อ

    • เราขอแนะนำให้ล็อกเทมเพลตที่โค้ดกำลังใช้งานอยู่ โดยเฉพาะโค้ดเวอร์ชันที่ใช้งานจริง

ปกป้องการใช้งาน 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

  • การใช้ Partial ซึ่งเป็นข้อมูลโค้ดเทมเพลตที่ใช้ซ้ำได้ซึ่งรวมอยู่ในเทมเพลตอื่นๆ ได้

ข้อควรพิจารณาอื่นๆ

  • โดยค่าเริ่มต้น เมื่อคุณใช้ UI แบบแนะนำในคอนโซล Firebase เรา จะจัดเตรียมเทมเพลตในทุก ภูมิภาคที่พร้อมใช้งานสำหรับ Firebase AI Logic หากคุณใช้ Vertex AI Gemini API และกรณีการใช้งานของคุณต้องมีการจำกัดตามสถานที่ตั้ง คุณสามารถ ระบุสถานที่ตั้งสำหรับเทมเพลต ได้โดยใช้ REST API

  • หากต้องการ ระบุเทมเพลตพรอมต์ของเซิร์ฟเวอร์เป็นไฟล์ (แทนการใช้ Firebase UI แบบแนะนำของคอนโซล) คุณสามารถใช้ REST API ได้ โปรดทราบว่าเทมเพลตพรอมต์ของเซิร์ฟเวอร์ ไม่ รองรับสคีมาที่กำหนดไว้ในโค้ดแอปและส่งไปยังเทมเพลต

  • แม้ว่าเทมเพลตจะอยู่ในเซิร์ฟเวอร์ แต่เทมเพลตก็ไม่สามารถโต้ตอบกับทรัพยากรอื่นๆ ฝั่งเซิร์ฟเวอร์ของโปรเจ็กต์ Firebase (เช่น ฐานข้อมูล) ยกเว้น URL Cloud Storage for Firebase (ซึ่งระบุเป็นตัวแปรอินพุต ได้)