הוראות המערכת הן כמו "הוראות מקדימות" שמוסיפים לפני שהמודל נחשף להוראות נוספות ממשתמש הקצה. היא מאפשרת לכם לכוון את ההתנהגות של המודל בהתאם לצרכים ולתרחישי השימוש הספציפיים שלכם.
כל המודלים של Gemini תומכים בהוראות מערכת.
כשמגדירים הוראת מערכת, נותנים למודל הקשר נוסף כדי להבין את המשימה, לספק תשובות מותאמות אישית יותר ולפעול לפי הנחיות ספציפיות במהלך כל האינטראקציה של המשתמש עם המודל. אתם יכולים לציין את ההתנהגות ברמת המוצר בהוראות המערכת, בנפרד מההנחיות שמשתמשי הקצה מספקים. לדוגמה, אתם יכולים לכלול דברים כמו התפקיד או הדמות, מידע על ההקשר והוראות עיצוב.
אפשר להשתמש בהוראות למערכת בהרבה דרכים, למשל:
- הגדרת פרסונה או תפקיד (למשל, לצ'אט בוט)
- הגדרת פורמט הפלט (Markdown, YAML וכו')
- הגדרת הסגנון והטון של הפלט (לדוגמה, דרגת המלל, רמת הרשמיות ורמת הקריאה הרצויה)
- הגדרת יעדים או כללים למשימה (לדוגמה, החזרת קטע קוד בלי הסברים נוספים)
- הוספת הקשר להנחיה (למשל, תאריך סף הידע)
כל הוראת מערכת חלה על כל הבקשה. אם כוללים את ההוראה בהנחיה, היא ממשיכה להיות בתוקף במהלך חילופי הדברים בין המשתמש והמודל. למרות שהוראות המערכת נפרדות מהתוכן של ההנחיה, הן עדיין חלק מההנחיות הכוללות, ולכן כפופות למדיניות הרגילה בנושא שימוש בנתונים.
הגדרת הוראות מערכת
|
כדי לראות תוכן וקוד שספציפיים לספק, לוחצים על הספק Gemini API בדף הזה. |
הגדרת הוראות מערכת לתרחישים כלליים לדוגמה
Swift
מציינים את systemInstruction כשיוצרים מכונה של GenerativeModel.
import FirebaseAILogic
// Specify the system instructions as part of creating the `GenerativeModel` instance
let model = FirebaseAI.firebaseAI(backend: .googleAI()).generativeModel(
modelName: "GEMINI_MODEL_NAME",
systemInstruction: ModelContent(role: "system", parts: "You are a cat. Your name is Neko.")
)
Kotlin
מציינים את systemInstruction כשיוצרים מכונה של GenerativeModel.
// Specify the system instructions as part of creating the `GenerativeModel` instance.
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
modelName = "GEMINI_MODEL_NAME",
systemInstruction = content { text("You are a cat. Your name is Neko.") }
)
Java
מציינים את systemInstruction כשיוצרים מכונה של GenerativeModel.
// Specify the system instructions as part of creating the `GenerativeModel` instance.
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
/* modelName */ "GEMINI_MODEL_NAME",
/* generationConfig (optional) */ null,
/* safetySettings (optional) */ null,
/* requestOptions (optional) */ new RequestOptions(),
/* tools (optional) */ null,
/* toolsConfig (optional) */ null,
/* systemInstruction (optional) */ new Content.Builder().addText("You are a cat. Your name is Neko.").build()
);
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
Web
מציינים את systemInstruction כשיוצרים מכונה של GenerativeModel.
// ...
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Specify the system instructions as part of creating the `GenerativeModel` instance
const model = getGenerativeModel(ai, {
model: "GEMINI_MODEL_NAME",
systemInstruction: "You are a cat. Your name is Neko."
});
Dart
מציינים את systemInstruction כשיוצרים מכונה של GenerativeModel.
// ...
// Specify the system instructions as part of creating the `GenerativeModel` instance.
final model = FirebaseAI.googleAI().generativeModel(
model: 'GEMINI_MODEL_NAME',
systemInstruction: Content.system('You are a cat. Your name is Neko.'),
);
// ...
Unity
מציינים את systemInstruction כשיוצרים מכונה של GenerativeModel.
// ...
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());
// Specify the system instructions as part of creating the `GenerativeModel` instance.
var model = ai.GetGenerativeModel(
modelName: "GEMINI_MODEL_NAME",
systemInstruction: ModelContent.Text("You are a cat. Your name is Neko.")
);
הגדרת הוראות מערכת ל-Gemini Live API
Swift
מציינים את systemInstruction כשיוצרים מכונה של LiveModel.
// ...
// Specify the system instructions as part of creating the `liveModel` instance
let liveModel = FirebaseAI.firebaseAI(backend: .googleAI()).liveModel(
modelName: "GEMINI_LIVE_MODEL_NAME",
systemInstruction: ModelContent(role: "system", parts: "You are a cat. Your name is Neko."),
// ...
)
// ...
Kotlin
מציינים את systemInstruction כשיוצרים מכונה של LiveModel.
// ...
// Specify the system instructions as part of creating the `LiveModel` instance.
val liveModel = Firebase.ai(backend = GenerativeBackend.googleAI()).liveModel(
modelName = "GEMINI_LIVE_MODEL_NAME",
systemInstruction = content { text("You are a cat. Your name is Neko.") },
// ...
)
// ...
Java
מציינים את systemInstruction כשיוצרים מכונה של LiveModel.
// ...
// Specify the system instructions as part of creating the `LiveModel` instance.
LiveGenerativeModel lm = FirebaseAI.getInstance(GenerativeBackend.googleAI()).liveModel(
/* modelName */ "GEMINI_LIVE_MODEL_NAME",
/* systemInstruction (optional) */ new Content.Builder().addText("You are a cat. Your name is Neko.").build()
// ...
);
LiveModelFutures liveModel = LiveModelFutures.from(lm);
// ...
Web
מציינים את systemInstruction כשיוצרים מכונה של LiveGenerativeModel.
// ...
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Specify the system instructions as part of creating the `LiveGenerativeModel` instance.
const liveModel = getLiveGenerativeModel(ai, {
model: "GEMINI_LIVE_MODEL_NAME",
systemInstruction: "You are a cat. Your name is Neko.",
// ...
});
// ...
Dart
מציינים את systemInstruction כשיוצרים מכונה של LiveGenerativeModel.
// ...
// Specify the system instructions as part of creating the `liveGenerativeModel` instance.
final liveModel = FirebaseAI.googleAI().liveGenerativeModel(
model: 'GEMINI_LIVE_MODEL_NAME',
systemInstruction: Content.system('You are a cat. Your name is Neko.'),
// ...
);
// ...
Unity
מציינים את systemInstruction כשיוצרים מכונה של LiveModel.
// ...
// Specify the system instructions as part of creating the `LiveModel` instance.
var liveModel = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI()).GetLiveModel(
modelName: "GEMINI_LIVE_MODEL_NAME",
systemInstruction: ModelContent.Text("You are a cat. Your name is Neko."),
// ...
);
// ...
דוגמאות להוראות מערכת
הנה כמה דוגמאות להוראות מערכת שעוזרות לכוון את ההתנהגות הצפויה של המודל. בחלק מהדוגמאות מוצגת גם הנחיה לדוגמה שההוראה למערכת יכולה לעזור בה.
יצירת קוד
הוראות למערכת:
אתה מומחה לתכנות שמתמחה ברינדור קוד לממשקי קצה קדמי. כשאני מתאר רכיב של אתר שאני רוצה לבנות, תחזיר את קוד ה-HTML וה-CSS שצריך בשביל זה. אל תסביר את הקוד הזה. תציע גם כמה הצעות לעיצוב ממשק המשתמש.הנחיה מהמשתמש:
צור תיבה באמצע הדף שמכילה מבחר תמונות מתחלפות, שלכל אחת מהן יש כיתוב. התמונה במרכז הדף צריכה להיות עם הצללה מאחוריה כדי להבליט אותה. הוא צריך גם לקשר לדף אחר באתר. תשאירו את כתובת ה-URL ריקה כדי שאוכל למלא אותה.
צ'אט בוט למוזיקה
הוראות למערכת:
עליך להגיב כהיסטוריון של מוזיקה, להפגין ידע מקיף במגוון ז'אנרים מוזיקליים ולספק דוגמאות רלוונטיות. הטון שלך צריך להיות אופטימי ונלהב, ולהפיץ את חדוות המוזיקה. אם שאלה לא קשורה למוזיקה, התשובה צריכה להיות "זה מעבר לידע שלי".הנחיה מהמשתמש:
אם אדם נולד בשנות השישים, מה היה ז'אנר המוזיקה הכי פופולרי שהושמע? רשימה של חמישה שירים עם תבליטים.
יצירת נתונים בפורמט מסוים
הוראות למערכת:
אתה עוזר אישי לבשלנים ביתיים. אתם מקבלים רשימה של מצרכים ומשיבים ברשימה של מתכונים שכוללים את המצרכים האלה. מתכונים שלא דורשים רכיבים נוספים תמיד צריכים להופיע לפני מתכונים שכן דורשים רכיבים נוספים.התשובה שלך חייבת להיות אובייקט JSON שמכיל 3 מתכונים. לאובייקט מתכון יש את הסכימה הבאה:
- name: שם המתכון
- usedIngredients: רכיבים במתכון שסופקו ברשימה
- otherIngredients: רכיבים במתכון שלא צוינו ברשימה (השדה הזה מושמט אם אין רכיבים אחרים)
- description: תיאור קצר של המתכון, שכתוב בצורה חיובית כאילו כדי למכור אותו
הנחיית המשתמש:
- שקית של 450 גרם ברוקולי קפוא
- חצי ליטר שמנת מתוקה
- חבילה של 450 גרם קצוות ושאריות גבינה
אפשרויות אחרות לשליטה ביצירת תוכן
- מידע נוסף על עיצוב הנחיות כדי להשפיע על המודל ליצור פלט שמתאים לצרכים הספציפיים שלכם.
- להגדיר פרמטרים של המודל כדי לקבוע איך המודל ייצור תשובה, למשל מספר הטוקנים המקסימלי בפלט, הסבירות של טוקנים חוזרים בפלט וכו'.
- אתם יכולים להשתמש בהגדרות הבטיחות כדי לשנות את הסבירות לקבלת תשובות שעלולות להיחשב כמזיקות, כולל דברי שטנה ותוכן מיני בוטה.
- מעבירים סכֵימת תשובה יחד עם ההנחיה כדי לציין סכֵימת פלט ספציפית. התכונה הזו משמשת בדרך כלל כשרוצים ליצור פלט בפורמט JSON, אבל אפשר להשתמש בה גם למשימות סיווג (למשל, כשרוצים שהמודל ישתמש בתוויות או בתגים ספציפיים).