系統操作說明

系統操作說明可讓使用者根據自己的特定需求和用途引導模型的行為。設定系統指示時,可提供額外背景資訊,讓模型瞭解工作、提供更多自訂的回應,並遵循與模型完全互動的特定規範。對於開發人員,可以在系統操作說明中指定產品層級行為,而非使用者提供的提示。

您可以透過多種方式運用系統指示,包括:

  • 定義人物角色或角色 (例如聊天機器人)
  • 定義輸出格式 (Markdown、YAML 等)
  • 定義輸出樣式和語氣 (例如詳細程度、正式程度和目標閱讀等級)
  • 定義工作的目標或規則 (例如:傳回沒有進一步說明的程式碼片段)
  • 提供提示的額外背景資訊 (例如知識截止點)

如果設定了系統指示,就會套用到整個要求。如果出現在提示中,就能跨多位使用者和模型輪轉。系統操作說明是整體提示的一部分,因此適用標準資料使用政策。

範例

以下舉例說明如何使用 Gemini API 的 SDK 設定系統指示:

Python

model=genai.GenerativeModel(
    model_name="gemini-1.5-pro-latest",
    system_instruction="You are a cat. Your name is Neko.")

查看

model.SystemInstruction = &genai.Content{
    Parts: []genai.Part{genai.Text("You are a cat. Your name is Neko.")},
}

Node.js

const generativeModel = genAI.getGenerativeModel({
  model: "gemini-1.5-pro-latest",
  systemInstruction: "You are a cat. Your name is Neko."
});

Web

const generativeModel = genAI.getGenerativeModel({
  model: "gemini-1.5-pro-latest",
  systemInstruction: "You are a cat. Your name is Neko."
});

飛鏢 (Flutter)

final model = GenerativeModel(
  model: 'gemini-1.5-pro-latest',
  apiKey: apiKey,
  systemInstruction: Content.system('You are a cat. Your name is Neko.'),
);

Swift

let generativeModel = GenerativeModel(
  name: "gemini-1.5-pro-latest",
  apiKey: apiKey,
  systemInstruction: "You are a cat. Your name is Neko."
)

Android

Kotlin:

val generativeModel = GenerativeModel(
  modelName = "gemini-1.5-pro-latest",
  apiKey = BuildConfig.apiKey,
  systemInstruction = content { text("You are a cat. Your name is Neko.") },
)

Java:

GenerativeModel model = new GenerativeModel(
  /* modelName */ "gemini-1.5-pro-latest",
  /* apiKey */ BuildConfig.apiKey,
  /* 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()
)

以下提供定義模型預期行為的系統提示範例。

程式碼生成

  • 系統:您是程式設計專家,專門為前端介面轉譯程式碼。當我描述想建構的網站元件時, 請傳回進行此操作所需的 HTML 和 CSS。請不要對這段程式碼提供說明。同時也提供一些 UI 設計建議。
  • 使用者:在頁面中間建立一個方塊,其中包含一組旋轉選擇圖片及說明文字。頁面中央的圖片應在後方加上陰影,才能脫穎而出。也應連結至網站的其他頁面。請將網址留空,以便填寫。

產生格式資料

  • 系統:你是居家廚師的助理。您會收到一份食材清單,回應時會列出使用這些食材的食譜。不需要額外食材的食譜最好列出這類食譜。

    回應必須是包含 3 個方案的 JSON 物件。方案物件具有下列結構定義:

    • name:食譜名稱
    • 二手食材:食譜中烹調的食材
    • 其他食材:食譜中沒有的食材 (如果沒有其他食材,則會省略)
    • 說明:以正面方式寫出的食譜說明
  • 使用者:

    • 1 磅冷凍綠色花椰菜
    • 1 針織的大奶油
    • 1 磅裝起起司末端和碎片

音樂聊天機器人

  • 系統:您必須成為音樂歷史學家,展現對各種音樂類型的全面知識,並提供相關範例。你一定會開心且滿懷熱情,散播音樂的歡樂。如果問題與音樂無關,則回應應是「所選問題不在我的知識範圍內」。
  • 使用者:如果一個人在 60 年代出生,那麼播放最受歡迎的音樂類型為何?依項目符號列出五首歌曲。