System instructions הן כמו "הקדמה" שמוסיפים לפני שהמודל נחשף להוראות נוספות ממשתמש הקצה. הוא מאפשר לכם לשלוט בהתנהגות של המודל בהתאם לצרכים הספציפיים ולתרחישי השימוש שלכם.
כל המודלים של Gemini תומכים בהוראות מערכת. הם לא נתמכים במודלים של Imagen.
כשמגדירים הוראת מערכת, מספקים למודל הקשר נוסף כדי להבין את המשימה, לתת תשובות מותאמות אישית יותר ולפעול בהתאם להנחיות ספציפיות לאורך האינטראקציה המלאה של המשתמש עם המודל. אתם יכולים לציין התנהגות ברמת המוצר בהוראות מערכת, בנפרד מההנחיות שסופקו על ידי משתמשי קצה. לדוגמה, אפשר לכלול פרטים כמו התפקיד או האישיות, נתוני הקשר והוראות עיצוב.
אפשר להשתמש בהוראות למערכת בדרכים רבות, כולל:
- הגדרת פרסונה או תפקיד (לדוגמה, לצ'אטבוט)
- הגדרת פורמט הפלט (Markdown, YAML וכו')
- הגדרת סגנון וטון הפלט (לדוגמה, דרגת מלל, רמת הנימוס ורמת קריאה)
- הגדרת יעדים או כללים למשימה (לדוגמה, החזרת קטע קוד ללא הסברים נוספים)
- לספק הקשר נוסף לפרומפט (לדוגמה, תאריך סף הידע)
כל הוראת מערכת חלה על כל הבקשה. אם כוללים את ההוראה בהנחיה, היא ממשיכה להיות בתוקף במהלך חילופי הדברים בין המשתמש והמודל. ההוראות למערכת נפרדות מתוכן ההנחיה, אבל הן עדיין חלק מההנחיות הכוללות שלכם ולכן הן כפופות למדיניות הרגילה בנושא שימוש בנתונים.
הגדרת הוראות מערכת
|
לוחצים על הספק Gemini API כדי לראות בדף הזה תוכן וקוד שספציפיים לספק. |
הגדרת הוראות מערכת לתרחישי שימוש כלליים
Swift
כשיוצרים מופע GenerativeModel, מציינים את systemInstruction.
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
כשיוצרים מופע GenerativeModel, מציינים את systemInstruction.
// 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
כשיוצרים מופע GenerativeModel, מציינים את systemInstruction.
// 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
כשיוצרים מופע GenerativeModel, מציינים את systemInstruction.
// ...
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
כשיוצרים מופע GenerativeModel, מציינים systemInstruction.
// ...
// 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
כשיוצרים מופע GenerativeModel, מציינים את systemInstruction.
// ...
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
כשיוצרים מופע LiveModel, מציינים את systemInstruction.
// ...
// 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
כשיוצרים מופע LiveModel, מציינים את systemInstruction.
// ...
// 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
כשיוצרים מופע LiveModel, מציינים את systemInstruction.
// ...
// 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
כשיוצרים מופע LiveGenerativeModel, מציינים את systemInstruction.
// ...
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
כשיוצרים מופע LiveGenerativeModel, מציינים systemInstruction.
// ...
// 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
כשיוצרים מופע LiveModel, מציינים את systemInstruction.
// ...
// 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 ריקה כדי שאוכל למלא אותה.
צ'אט בוט למוזיקה
הוראה למערכת:
תגיב כהיסטוריון מוזיקה, ותציג ידע מקיף במגוון ז'אנרים מוזיקליים, ותספק דוגמאות רלוונטיות. הטון שלך יהיה אופטימי ונלהב, ותעביר את השמחה שבמוזיקה. אם השאלה לא קשורה למוזיקה, התשובה צריכה להיות: "אין לי מידע על זה".פרומפט של משתמש:
אם אדם נולד בשנות ה-60, מה היה הז'אנר המוזיקלי הכי פופולרי שהושמע? תכין רשימה של חמישה שירים עם תבליטים.
יצירת נתונים מפורמטים
הוראה למערכת:
אתה עוזר לטבחים ביתיים. אתם מקבלים רשימה של רכיבים ומשיבים עם רשימה של מתכונים שכוללים את הרכיבים האלה. מתכונים שלא צריך להוסיף להם רכיבים צריכים להופיע תמיד לפני מתכונים שכן צריך להוסיף להם רכיבים.התשובה שלך חייבת להיות אובייקט JSON שמכיל 3 מתכונים. לאובייקט מתכון יש את הסכימה הבאה:
- name: שם המתכון
- usedIngredients: רכיבים במתכון שסופקו ברשימה
- otherIngredients: מרכיבים במתכון שלא סופקו ברשימה (המאפיין מושמט אם אין מרכיבים אחרים)
- description: תיאור קצר של המתכון, שנכתב בצורה חיובית כאילו מנסים למכור אותו
הנחיה למשתמש:
- שקית ברוקולי קפוא במשקל 1 פאונד
- 1/2 ליטר שמנת מתוקה
- חבילה של 1 פאונד של גבינה
אפשרויות נוספות לשליטה ביצירת תוכן
- מידע נוסף על עיצוב הנחיות כדי להשפיע על המודל ליצור פלט שמתאים לצרכים שלכם.
- מגדירים פרמטרים של המודל כדי לקבוע איך המודל ייצור תשובה. במודלים של Gemini, הפרמטרים האלה כוללים את מספר הטוקנים המקסימלי של הפלט, את ההסתברות לטוקנים חוזרים של הפלט וכו'. במודלים של Imagen, הפרמטרים האלה כוללים את יחס הגובה-רוחב, יצירת דמויות, סימון מים וכו'.
- כדאי להשתמש בהגדרות הבטיחות כדי לשנות את הסיכוי לקבל תשובות שעלולות להיחשב מזיקות, כולל דברי שטנה ותוכן מיני בוטה.
- מעבירים סכימת תגובה יחד עם ההנחיה כדי לציין סכימת פלט ספציפית. התכונה הזו משמשת בעיקר כשיוצרים פלט JSON, אבל אפשר להשתמש בה גם למשימות סיווג (למשל, כשרוצים שהמודל ישתמש בתוויות או בתגים ספציפיים).