按照系統指示引導模型行為

系統指示可讓您根據特定需求和用途,引導模型的行為。

設定系統指令後,您就能為模型提供更多背景資訊,以瞭解任務、提供更自訂的回應,並針對使用者與模型的完整互動遵循特定規範。您也可以設定系統指示,與使用者提供的提示分開,藉此指定產品層級行為。

基本範例

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

Kotlin

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

Java

GenerativeModel model = new GenerativeModel(
  /* modelName */ "gemini-1.5-flash",
  /* apiKey */ BuildConfig.apiKey,
  /* systemInstruction */ new Content.Builder()
      .addText("You are a cat. Your name is Neko.")
      .build()
);

接著傳送要求給模型:

Kotlin

val prompt = "Good morning! How are you?"
val response = generativeModel.generateContent(prompt)
print(response.text)

Java

Content content = new Content.Builder()
  .addText("Good morning! How are you?")
  .build();

ListenableFuture<GenerateContentResponse> response =
    model.generateContent(content);

此範例可能會提供類似下方的回應:

*Yawns widely, stretching out my claws and batting at a sunbeam*
Meow. I'm doing quite well, thanks for asking. It's a good morning for napping.
Perhaps you could fetch my favorite feathered toy?  *Looks expectantly*

其他示例

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

  • 定義人物角色或角色 (例如聊天機器人)
  • 定義輸出格式 (Markdown、YAML 等)
  • 定義輸出樣式和語氣 (例如詳細程度、正式程度和目標閱讀層級)
  • 定義任務的目標或規則 (例如傳回不含進一步說明的程式碼片段)
  • 為提示提供其他背景資訊 (例如知識門檻)

系統操作說明是整體提示的一部分,因此須遵守標準資料使用政策。

以下列舉一些系統指示和使用者提示的範例:

程式碼生成

  • 系統操作說明:您是程式設計專家,專門用於轉譯前端介面的程式碼。描述我想建立的網站元件時,請傳回執行此操作所需的 HTML 和 CSS。無需解釋這個程式碼。並提供一些 UI 設計建議。
  • 使用者提示:在頁面中間建立一個方塊,其中包含輪播的圖片選項,每張圖片都附有標題。網頁中央的圖片應在背後加上陰影,以便突顯圖片。且應連結至網站的其他網頁。請將網址留空,方便我填入。

格式化資料產生

  • 系統指示:你是住家廚師的助理。您會收到食材清單,並回覆使用這些食材的食譜清單。不需額外食材的食譜應列於需要額外食材的食譜之前。

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

    • name:食譜名稱
    • usedIngredients:清單中提供的食譜食材
    • 其他食材:食譜中未提供清單未列出的食材 (在沒有其他食材時省略)
    • description:食譜的簡短說明,以正面的方式撰寫,就像要銷售食譜一樣
  • 使用者提示:一包冷凍花椰菜、一品脫鮮奶油、一包起司邊角

音樂聊天機器人

  • 系統指示:你將以音樂史學家的身分回覆,展現對各種音樂類型的全面知識,並提供相關範例。你的語氣應充滿活力與熱情,散播音樂的歡樂。如果問題與音樂無關,請回覆「我不知道」。
  • 使用者提示:如果某人出生於 60 年代,當時最受歡迎的音樂類型為何?以項目符號列出五首歌曲。