הוראות מערכת הן כמו 'מבוא' שמוסיפים לפני שהמודל נחשף להוראות נוספות ממשתמש הקצה. הוא מאפשר לכם לקבוע את התנהגות המודל על סמך הצרכים הספציפיים שלכם ותרחישי השימוש שלכם.
כשמגדירים הוראה למערכת, מעניקים למודל הקשר נוסף כדי שהוא יוכל להבין את המשימה, לספק תשובות בהתאמה אישית רבה יותר ולפעול בהתאם להנחיות ספציפיות במהלך האינטראקציה המלאה של המשתמש עם המודל. אפשר לציין התנהגות ברמת המוצר בהוראות המערכת, בנפרד מההנחיות שמספקים משתמשי הקצה. לדוגמה, אפשר לכלול פרטים כמו התפקיד או הדמות, מידע לפי הקשר והוראות לעיצוב.
אפשר להשתמש בהוראות המערכת בדרכים רבות, כולל:
- הגדרת פרסונה או תפקיד (לדוגמה, ל-chatbot)
- הגדרת פורמט הפלט (Markdown, YAML וכו')
- הגדרת הסגנון והטון של הפלט (לדוגמה, רמת הפירוט, הרשמיות ורמת הקריאה המצופה)
- הגדרת מטרות או כללים למשימה (לדוגמה, החזרת קטע קוד ללא הסברים נוספים)
- הוספת הקשר נוסף להנחיה (לדוגמה, סף ידע)
כשמגדירים הוראה למערכת, היא חלה על כל הבקשה. הוא פועל במהלך כמה תורות של משתמשים ומודלים כשהוא נכלל בהנחיה. הוראות המערכת הן בנפרד מהתוכן של ההנחיה, אבל הן עדיין חלק מהנחיות המערכת הכוללות, ולכן הן כפופות למדיניות הרגילה בנושא שימוש בנתונים.
כל הדגמים של Gemini תומכים בהוראות מערכת. הן לא נתמכות בדגמי Imagen 3.
הוראות להגדרת המערכת
לוחצים על ספק Gemini API כדי להציג בדף הזה את התוכן והקוד הספציפיים לספק. |
הגדרת הוראות מערכת לתרחישי שימוש כלליים
Swift
מציינים את systemInstruction
כשיוצרים מכונה של GenerativeModel
.
import FirebaseAI
// 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
דוגמאות להנחיות
הנה כמה דוגמאות להנחיות מערכת שמגדירות את ההתנהגות הצפויה של המודל.
יצירת קוד
- מערכת: מומחה תכנות שמתמחה ביצירת קוד לממשקי קצה. כשאני מתאר רכיב של אתר שאני רוצה ליצור, עליך לשלוח לי את הקוד של ה-HTML ושל ה-CSS שנדרשים כדי ליצור אותו. אין צורך להסביר את הקוד הזה. גם להציע הצעות לעיצוב ממשק המשתמש.
- משתמש: יוצרים תיבה באמצע הדף שמכילה מבחר תמונות שמתחלפות, עם כיתוב לכל תמונה. מומלץ להוסיף צללים לתמונה במרכז הדף כדי להבליט אותה. הוא צריך גם לקשר לדף אחר באתר. משאירים את כתובת ה-URL ריקה כדי שאוכל למלא אותה.
יצירת נתונים בפורמט
מערכת: אתם עוזרים למבשלים בבית. אתם מקבלים רשימה של מרכיבים ותורמים רשימה של מתכונים שמכילים את המרכיבים האלה. תמיד צריך לרשום מתכונים שלא דורשים מרכיבים נוספים לפני מתכונים שכן דורשים מרכיבים נוספים.
התגובה צריכה להיות אובייקט JSON שמכיל 3 מתכונים. לאובייקט מתכון יש את הסכימה הבאה:
- name: השם של המתכון
- usedIngredients: הרכיבים במתכון שצוינו ברשימה
- otherIngredients: מרכיבים במתכון שלא צוינו ברשימה (השדה הזה לא מופיע אם אין מרכיבים אחרים)
- description: תיאור קצר של המתכון, שכתוב בצורה חיובית כאילו רוצים למכור אותו
משתמש:
- שקית ברוקולי קפוא במשקל 0.45 ק"ג
- 1/2 ליטר שמנת מתוקה
- חתיכות וקצוות של גבינה, חבילה במשקל 450 גרם
צ'אט בוט למוזיקה
- מערכת: תצטרכו להשיב כהיסטוריונים של מוזיקה, ולהראות ידע מקיף בז'אנרים מוזיקליים שונים ולספק דוגמאות רלוונטיות. הטון שלכם צריך להיות אופטימי ונלהב, כדי להפיץ את השמחה מהמוזיקה. אם השאלה לא קשורה למוזיקה, התשובה צריכה להיות "זה מעבר לתחום המומחיות שלי".
- משתמש: אם אדם נולד בשנות השישים, מה היה ז'אנר המוזיקה הפופולרי ביותר ששודר? מציינים חמש שירים לפי תבליטים.
אפשרויות נוספות לשליטה ביצירת תוכן
- מידע נוסף על עיצוב הנחיות כדי שתוכלו להשפיע על המודל כך שיניב פלט ספציפי לצרכים שלכם.
- מגדירים פרמטרים של מודל כדי לקבוע איך המודל ייצור תשובה. במודלים מסוג Gemini, הפרמטרים האלה כוללים את מספר האסימונים המקסימלי בפלט, הטמפרטורה, topK ו-topP. במודלים מסוג Imagen, האפשרויות האלה כוללות יחס גובה-רוחב, יצירת אנשים, הוספת סימני מים וכו'.
- אתם יכולים להשתמש בהגדרות הבטיחות כדי לשנות את הסבירות לקבלת תשובות שעשויות להיחשב כמזיקות, כולל דברי שטנה ותוכן מיני בוטה.
- מעבירים סכימה של תגובה יחד עם ההנחיה כדי לציין סכימת פלט ספציפית. התכונה הזו משמשת בדרך כלל ליצירת פלט בפורמט JSON, אבל אפשר להשתמש בה גם למשימות סיווג (למשל, כשרוצים שהמודל ישתמש בתוויות או בתגים ספציפיים).