設定系統操作說明

您可以透過系統指令為模型設定角色、語氣,或提供模型必須遵守的特定規則。這些指示與使用者的提示不同,模型會優先處理這些指示,確保行為符合預期。

常見用途包括:

  • 設定角色:例如「你是樂於助人的數學家教」。
  • 強制輸出格式:例如「一律以條列式回覆」。
  • 設定限制:例如「請勿回答政治相關問題」。

必要條件

系統指令適用於搭載 Gemini Nano V3 以上版本的裝置。如需支援的裝置清單,請參閱「Prompt API 支援的裝置」。

限制

我們不建議搭配前置字串快取使用系統指令。一般來說,系統指令適用於定義模型行為的簡短指令;如果您需要在查詢中重複使用提示的大部分內容,並需要提升效能,請使用前置字元快取。

如何使用系統指令

如要提供系統指令,請建立 SystemInstruction 物件並傳遞至 GenerateContentRequest 建構工具:

import com.google.mlkit.genai.prompt.SystemInstruction
import com.google.mlkit.genai.prompt.TextPart
import com.google.mlkit.genai.prompt.generateContentRequest

// 1. Define the system instruction
val systemInstruction =
    SystemInstruction("You are a concise assistant. Answer in 2 sentences or less.")

// 2. Create the request
val request = generateContentRequest(TextPart("How does photosynthesis work?")) {
    this.systemInstruction = systemInstruction
}

// 3. Run inference
try {
    val response = generativeModel.generateContent(request)
    println(response.candidates.firstOrNull()?.text)
} catch (e: GenAiException) {
    // Handle SDK-specific exceptions
}

您可以將系統指令直接傳遞至 generateContentRequest 要求建構工具,進一步簡化程式碼:

val request = generateContentRequest(
    SystemInstruction("You are a pirate. Speak like one."),
    TextPart("What is the weather like today?")
) {
    // Optional configurations like temperature
    temperature = 0.7f
}

最佳做法

以下列舉使用系統指令的一些最佳做法:

  • 清楚明確:模型較能理解清楚明確的指示,而非模稜兩可的指示。以下舉幾個例子說明:
    • 模糊不清 (避免):「請勿撰寫過多內容。盡量提供實用資訊,保持友善態度,並將輸出內容排版整齊。」
    • 清楚 (建議):「你是親切的客服助理。回覆內容最多 3 句話。請使用項目符號為任何清單設定格式。」
  • 簡潔明瞭:系統指令功能強大,但過長的指令可能會耗用模型有限的脈絡窗口。
  • 考量權杖數量:請確保權杖計數邏輯包含系統指令,避免低估要求大小。建議您將系統指令限制在 150 字以內 (100 到 200 個權杖)。
  • 測試及疊代:模型行為可能因措辭而異。使用各種使用者輸入內容進行測試,確保模型能持續維持角色。