ב-Firebase AI Logic, מסוף Firebase מספק ממשק משתמש מודרך שבו אפשר לציין את התוכן של תבנית.
תבניות הנחיות לשרת משתמשות בתחביר ובפורמט שמבוססים על Dotprompt. בדף הזה אפשר למצוא תיאורים מפורטים של פורמט התבנית והתחביר שלה, וגם דוגמאות.
אלה הרכיבים הכי חשובים בדוגמה לבקשה למודל Gemini:
---
model: 'gemini-3-flash-preview'
---
{{role "system"}}
All output must be a clearly structured invoice document.
Use a tabular or clearly delineated list format for line items.
{{role "user"}}
Create an example customer invoice for a customer named {{customerName}}.
החלק העליון בין שלושת המקפים מכיל את שם המודל, וגם את ההגדרות של המודל, אימות הקלט או הסכימה שרוצים לשלוח בבקשה. הוא נכתב בתור צמדי מפתח-ערך, ובדרך כלל נקרא frontmatter של YAML.
גוף התבנית מכיל את ההנחיה. הוא יכול לכלול גם הוראות מערכת וערכי קלט (באמצעות תחביר Handlebars).
בדף הזה מפורטים הפורמט והתחביר של התבנית, ומוצגות דוגמאות ל:
כל הדוגמאות בדף הזה מציגות תבניות שמשתמשות ב-gemini-3-flash-preview, אבל אתם יכולים להשתמש בכל מודל של Gemini שנתמך על ידי Firebase AI Logic (חוץ ממודלים של Gemini Live).
שלום עולם
דוגמה מינימלית לתבנית של הנחיה לשרת:
הגדרה (frontmatter)
---
model: 'gemini-3-flash-preview'
---
ההנחיה וההוראות למערכת (אם רלוונטי)
Write a story about a magic backpack.
שליטה ביצירת תשובות
יש כמה דרכים לשלוט ביצירת התשובות, בהתאם לתרחיש השימוש ולרמת השליטה שאתם צריכים.
הגדרת המודל
מגדירים הגדרת מודל כדי לשלוט באופן שבו המודל יוצר תגובה, כמו מספר מקסימלי של טוקנים של פלט, רמת אקראיות, Top-K ו-Top-P.
הגדרה (frontmatter)
---
model: 'gemini-3-flash-preview'
config:
candidateCount: 1
temperature: 0.9
topP: 0.1
topK: 16
maxOutputTokens: 200
stopSequences: ["red"]
---
ההנחיה וההוראות למערכת (אם רלוונטי)
Write a story about a magic backpack.
הגדרות של 'רק רגע…'
מציינים הגדרה שקשורה לחשיבה למודלים שתומכים בחשיבה.
הגדרה (frontmatter)
Gemini 3 ומודלים מתקדמים יותר (רמות חשיבה)
--- model: 'gemini-3-flash-preview' config: thinkingConfig: thinkingLevel: medium includeThoughts: true ---מודלים של Gemini 2.5 (תקציבים)
--- model: 'gemini-3-flash-preview' config: thinkingConfig: thinkingBudget: 1024 includeThoughts: true ---
ההנחיה וההוראות למערכת (אם רלוונטי)
Solve x^2 + 4x + 4 = 0
הגדרות בטיחות
אפשר להשתמש בהגדרות הבטיחות כדי לשנות את הסיכוי לקבל תשובות שעלולות להיחשב כמזיקות.
הגדרה (frontmatter)
דוגמה עם הגדרת בטיחות אחת:
---
model: 'gemini-3-flash-preview'
config:
safetySettings:
- category: HARM_CATEGORY_HARASSMENT
threshold: BLOCK_ONLY_HIGH
---
דוגמה עם כמה הגדרות בטיחות:
---
model: 'gemini-3-flash-preview'
config:
safetySettings:
- category: HARM_CATEGORY_HARASSMENT
threshold: BLOCK_ONLY_HIGH
- category: HARM_CATEGORY_HATE_SPEECH
threshold: BLOCK_MEDIUM_AND_ABOVE
---
ההנחיה וההוראות למערכת (אם רלוונטי)
Write a story about a magic backpack.
הוראות מערכת
הגדרת הוראות למערכת כדי לכוון את התנהגות המודל. אתם כוללים אותם כחלק מההנחיה:
מגדירים את הוראות המערכת באמצעות התחביר
{{role "system"}}.מגדירים את הנחיית הטקסט באמצעות התחביר
{{role "user"}}.
הגדרה (frontmatter)
---
model: 'gemini-3-flash-preview'
---
ההנחיה וההוראות למערכת (אם רלוונטי)
{{role "system"}}
All output must be a clearly structured invoice document.
Use a tabular or clearly delineated list format for line items.
{{role "user"}}
Create an example customer invoice for a customer.
משתני קלט
חלק מההנחיות הן סטטיות, אבל לעיתים קרובות צריך לכלול בהנחיה נתונים מסוימים מהמשתמש.
אפשר לכלול במנחה משתני קלט דינמיים באמצעות ביטויי Handlebars, שנמצאים בתוך תגי {{ }} בפורמט {{variableName}} או {{object.propertyName}} (לדוגמה, Hello, {{name}} from {{address.city}}).
הגדרה (frontmatter)
---
model: 'gemini-3-flash-preview'
---
ההנחיה וההוראות למערכת (אם רלוונטי)
Create an example customer invoice for a customer named {{customerName}}.
אפשר לספק ערך ברירת מחדל בתבנית, אבל בדרך כלל הלקוח מספק את הערך של משתנה קלט כחלק מהבקשה.
זרימות בקרה (לולאות ותנאים)
כדי לכתוב הנחיות מורכבות יותר, אפשר להשתמש בבלוקים מותנים (כמו #if ,
else ו-#unless) ובאיטרציה (#each).
אפשר לספק מידע נוסף על ההקשר כמשתנים עם קידומת מיוחדת @:
-
@first: הערך הוא true כשמבצעים איטרציה על הפריט הראשון בבלוק#each. -
@last: הערך הוא true כשמבצעים איטרציה על הפריט האחרון בבלוק#each. -
@index: מחזיר את מיקום האינדקס (מבוסס-אפס) של הרכיב הנוכחי.
מידע על כל העוזרים הלוגיים המובנים זמין במסמכי התיעוד של Handlebars.
הגדרה (frontmatter)
---
model: 'gemini-3-flash-preview'
---
ההנחיה וההוראות למערכת (אם רלוונטי)
Create an example customer invoice for a customer named {{customerName}}.
Include entries for each of the following products
{{#each productNames}}
{{#if @first}}
Include line items for the following purchases
{{/if}}
- {{this}}
{{/each}}
{{#if isVipCustomer}}
Give the customer a 5% discount.
{{/if}}
הערה: תנאים מקבלים רק הפניה למשתנה, ולא אף סוג של ביטוי, לדוגמה:
- הקוד הבא פועל:
{{#if isVipCustomer}} ... {{/if}} - הפעולה הבאה לא עובדת:
{{#if customer.type == 'vip'}} ... {{/if}}
אם המשתנה הוא בוליאני, התנאי פועל כצפוי. אם המשתנה לא בוליאני, התנאי הוא למעשה בדיקה של 'לא אפס'. האפשרות הזו יכולה להיות שימושית לטיפול בקלטים אופציונליים, לדוגמה:
{{#if customerName}}
Hello {{customerName}}
{{else}}
Hello Guest
{{/if}}
אימות קלט וסכימה
אם יש לכם נתונים שמגיעים מהלקוח, מומלץ מאוד להשתמש בסכימת קלט כדי להגן מפני הזרקת הנחיות וגם כדי לוודא שהנתונים שמועברים בבקשה תואמים לציפיות שלכם.
אתם יכולים לספק ערכי ברירת מחדל למקרה שהלקוח לא יספק ערך.
הסכימה תומכת בסוגים סקלריים
string,integer,number,booleanו-object. אובייקטים, מערכים וסוגי enum מסומנים בסוגריים אחרי שם השדה.כל המאפיינים נחשבים לחובה, אלא אם מציינים שהם אופציונליים באמצעות
?. כשמאפיין מסומן כאופציונלי, הוא גם מוגדר כמאפשר ערך null כדי לספק יותר גמישות למודלים של שפה גדולה (LLM) להחזיר ערך null במקום להשמיט שדה.
דוגמה בסיסית לאספקת סכימת קלט בהמשך מופיעה סכימה מתקדמת יותר.
הגדרה (frontmatter)
---
model: 'gemini-3-flash-preview'
input:
default:
isVipCustomer: false
schema:
customerName: string, the customers name # string, number, and boolean types are defined like this
productNames?(array, list of products to include in the invoice): string # optional fields are marked with a ?
isVipCustomer?: boolean, whether or not the customer is a VIP
---
ההנחיה וההוראות למערכת (אם רלוונטי)
Create an example customer invoice for a customer named {{customerName}}.
Include entries for each of the following products
{{#each productNames}}
{{#if @first}}
Include line items for the following purchases
{{/if}}
- {{this}}
{{/each}}
{{#if isVipCustomer}}
Give the customer a 5% discount.
{{/if}}
סכימת הפלט
אם רוצים שהמודל ייצור פלט JSON מובנה, אפשר לציין סכימת פלט. כשמציינים format: json, מגבילים את המודל כך שתמיד יחזיר תגובת JSON לפי הסכימה שצוינה.
הסכימה תומכת בסוגים סקלריים
string,integer,number,booleanו-object. אובייקטים, מערכים וסוגי enum מסומנים בסוגריים אחרי שם השדה.כל המאפיינים נחשבים לחובה, אלא אם מציינים שהם אופציונליים באמצעות
?. כשמאפיין מסומן כאופציונלי, הוא גם מוגדר כמאפשר ערך null כדי לספק יותר גמישות למודלים של שפה גדולה (LLM) להחזיר ערך null במקום להשמיט שדה.
דוגמה בסיסית ליצירת פלט JSON מובנה. בהמשך מופיעה סכימה מתקדמת יותר.
הגדרה (frontmatter)
---
model: gemini-3-flash-preview
output:
format: json
schema:
invoiceId: string
invoiceFile(object, an invoice file):
url?: string
contents: string
mimeType: string
---
ההנחיה וההוראות למערכת (אם רלוונטי)
Create an example customer invoice.
קלט מרובה מצבים
הנחיות מולטי-מודאליות שנשלחות למודל Gemini יכולות לכלול כמה סוגים של קלט, כולל קבצים (כמו טקסט יחד עם תמונות, קובצי PDF, קובצי טקסט רגיל, אודיו ווידאו).
מציינים קובץ באמצעות כתובת ה-URL שלו עם התחביר
{{media url}}.צריך לספק קובץ מוטבע עם התחביר
{{media type="mime_type" data="contents"}}.
דוגמה בסיסית (קלט מרובה מצבים)
דוגמה בסיסית להזנת קלט מולטימודאלי. דוגמה מורכבת יותר מופיעה בהמשך.
הגדרה (frontmatter)
---
model: 'gemini-3-flash-preview'
---
ההנחיה וההוראות למערכת (אם רלוונטי)
Describe this image
{{media type="mimeType" data="imageData"}}
דוגמה מורכבת (קלט מרובה מצבים)
הנה דוגמה מורכבת יותר לאספקת קלט רב-אופני.
הגדרה (frontmatter)
---
model: gemini-3-flash-preview
input:
schema:
image_urls?(array, urls of external images): string
inline_images?(array, inline image data):
type: object
properties:
mime_type: string
contents: string # inline data must be base64-encoded
---
ההנחיה וההוראות למערכת (אם רלוונטי)
{{role "system"}}
Use the following image as the basis for comparisons
{{media url="http://example.com/reference_img.bmp"}}
{{role "user"}}
What do the following images have in common?
{{#each image_urls}}
{{media url="this"}}
{{/each}}
{{#each inline_images}}
{{media type="mime_type" data="contents"}}
{{/each}}
שימוש בכלים
תבניות של הנחיות לשרת תומכות בכלים הבאים.
אם רוצים שהמשתמשים יספקו מידע נוסף לבקשה למודל, צריך להשתמש במשתני קלט בתבנית ההנחיה של השרת, יחד עם אימות קלט.
.בקשה להפעלת פונקציה
כאן אפשר לעיין במדריך המלא לשימוש בתבניות של הנחיות בשרת כדי להפעיל פונקציות.
ביצוע קוד
הכלי code execution מאפשר למודל ליצור ולהריץ קוד Python.
הגדרה (frontmatter)
---
model: 'gemini-3-flash-preview'
tools:
- codeExecution
---
ההנחיה וההוראות למערכת (אם רלוונטי)
What is the sum of the first 50 prime numbers?
Generate and run code for the calculation, and make sure you get all 50.
ההקשר של כתובת ה-URL
הכלי URL context מאפשר לספק למודל הקשר נוסף בצורה של כתובות URL. בדוגמה הזו מוצג גם איך אפשר לציין אימות קלט עבור כתובות URL אם הן מסופקות על ידי המשתמש.
הגדרה (frontmatter)
---
model: 'gemini-3-flash-preview'
input:
schema:
url1:
type: string
pattern: '^https?://[\w.-]+\.[a-z]{2,}\S*$'
maxLength: 100
url2:
type: string
pattern: '^https?://[\w.-]+\.[a-z]{2,}\S*$'
maxLength: 100
tools:
- urlContext
---
ההנחיה וההוראות למערכת (אם רלוונטי)
Compare the ingredients and cooking times from the recipes at {{url1}} and {{url2}}
עיגון באמצעות חיפוש Google
הכלי עיגון באמצעות חיפוש Google מקשר את המודל לתוכן מהאינטרנט שזמין לציבור בזמן אמת.
הגדרה (frontmatter)
---
model: 'gemini-3-flash-preview'
tools:
- googleSearch
---
ההנחיה וההוראות למערכת (אם רלוונטי)
Who won the Euro 2024?
Imagen (יצירת תמונות) (הוצא משימוש)
בגרסה הראשונית, תבניות של הנחיות לשרת תומכות ביצירת תמונות באמצעות מודלים של Imagen והנחיה שמבוססת על טקסט בלבד. אפשר לחזור לכאן מאוחר יותר כדי לקבל תמיכה נוספת, כולל עריכת תמונות באמצעות Imagen (כשמשתמשים ב-Vertex AI Gemini API).
בסיסי
בדוגמה הזו מוצגת תבנית בסיסית ליצירת תמונות באמצעות Imagen, עם משתני קלט ואימות קלט בדומה ל-Gemini.
הגדרה (frontmatter)
---
model: 'imagen-4.0-generate-001'
input:
schema:
prompt: 'string'
---
ההנחיה וההוראות למערכת (אם רלוונטי)
Create an image containing {{prompt}}
מתקדם
בדוגמה הזו מוצגות דרכים להוסיף הגדרות מודל, לציין הגדרות בטיחות ולהשתמש בתכונות מתקדמות יותר בהנחיה, כמו משתני קלט, אימות קלט וזרימות בקרה, בדומה ל-Gemini.
הגדרה (frontmatter)
---
model: 'imagen-4.0-fast-generate-001'
config:
sampleCount: 1
aspectRatio: "16:9"
personGeneration: dont_allow
includeRaiReason: true
safetySetting: block_medium_and_above
input:
schema:
style(enum, The style of image): [photo, sketch, painting]
subject: string, The object or animal or scenery to generate.
context?: string, Optional background or context description.
default:
style: photo
---
ההנחיה וההוראות למערכת (אם רלוונטי)
A {{style}} of {{subject}}{{#if context}}{{context}}{{/if}}.