您可以透過系統指令為模型設定角色、語氣,或提供模型必須遵守的特定規則。這些指示與使用者的提示不同,模型會優先處理這些指示,確保行為符合預期。
常見用途包括:
- 設定角色:例如「你是樂於助人的數學家教」。
- 強制輸出格式:例如「一律以條列式回覆」。
- 設定限制:例如「請勿回答政治相關問題」。
必要條件
系統指令適用於搭載 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 個權杖)。
- 測試及疊代:模型行為可能因措辭而異。使用各種使用者輸入內容進行測試,確保模型能持續維持角色。