Gemini API には、プロトタイピングの段階で調整できる安全性の設定が用意されています。これにより、アプリケーションに対してより厳しいまたは緩い安全性の構成が必要かどうかを判断できます。これらの設定は、特定の種類のコンテンツを制限または許可するように 4 つのフィルタ カテゴリにわたって調整できます。
このガイドでは、Gemini API が安全性の設定とフィルタリングを処理する方法と、アプリケーションの安全性の設定を変更する方法について説明します。
安全フィルタ
Gemini API の調整可能な安全フィルタは、次のカテゴリを対象としています。
| カテゴリ | 説明 |
|---|---|
| 嫌がらせ | アイデンティティや保護対象属性をターゲットとする否定的または有害なコメント。 |
| ヘイトスピーチ | 粗暴、無礼、または冒とく的なコンテンツ。 |
| 露骨な性表現 | 性行為やわいせつな内容に関する情報が含まれるコンテンツ |
| 危険 | 悪質な行為を助長する、手助けする、または仕向けるコンテンツ。 |
これらのカテゴリは HarmCategory で定義されています。これらのフィルタを使用して、ユースケースに適切なコンテンツとなるように調整できます。たとえば、ビデオゲームのセリフを作成する場合、ゲームの性質上、「危険」として評価されたコンテンツをより多く許容することを問題ないとみなす場合があります。
Gemini API には、調整可能な安全フィルタに加えて、児童を危険にさらすようなコンテンツなど、重大な有害性に対する保護機能が組み込まれています。このような有害なコンテンツは常にブロックされ、調整することはできません。
コンテンツの安全フィルタリング レベル
Gemini API は、コンテンツが安全でない可能性のレベルを HIGH、MEDIUM、LOW、NEGLIGIBLE として分類します。
Gemini API は、重大度ではなく、コンテンツが安全でない確率に基づいてコンテンツをブロックします。コンテンツによっては、危害の重大度が高くても、安全でない確率が低くなるものもあるため、この点を考慮することが重要です。たとえば、次の文を比較します。
- ロボットが私をパンチした。
- ロボットが私を切り付けた。
安全でない確率は最初の文章の方が高くなりますが、2 つめの文章は暴力の観点で重大度が高いとみなすことができます。したがって、エンドユーザーへの悪影響を最小限に抑えながら主要なユースケースをサポートするために必要となる、適切なレベルのブロックを慎重にテストし、検討することが重要です。
リクエストごとの安全フィルタリング
API に対して行うリクエストごとに安全性設定を調整できます。リクエストを行うと、コンテンツが分析され、安全性評価が割り当てられます。安全性評価には、カテゴリと有害として分類される確率が含まれます。たとえば、コンテンツが「嫌がらせ」カテゴリに対して高い確率で安全でなかったためにブロックされた場合、返される安全性評価のカテゴリは HARASSMENT になり、有害である確率が HIGH に設定されます。
モデルの安全性が高いため、追加のフィルタはデフォルトでオフになっています。有効にすると、安全でない可能性に基づいてコンテンツをブロックするようにシステムを構成できます。デフォルトのモデルの動作はほとんどのユースケースに対応しているため、これらの設定はアプリケーションで一貫して必要とされる場合にのみ調整してください。
次の表に、カテゴリごとに調整できるブロック設定を示します。たとえば、「ヘイトスピーチ」カテゴリのブロック設定を [少量をブロック] に設定した場合、ヘイトスピーチ コンテンツである確率が高いものはすべてブロックされます。その確率の低いものは許可されます。
| しきい値(Google AI Studio) | しきい値(API) | 説明 |
|---|---|---|
| オフ | OFF |
安全フィルタをオフにする |
| ブロックなし | BLOCK_NONE |
安全でないコンテンツの確率に関係なく、常に表示されます |
| 少量をブロック | BLOCK_ONLY_HIGH |
安全でないコンテンツである確率が高い場合にブロックします |
| 一部をブロック | BLOCK_MEDIUM_AND_ABOVE |
安全でないコンテンツの確率が中程度または高い場合にブロックします |
| ほとんどをブロック | BLOCK_LOW_AND_ABOVE |
安全でないコンテンツの確率が低い、中程度、高い場合にブロックします |
| なし | HARM_BLOCK_THRESHOLD_UNSPECIFIED |
しきい値が指定されていません。デフォルトのしきい値を使用してブロックします |
しきい値が設定されていない場合、Gemini 2.5 モデルと Gemini 3 モデルのデフォルトのブロックしきい値は [オフ] です。
これらの設定は、生成サービスに対するリクエストごとに設定できます。詳しくは、HarmBlockThreshold API リファレンスをご覧ください。
安全性に関するフィードバック
generateContent は、安全性に関するフィードバックを含む GenerateContentResponse を返します。
プロンプトのフィードバックは promptFeedback に含まれています。promptFeedback.blockReason が設定されている場合、プロンプトのコンテンツはブロックされています。
レスポンス候補のフィードバックは、Candidate.finishReason と Candidate.safetyRatings に含まれます。レスポンス コンテンツがブロックされ、finishReason が SAFETY の場合は、safetyRatings で詳細を確認できます。ブロックされたコンテンツは返されません。
安全性設定を調整する
このセクションでは、Google AI Studio とコードの両方で安全性設定を調整する方法について説明します。
Google AI Studio
Google AI Studio で安全性設定を調整できます。
[実行設定] パネルの [詳細設定] で [安全性設定] をクリックして、[実行の安全性設定] モーダルを開きます。モーダルで、スライダーを使用して安全カテゴリごとにコンテンツ フィルタリング レベルを調整できます。
リクエストを送信すると(モデルに質問するなど)、リクエストのコンテンツがブロックされている場合は、 コンテンツがブロックされましたというメッセージが表示されます。詳細を確認するには、[コンテンツがブロックされました] というテキストにポインタを合わせると、カテゴリと有害性分類の確率が表示されます。
コードの例
次のコード スニペットは、GenerateContent 呼び出しで安全性設定を行う方法を示しています。これにより、ヘイトスピーチ(HARM_CATEGORY_HATE_SPEECH)カテゴリのしきい値が設定されます。このカテゴリを BLOCK_LOW_AND_ABOVE に設定すると、ヘイトスピーチである確率が低い以上のコンテンツはすべてブロックされます。しきい値の設定については、リクエストごとの安全性フィルタリングをご覧ください。
Python
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemini-3-flash-preview",
contents="Some potentially unsafe prompt",
config=types.GenerateContentConfig(
safety_settings=[
types.SafetySetting(
category=types.HarmCategory.HARM_CATEGORY_HATE_SPEECH,
threshold=types.HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
),
]
)
)
print(response.text)
Go
package main
import (
"context"
"fmt"
"log"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
config := &genai.GenerateContentConfig{
SafetySettings: []*genai.SafetySetting{
{
Category: "HARM_CATEGORY_HATE_SPEECH",
Threshold: "BLOCK_LOW_AND_ABOVE",
},
},
}
response, err := client.Models.GenerateContent(
ctx,
"gemini-3-flash-preview",
genai.Text("Some potentially unsafe prompt."),
config,
)
if err != nil {
log.Fatal(err)
}
fmt.Println(response.Text())
}
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const safetySettings = [
{
category: "HARM_CATEGORY_HATE_SPEECH",
threshold: "BLOCK_LOW_AND_ABOVE",
},
];
async function main() {
const response = await ai.models.generateContent({
model: "gemini-3-flash-preview",
contents: "Some potentially unsafe prompt.",
config: {
safetySettings: safetySettings,
},
});
console.log(response.text);
}
await main();
Java
SafetySetting hateSpeechSafety = new SafetySetting(HarmCategory.HATE_SPEECH,
BlockThreshold.LOW_AND_ABOVE);
GenerativeModel gm = new GenerativeModel(
"gemini-3-flash-preview",
BuildConfig.apiKey,
null, // generation config is optional
Arrays.asList(hateSpeechSafety)
);
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"safetySettings": [
{"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_LOW_AND_ABOVE"}
],
"contents": [{
"parts":[{
"text": "'\''Some potentially unsafe prompt.'\''"
}]
}]
}'
次のステップ
- 完全な API の詳細については、API リファレンスをご覧ください。
- LLM を使用して開発する際の安全性に関する一般的な考慮事項については、安全性に関するガイダンスをご覧ください。
- 確率と重大度の評価について詳しくは、Jigsaw チームをご覧ください。
- Perspective API などの安全ソリューションに貢献するプロダクトについてご確認ください。* これらの安全性設定を使用して、有害性分類子を作成できます。始めるには、分類の例をご覧ください。