시스템 안내 설정

시스템 안내를 사용하면 모델에 페르소나를 부여하거나, 응답의 어조를 설정하거나, 모델이 따라야 하는 특정 규칙을 제공할 수 있습니다. 이러한 안내는 사용자의 프롬프트와 별개이며 모델이 예상대로 동작하도록 더 높은 우선순위로 처리됩니다.

일반적인 사용 사례는 다음과 같습니다.

  • 페르소나 설정: 예를 들어 '당신은 도움이 되는 수학 과외 교사입니다.'
  • 출력 형식 적용: 예를 들어 '항상 글머리 기호로 응답하세요.'
  • 제약조건 설정: 예를 들어 '정치에 관한 질문에는 답하지 마세요.'

기본 요건

시스템 안내는 Gemini Nano V3 이상을 실행하는 기기에서 작동합니다. 지원되는 기기 목록은 프롬프트 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토큰) 미만으로 유지하는 것이 좋습니다.
  • 테스트 및 반복: 모델 동작은 문구에 따라 다를 수 있습니다. 다양한 사용자 입력으로 테스트하여 모델이 페르소나를 일관되게 유지하는지 확인하세요.