להשתמש בהוראות המערכת כדי לשלוט בהתנהגות של מודל

‫System instructions הן כמו "הקדמה" שמוסיפים לפני שהמודל נחשף להוראות נוספות ממשתמש הקצה. היא מאפשרת לכם לכוון את ההתנהגות של המודל בהתאם לצרכים ולתרחישי השימוש הספציפיים שלכם.

כל המודלים של Gemini תומכים בהוראות מערכת.

מעבר לדוגמאות קוד


כשמגדירים הוראת מערכת, נותנים למודל הקשר נוסף כדי להבין את המשימה, לספק תשובות מותאמות אישית יותר ולפעול בהתאם להנחיות ספציפיות במהלך האינטראקציה המלאה של המשתמש עם המודל. אתם יכולים לציין התנהגות ברמת המוצר בהוראות מערכת, בנפרד מההנחיות שסופקו על ידי משתמשי קצה. לדוגמה, אתם יכולים לכלול דברים כמו התפקיד או הפרסונה, מידע על ההקשר והוראות עיצוב.

יש הרבה דרכים להשתמש בהוראות למערכת, למשל:

  • הגדרת פרסונה או תפקיד (למשל, לצ'אטבוט)
  • הגדרת פורמט הפלט (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

מציינים את 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

כשיוצרים מופע 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

מציינים את 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

כשיוצרים מופע 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

מציינים את 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 ריקה כדי שאוכל למלא אותה.

צ'אט בוט מוזיקלי

  • הוראה למערכת:
    תגיב כמו היסטוריון מוזיקה, ותפגין ידע מקיף במגוון ז'אנרים מוזיקליים ותספק דוגמאות רלוונטיות. הטון שלך יהיה אופטימי ונלהב, ותעביר את השמחה שבמוזיקה. אם השאלה לא קשורה למוזיקה, התשובה צריכה להיות: "אין לי מידע בנושא הזה".

  • הנחיית משתמש:
    אם אדם נולד בשנות ה-60, מה היה הז'אנר המוזיקלי הכי פופולרי באותה תקופה? תכין רשימה של חמישה שירים עם תבליטים.

יצירת נתונים בפורמט מסוים

  • הוראה למערכת:
    אתה עוזר לטבחים ביתיים. אתם מקבלים רשימה של מצרכים ומשיבים עם רשימה של מתכונים שכוללים את המצרכים האלה. מתכונים שלא דורשים רכיבים נוספים תמיד צריכים להופיע לפני מתכונים שכן דורשים רכיבים נוספים.

    התשובה שלך צריכה להיות אובייקט JSON שמכיל 3 מתכונים. לאובייקט מתכון יש את הסכימה הבאה:

    • ‫name: שם המתכון
    • usedIngredients: רכיבים במתכון שסופקו ברשימה
    • ‫otherIngredients: מרכיבים במתכון שלא צוינו ברשימה (השדה הזה מושמט אם אין מרכיבים אחרים)
    • תיאור: תיאור קצר של המתכון, שנכתב בצורה חיובית כאילו מנסים למכור אותו
  • פרומפט של משתמש:

    • שקית ברוקולי קפוא במשקל 1 פאונד
    • ‫1 פינט שמנת מתוקה
    • חבילה של 450 גרם קצוות ושאריות גבינה

אפשרויות נוספות לשליטה ביצירת תוכן

  • מידע נוסף על עיצוב הנחיות כדי להשפיע על המודל ליצור פלט שמתאים לצרכים הספציפיים שלכם.
  • הגדרת פרמטרים של המודל כדי לשלוט באופן שבו המודל יוצר תשובה, כמו מספר מקסימלי של טוקנים של פלט, ההסתברות של טוקנים חוזרים של פלט וכו'.
  • אפשר להשתמש בהגדרות הבטיחות כדי לשנות את הסיכוי לקבל תשובות שעלולות להיחשב כמזיקות, כולל דברי שטנה ותוכן מיני בוטה.
  • מעבירים סכימת תגובה יחד עם הפרומפט כדי לציין סכימת פלט ספציפית. התכונה הזו משמשת בעיקר כשרוצים ליצור פלט בפורמט JSON, אבל אפשר להשתמש בה גם למשימות סיווג (למשל, כשרוצים שהמודל ישתמש בתוויות או בתגים ספציפיים).