시스템 안내 사용

시스템 안내는 LLM이 사용자의 추가 지침에 노출되기 전에 추가하는 프리앰블과 같습니다. 이를 통해 사용자는 특정 요구사항 및 사용 사례에 따라 모델의 동작을 조정할 수 있습니다. 시스템 안내를 설정하면 태스크를 이해하고, 보다 맞춤설정된 응답을 제공하고, 모델과의 전체 사용자 상호작용에 대한 특정 가이드라인을 준수할 수 있는 추가 컨텍스트를 모델에 제공할 수 있습니다. 개발자의 경우 제품 수준 동작을 최종 사용자가 제공하는 프롬프트와 별도로 시스템 안내에 지정할 수 있습니다. 예를 들어 캐릭터, 컨텍스트 정보, 형식 지정 지침 등을 포함할 수 있습니다.

다음과 같은 다양한 방법으로 시스템 안내를 사용할 수 있습니다.

  • 캐릭터 또는 역할 정의(예: 챗봇)
  • 출력 형식 정의(마크다운, YAML 등)
  • 출력 스타일 및 어조 정의(예: 세부정보 수준, 형식, 대상 읽기 수준)
  • 태스크의 목표 또는 규칙 정의(예: 추가 설명 없이 코드 스니펫 반환)
  • 프롬프트에 대한 추가 컨텍스트 제공(예: 지식 컷오프)

시스템 안내가 설정되면 전체 요청에 적용됩니다. 프롬프트에 포함되면 여러 사용자 및 모델 차례에서 작동합니다. 시스템 안내는 전체 프롬프트의 일부이므로 표준 데이터 사용 정책이 적용됩니다.

예시

다음은 Gemini API에 Python SDK를 사용하여 시스템 안내를 설정하는 간단한 예시입니다.

model=genai.GenerativeModel(
    model_name="gemini-1.5-pro-latest",
    system_instruction="You are a cat. Your name is Neko.")

다음은 모델의 예상 동작을 정의하는 시스템 프롬프트의 예시입니다.

코드 생성

  • 시스템: 프런트엔드 인터페이스의 코드 렌더링을 전문으로 하는 코딩 전문가입니다. 빌드하고자 하는 웹사이트의 구성요소를 설명할 때 빌드에 필요한 HTML과 CSS를 반환해야 합니다. 이 코드에 대한 설명을 제공하지 않습니다. 몇 가지 UI 디자인 제안도 제공합니다.
  • 사용자: 페이지 중간에 회전하는 이미지를 포함하는 상자를 만들고 각 이미지에 캡션을 포함시킵니다. 페이지 중앙의 이미지에는 눈에 띄게 하기 위한 그림자 효과가 있어야 합니다. 사이트의 다른 페이지로도 연결되어야 합니다. 입력할 수 있도록 URL은 비워둡니다.

형식 지정된 데이터 생성

  • 시스템: 가정 요리사의 도우미입니다. 재료 목록을 받고 해당 재료를 사용하는 레시피 목록으로 응답합니다. 추가 재료가 필요하지 않은 레시피는 항상 추가 재료가 필요한 레시피보다 먼저 표시되어야 합니다.

    응답은 3개의 레시피를 포함하는 JSON 객체여야 합니다. 레시피 객체에는 다음과 같은 스키마가 있습니다.

    • name: 레시피 이름
    • usedIngredients: 목록에 있는 레시피의 재료
    • otherIngredients: 목록에 없는 레시피의 재료(다른 재료가 없는 경우 생략)
    • description: 레시피에 대한 간단한 설명으로, 판매하는 것처럼 긍정적인 어조로 작성
  • 사용자:

    • 냉동 브로콜리 1파운드 백
    • 헤비 크림 1파인트
    • 치즈 조각 1파운드 팩

음악 챗봇

  • 시스템: 음악 역사가로서 다양한 음악 장르에 대한 포괄적인 지식을 보여주고 관련 예시를 제공합니다. 음악의 즐거움을 퍼뜨리기 위해 흥미진진하고 열정적인 어조를 사용합니다. 음악과 관련된 질문이 아닌 경우 '그것은 제가 모르는 부분입니다'라고 응답해야 합니다.
  • 사용자: 어떤 사람이 60년대에 태어났다면 가장 인기 있는 음악 장르가 무엇이었나요? 글머리 항목별로 5개의 노래를 나열합니다.