시스템 안내를 사용하면 모델에 페르소나를 부여하거나, 응답 어조를 설정하거나, 따라야 할 특정 규칙을 제공할 수 있습니다. 이러한 요청 사항은 사용자의 프롬프트와 별개이며, 모델이 예상대로 작동하도록 모델에서 더 높은 우선순위로 처리됩니다.
일반적인 사용 사례는 다음과 같습니다.
- 페르소나 설정: 예를 들어 '너는 유용한 수학 과외 교사야'라고 설정합니다.
- 출력 형식 적용: 예를 들어 '항상 글머리 기호로 대답해 줘'라고 요청할 수 있습니다.
- 제약 조건 설정: 예를 들면 '정치에 관한 질문에 답변하지 마세요'입니다.
기본 요건
시스템 요청 사항은 Gemini Nano V3 이상을 실행하는 기기에서 작동합니다. 지원되는 기기 목록은 직접 모델 액세스 기기 지원을 참고하세요.
제한사항
프리픽스 캐싱과 함께 시스템 안내를 사용하지 않는 것이 좋습니다. 일반적으로 모델의 동작 방식을 정의하는 짧은 안내에는 시스템 안내를 사용합니다. 쿼리 전반에서 프롬프트의 상당 부분을 반복해야 하고 성능을 최적화해야 하는 경우에는 프리픽스 캐싱을 사용합니다.
시스템 요청 사항 사용 방법
시스템 안내를 제공하려면 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토큰) 미만으로 유지하는 것이 좋습니다.
- 테스트 및 반복: 모델 동작은 문구에 따라 달라질 수 있습니다. 다양한 사용자 입력으로 테스트하여 모델이 페르소나를 일관되게 유지하는지 확인합니다.