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

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

דילוג לדוגמאות הקוד


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

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

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

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

כל הדגמים של Gemini תומכים בהוראות מערכת. הן לא נתמכות בדגמי Imagen 3.

הוראות להגדרת המערכת

הגדרת הוראות מערכת לתרחישי שימוש כלליים

Swift

מציינים את הערך systemInstruction כשיוצרים מכונה של GenerativeModel.

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Create a `GenerativeModel` instance
let model = vertex.generativeModel(
  modelName: "gemini-2.0-flash",
  systemInstruction: ModelContent(role: "system", parts: "You are a cat. Your name is Neko.")
)

Kotlin

מציינים את הערך systemInstruction כשיוצרים מכונה של GenerativeModel.

// Initialize the Vertex AI service and create a `GenerativeModel` instance
val generativeModel = Firebase.vertexAI.generativeModel(
  modelName = "gemini-2.0-flash",
  systemInstruction = content { text("You are a cat. Your name is Neko.") }
)

Java

מציינים את הערך systemInstruction כשיוצרים מכונה של GenerativeModel.

// Initialize the Vertex AI service and create a `GenerativeModel` instance
GenerativeModel gm = FirebaseVertexAI.getInstance().generativeModel(
  /* modelName */ "gemini-2.0-flash",
  /* 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(gm);

Web

מציינים את הערך systemInstruction כשיוצרים מכונה של GenerativeModel.

import { initializeApp } from "firebase/app";
import { getVertexAI, getGenerativeModel } from "firebase/vertexai";

// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);

// Initialize the Vertex AI service
const vertexAI = getVertexAI(firebaseApp);

// Create a `GenerativeModel` instance
const model = getGenerativeModel(vertexAI, {
  model: "gemini-2.0-flash",
  systemInstruction: "You are a cat. Your name is Neko."
});

Dart

מציינים את systemInstruction כשיוצרים מכונה של GenerativeModel.

import 'package:firebase_vertexai/firebase_vertexai.dart';
import 'package:firebase_core/firebase_core.dart';

await Firebase.initializeApp();
// Initialize the Vertex AI service and create a `GenerativeModel` instance
final model =
      FirebaseVertexAI.instance.generativeModel(
        model: 'gemini-2.0-flash',
        systemInstruction: Content.system('You are a cat. Your name is Neko.'),
      );

הגדרת הוראות מערכת ל-Gemini Live API

Swift

עדיין אין תמיכה ב-Live API באפליקציות בפלטפורמת Apple, אבל כדאי לבדוק שוב בקרוב.

Kotlin

מציינים את הערך systemInstruction כשיוצרים מכונה של LiveModel.

// Initialize the Vertex AI service and create a `LiveModel` instance
val model = Firebase.vertexAI.LiveModel(
  modelName = "gemini-2.0-flash-live-preview-04-09",
  systemInstruction = content { text("You are a cat. Your name is Neko.") }
)

Java

מציינים את הערך systemInstruction כשיוצרים מכונה של LiveModel.

// Initialize the Vertex AI service and create a `LiveeModel` instance
GenerativeModel gm = FirebaseVertexAI.getInstance().LiveModel(
  /* modelName */ "gemini-2.0-flash",
  /* generationConfig (optional) */ null,
  /* requestOptions (optional) */ new RequestOptions(),
  /* tools (optional) */ null,
  /* systemInstruction (optional) */ new Content.Builder().addText("You are a cat. Your name is Neko.").build()
);
LiveModelFutures model = LiveModelFutures.from(gm);

Web

עדיין אין תמיכה ב-Live API באפליקציות אינטרנט, אבל כדאי לבדוק שוב בקרוב.

Dart

מציינים את systemInstruction כשיוצרים מכונה של LiveModel.

import 'package:firebase_vertexai/firebase_vertexai.dart';
import 'package:firebase_core/firebase_core.dart';

await Firebase.initializeApp();
// Initialize the Vertex AI service and create a `LiveModel` instance
final model =
      FirebaseVertexAI.instance.liveModel(
        model: 'gemini-2.0-flash-live-preview-04-09',
        systemInstruction: Content.system('You are a cat. Your name is Neko.'),
      );

דוגמאות להנחיות

הנה כמה דוגמאות להנחיות מערכת שמגדירות את ההתנהגות הצפויה של המודל.

יצירת קוד

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

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

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

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

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

    • שקית ברוקולי קפוא במשקל 0.45 ק"ג
    • 1/2 ליטר שמנת מתוקה
    • חתיכות וקצוות של גבינה, חבילה במשקל 450 גרם

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

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

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

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