בדף הזה מתוארות כמה שיטות מומלצות ושיקולים לגבי תבניות לפרומפט של שרת, כולל תכונות שעדיין לא נתמכות. שימו לב: הרבה מהתכונות האלה יהיו זמינות ככל שתבניות לפרומפט של שרת יתפתחו, לכן כדאי לעיין בהערות לגבי הגרסה כדי לקבל עדכונים.
שיטות מומלצות
רבות מהשיטות המומלצות האלה מפורטות גם במאמר בנושא ניהול התבניות.
יצירת גרסאות של התבניות
יוצרים מזהי תבניות עם גרסה שמצורפת אליהם באמצעות ניהול גרסאות סמנטי (semver).
כדאי להשתמש ב-Firebase Remote Config כדי שתוכלו לשנות בקלות את התבנית וערכים אחרים בבקשה.
הגנה על התבנית
מומלץ להימנע מעריכה של תבניות שנמצאות בשימוש בסביבת הייצור, אלא אם בדקתם את השינוי באופן יסודי.
לפני שמעבירים את התבנית לסביבת הייצור, צריך לנעול אותה.
נעילת תבנית משמשת כאמצעי הגנה מפני עריכה לא מכוונת, אבל נעילה לא חוסמת לחלוטין את האפשרות לערוך. חבר צוות בפרויקט עם ההרשאות המתאימות תמיד יכול לבטל את הנעילה של תבנית כדי לערוך אותה.
מומלץ לנעול תבניות שנמצאות בשימוש פעיל בקוד – במיוחד קוד ייצור.
הגנה על השימוש ב-Gemini API
כדאי לכתוב אימות קלט חזק למשתני הקלט, שיכול לעזור במקרים הבאים:
- יכול לעזור בהגנה מפני החדרת פרומפטים.
- הוא יכול לעזור לוודא שהבקשות יצליחו והתשובות יהיו כמו שציפיתם.
הפעלת מצב של תבניות בלבד בפרויקט Firebase, כך שכל הבקשות של Gemini API דרך Firebase AI Logic חייבות להשתמש בתבנית לפרומפט.
תכונות שעדיין לא נתמכות בתבניות לפרומפט של שרת
הרבה מהתכונות האלה יהיו זמינות ככל שתבניות לפרומפט לשרת יתפתחו, לכן כדאי לעיין בהערות על הגרסה כדי להתעדכן.
היכולות של Firebase AI Logic עדיין לא נתמכות בתבניות
היכולות הרגילות הבאות מ-Firebase AI Logic עדיין לא נתמכות באמצעות תבניות לפרומפט של שרת:
- סטרימינג דו-כיווני (Gemini Live API)
- הסקה היברידית או הסקה במכשיר
- הגבלת הפלט לרשימה של סוגי enum
חשוב גם לזכור שאם משתמשים במעקב אחרי שימוש בתכונות AI במסוף Firebase, מזהה התבנית עדיין לא מאוכלס באף רשומה.
רכיבים נפוצים של Dotprompt שעדיין לא נתמכים בתבניות
סביר להניח שבקרוב תהיה תמיכה בתבניות לפרומפט של שרת ברכיבים הנפוצים הבאים של Dotprompt:
שימוש במפרט של סכימת JSON לסכימות קלט ופלט ב-frontmatter.
- הערה: המפרט הזה לא נתמך גם בבקשות של תבניות שלא מבוססות על שרת. בשלב הזה, אנחנו תומכים רק במפרט סכימת OpenAPI.
הצהרה על הגדרת שדה עם תו כללי לחיפוש באמצעות
*.שימוש ב-
@keyאו באופן כללי, חזרה על השדות של קלט אובייקט (זה המקרה שבו@keyרלוונטי).אפשר להשתמש ב-
@root, שמאפשר להפנות להקשר של המשתנה ברמה הבסיסית בלי קשר ל-thisהנוכחי.
תבניות לפרומפטים בשרת כנראה לא יתמכו ברכיבים הנפוצים הבאים של Dotprompt:
- שימוש בחלקי תבניות (partials), שהם קטעי תבניות שאפשר לעשות בהם שימוש חוזר ולכלול אותם בתבניות אחרות.
שיקולים נוספים
כברירת מחדל, כשמשתמשים בממשק המשתמש המודרך במסוף Firebase, אנחנו מקצים את התבנית בכל האזורים הנתמכים של Firebase AI Logic. אם אתם משתמשים ב-Agent Platform Gemini API (formerly Vertex AI), והתרחיש לדוגמה שלכם דורש הגבלות לפי מיקום, אתם יכולים לציין את המיקום של התבנית באמצעות API בארכיטקטורת REST.
אם רוצים לספק תבנית לפרומפט לשרת כקובץ (במקום להשתמש בממשק המשתמש המודרך של Firebase המסוף), אפשר להשתמש ב-API בארכיטקטורת REST. שימו לב: תבניות לפרומפט של שרת לא תומכות בסכימה שמוגדרת בקוד האפליקציה ומועברת לתבנית.
למרות שהתבנית נמצאת בשרת, היא לא יכולה ליצור אינטראקציה ישירה עם משאבים אחרים בצד השרת של פרויקט Firebase (כמו מסד נתונים), למעט כתובות URL של Cloud Storage for Firebase (שאפשר לספק כמשתני קלט).