안전 설정

Gemini API는 사용자가 활동 중에 조정할 수 있는 안전 설정을 제공합니다. 프로토타입 제작 단계를 통해 애플리케이션이 안전 설정이 제한적입니다. 이러한 설정은 카테고리를 필터링하여 특정 유형의 콘텐츠를 제한하거나 허용할 수 있습니다.

이 가이드에서는 Gemini API가 안전 설정 및 필터링을 처리하는 방법과 애플리케이션에 대한 안전 설정을 어떻게 변경할 수 있는지.

안전 필터

Gemini API의 조정 가능한 안전 필터에는 다음 카테고리가 포함됩니다.

카테고리 설명
괴롭힘 ID 및/또는 보호받는 사용자를 대상으로 하는 부정적이거나 유해한 댓글 속성
증오심 표현 무례하거나 모욕적이거나 욕설이 있는 콘텐츠
음란물 성행위 또는 기타 외설적인 콘텐츠에 대한 참조가 포함
위험 유해한 행위를 조장, 촉진 또는 장려하는 콘텐츠.

이러한 필터를 사용하여 사용 사례에 적합한 설정을 조정할 수 있습니다. 대상 예를 들어 비디오 게임 대화를 만들 때 게임의 특성상 위험함으로 분류된 콘텐츠를 더 많이 허용합니다.

Gemini API에는 조정 가능한 안전 필터 외에도 아동 안전을 위협하는 콘텐츠와 같이 핵심 피해로부터 보호 이러한 유형의 피해는 항상 차단되며 조정할 수 없습니다.

콘텐츠 안전성 필터링 수준

Gemini API는 콘텐츠가 안전하지 않을 가능성 수준을 다음과 같이 분류합니다. HIGH, MEDIUM, LOW 또는 NEGLIGIBLE입니다.

Gemini API는 안전하지 않은 콘텐츠 가능성에 따라 콘텐츠를 차단합니다. 심각도가 아니라 이 점을 고려해야 하는 이유는 일부 콘텐츠는 피해의 심각성이 위험할 수 있더라도 안전하지 않을 확률이 낮은 경우 여전히 높을 수 있습니다. 예를 들어 문장을 비교해 보겠습니다.

  1. 로봇이 나를 때렸습니다.
  2. 로봇이 나를 베었습니다.

첫 번째 문장은 안전하지 않을 가능성이 더 높아질 수 있지만 두 번째 문장이 폭력 면에서 더 높은 심각성으로 여겨질 수 있습니다 이러한 점을 감안할 때 가장 중요한 것은 무엇인지 신중하게 테스트하고 주요 사용 사례를 지원하려면 적절한 수준의 차단이 필요하며, 최종 사용자에 대한 피해를 최소화합니다

요청당 안전성 필터링

API에 요청할 때마다 안전 설정을 조정할 수 있습니다. 날짜 콘텐츠를 분석하여 안전 등급을 부여합니다. 이 안전 등급에는 카테고리 및 피해 가능성이 포함됩니다. 있습니다. 예: 괴롭힘으로 인해 콘텐츠가 차단된 경우 확인된 안전 평점은 카테고리가 HARASSMENT이고 위험 확률은 HIGH로 설정됩니다.

기본적으로 안전 설정은 중간 또는 민감한 콘텐츠가 포함된 콘텐츠 (메시지 포함)를 차단합니다. 모든 필터에서 안전하지 않을 가능성이 더 높음 이 기준 안전성은 대부분의 사용 사례에 적합하도록 설계되었으므로 사용자가 자신의 안전 모드를 지속적으로 필요한 경우 이 설정을 줄일 수 있습니다

다음 표에서는 각각에 대해 조정할 수 있는 차단 설정을 설명합니다. 카테고리입니다. 예를 들어 차단 설정을 일부 차단으로 설정한 경우 증오심 표현 카테고리로 분류되며 증오심 표현 가능성이 높은 모든 콘텐츠를 포함합니다. 음성 콘텐츠가 차단됩니다. 하지만 가능성이 낮은 모든 항목이 허용됩니다.

기준점 (Google AI Studio) 기준(API) 설명
차단 안 함 BLOCK_NONE 안전하지 않은 콘텐츠일 가능성과 관계없이 항상 표시
소수 차단 BLOCK_ONLY_HIGH 안전하지 않은 콘텐츠일 가능성이 높은 경우 차단
일부 차단 BLOCK_MEDIUM_AND_ABOVE 안전하지 않은 콘텐츠일 가능성이 중간 또는 높은 경우 차단
대부분 차단 BLOCK_LOW_AND_ABOVE 안전하지 않은 콘텐츠일 가능성이 낮거나 중간 또는 높은 경우 차단
해당 사항 없음 HARM_BLOCK_THRESHOLD_UNSPECIFIED 기준이 지정되지 않았습니다. 기본 임계값을 사용하여 차단합니다.

정책을 설정하지 않으면 기본 차단 설정은 모든 카테고리에서 일부 차단으로 설정됩니다.

생성형 서비스에 요청할 때마다 이러한 설정을 지정할 수 있습니다. HarmBlockThreshold API를 참고하세요. 참조하세요.

안전 관련 의견

generateContentGenerateContentResponse 안전 피드백이 포함됩니다

프롬프트 피드백은 promptFeedback 만약 promptFeedback.blockReason가 설정되면 메시지 콘텐츠가 차단되었습니다.

응답 후보 의견은 다음을 포함합니다. Candidate.finishReasonCandidate.safetyRatings 응답 시 콘텐츠가 차단되었으며 finishReason이(가) SAFETY인 경우 safetyRatings에서 자세한 내용을 확인하세요. 차단된 콘텐츠는 반환되지 않습니다.

안전 설정 조정

이 섹션에서는 Google AI Studio와 Google AI Studio 모두에서 안전 설정을 조정하는 방법을 설명합니다. 코드 내에 위치합니다.

Google AI Studio

Google AI Studio에서 안전 설정을 조정할 수 있지만 회전할 수는 없습니다. 사용 중지됩니다.

실행 설정 패널에서 안전 설정 수정을 클릭하여 실행 안전 설정 모달에 관한 알림입니다. 모달에서 슬라이더를 사용하여 안전 카테고리별 콘텐츠 필터링 수준:

요청을 보내면 (예: 모델에 질문하기) 요청의 콘텐츠가 차단되면 콘텐츠 없음 메시지가 표시됩니다. 자세히 알아보기 자세히 알아보려면 No Content 텍스트를 선택하고 를 클릭합니다. 안전.

Gemini API SDK

다음 코드 스니펫은 GenerateContent 호출 괴롭힘 (HARM_CATEGORY_HARASSMENT)을 설정합니다. 증오심 표현 (HARM_CATEGORY_HATE_SPEECH) 카테고리를 추가하여 BLOCK_LOW_AND_ABOVE가 낮거나 높은 값을 포함하는 모든 콘텐츠를 차단합니다. 괴롭힘이나 증오심 표현의 가능성

Python

from google.generativeai.types import HarmCategory, HarmBlockThreshold

model = genai.GenerativeModel(model_name='gemini-1.5-flash')
response = model.generate_content(
    ['Do these look store-bought or homemade?', img],
    safety_settings={
        HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
        HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
    }
)

Go

model := client.GenerativeModel("gemini-1.5-flash")

model.SafetySettings = []*genai.SafetySetting{
  {
    Category:  genai.HarmCategoryHarassment,
    Threshold: genai.HarmBlockLowAndAbove,
  },
  {
    Category:  genai.HarmCategoryHateSpeech,
    Threshold: genai.HarmBlockLowAndAbove,
  },
}

Node.js

import { HarmBlockThreshold, HarmCategory } from "@google/generative-ai";

// ...

const safetySettings = [
  {
    category: HarmCategory.HARM_CATEGORY_HARASSMENT,
    threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
  },
  {
    category: HarmCategory.HARM_CATEGORY_HATE_SPEECH,
    threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
  },
];

const model = genAi.getGenerativeModel({ model: "gemini-1.5-flash", safetySettings });

import { HarmBlockThreshold, HarmCategory } from "@google/generative-ai";

// ...

const safetySettings = [
  {
    category: HarmCategory.HARM_CATEGORY_HARASSMENT,
    threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
  },
  {
    category: HarmCategory.HARM_CATEGORY_HATE_SPEECH,
    threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
  },
];

const model = genAi.getGenerativeModel({ model: "gemini-1.5-flash", safetySettings });

Dart (Flutter)

final safetySettings = [
  SafetySetting(HarmCategory.harassment, HarmBlockThreshold.low),
  SafetySetting(HarmCategory.hateSpeech, HarmBlockThreshold.low),
];
final model = GenerativeModel(
  model: 'gemini-1.5-flash',
  apiKey: apiKey,
  safetySettings: safetySettings,
);

Kotlin

val harassmentSafety = SafetySetting(HarmCategory.HARASSMENT, BlockThreshold.LOW_AND_ABOVE)

val hateSpeechSafety = SafetySetting(HarmCategory.HATE_SPEECH, BlockThreshold.LOW_AND_ABOVE)

val generativeModel = GenerativeModel(
    modelName = "gemini-1.5-flash",
    apiKey = BuildConfig.apiKey,
    safetySettings = listOf(harassmentSafety, hateSpeechSafety)
)

Java

SafetySetting harassmentSafety = new SafetySetting(HarmCategory.HARASSMENT,
    BlockThreshold.LOW_AND_ABOVE);

SafetySetting hateSpeechSafety = new SafetySetting(HarmCategory.HATE_SPEECH,
    BlockThreshold.LOW_AND_ABOVE);

GenerativeModel gm = new GenerativeModel(
    "gemini-1.5-flash",
    BuildConfig.apiKey,
    null, // generation config is optional
    Arrays.asList(harassmentSafety, hateSpeechSafety)
);

GenerativeModelFutures model = GenerativeModelFutures.from(gm);

다음 단계