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


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

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

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

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

ปกป้องเทมเพลตของคุณ

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

  • ล็อกเทมเพลตก่อนเผยแพร่เวอร์ชันที่ใช้งานจริง

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

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

ปกป้องการใช้งาน 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 (ซึ่งระบุเป็นตัวแปรอินพุตได้)