安全設定

您可以在原型設計階段調整 Gemini API 的安全設定,判斷應用程式是否需要更嚴謹或寬鬆的安全設定。您可以調整這四個篩選器類別的設定,藉此限制或允許特定類型的內容。

本指南說明 Gemini API 如何處理安全設定和篩選,以及如何變更應用程式的安全設定。

安全篩選機制

Gemini API 的可調整安全篩選機制涵蓋下列類別:

類別 說明
騷擾 針對特定身分和/或受保護特質發表負面或有害言論。
仇恨言論 粗俗、不敬或不雅的內容。
煽情露骨內容 提及性行為或其他猥褻情事的內容。
危險內容 宣傳、鼓吹或助長有害舉動。

這些類別定義於 HarmCategory。您可以運用這些篩選機制,根據使用情境將模型調整為適當的狀態。舉例來說,如果您正在製作電玩遊戲對白,可能為配合遊戲風格,而允許較多遭評為「危險」的內容。

除了可調整的安全篩選機制,Gemini API 也內建核心危害內容防護措施,例如危害兒童安全的內容。系統一律會封鎖這類有害內容,且無法調整。

內容安全篩選等級

Gemini API 會將內容不安全的機率分為 HIGHMEDIUMLOWNEGLIGIBLE

Gemini API 會根據內容不安全的機率封鎖內容,而非嚴重程度。請務必考慮這點,因為即使某些內容造成嚴重傷害的機率不高,舉例來說,比較以下句子:

  1. 機器人打了我。
  2. 機器人把我砍傷了。

第一句可能較容易被判定為不安全,但就暴力程度而言,您可能會認為第二句較為嚴重。因此,請務必仔細測試及考量適當的封鎖層級,以支援主要用途,同時盡量減少對使用者的傷害。

每個要求的安全篩選

在向 API 發出的每項要求,都可以調整安全設定。提出要求後,系統會分析內容並給予安全評分。安全評分指的是 Gemini 判斷內容屬於特定危害類別的機率。舉例來說,如果內容因屬於騷擾類別的機率高而遭到封鎖,系統傳回的安全評分會將類別設為 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 和 3 模型預設會停用封鎖門檻。

您可以為向生成服務發出的每項要求設定這些設定。 詳情請參閱 HarmBlockThreshold API 參考資料。

安全意見回饋

generateContent 會傳回 GenerateContentResponse,其中包含安全意見回饋。

提示意見回饋會計入 promptFeedback。如果設定了 promptFeedback.blockReason,表示提示內容遭到封鎖。

回應候選人意見回饋會納入 Candidate.finishReasonCandidate.safetyRatings。如果回應內容遭到封鎖,且 finishReasonSAFETY,您可以檢查 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。* 您可以使用這些安全設定建立毒性分類器。如要開始使用,請參閱分類範例