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


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

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

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

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

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

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

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

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

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

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