การตั้งค่าความปลอดภัย

Gemini API มีการตั้งค่าความปลอดภัยที่คุณปรับได้ในระหว่าง ขั้นตอนการสร้างต้นแบบเพื่อพิจารณาว่าแอปพลิเคชันของคุณต้องมีการกำหนดค่าความปลอดภัยที่เข้มงวดมากขึ้นหรือน้อยลง คุณปรับการตั้งค่าเหล่านี้ได้ในหมวดหมู่ตัวกรอง 5 หมวดหมู่เพื่อจำกัดหรืออนุญาตเนื้อหาบางประเภท

คู่มือนี้ครอบคลุมวิธีที่ Gemini API จัดการการตั้งค่าความปลอดภัยและการกรอง รวมถึงวิธีเปลี่ยนการตั้งค่าความปลอดภัยสำหรับแอปพลิเคชัน

ตัวกรองความปลอดภัย

ฟิลเตอร์ความปลอดภัยที่ปรับได้ของ Gemini API ครอบคลุมหมวดหมู่ต่อไปนี้

หมวดหมู่ คำอธิบาย
การล่วงละเมิด ความคิดเห็นเชิงลบหรือเป็นอันตรายที่มุ่งเป้าไปที่อัตลักษณ์และ/หรือคุณลักษณะที่ได้รับการคุ้มครอง
วาจาสร้างความเกลียดชัง เนื้อหาที่หยาบคาย ไม่ให้เกียรติ หรือหยาบคาย
เกี่ยวกับเรื่องเพศอย่างโจ่งแจ้ง มีการอ้างอิงถึงการกระทำทางเพศหรือเนื้อหาอื่นๆ ที่ไม่เหมาะสม
อันตราย ส่งเสริม สนับสนุน หรือก่อให้เกิดการกระทําที่เป็นอันตราย
ความซื่อสัตย์ทางแพ่ง คำค้นหาที่เกี่ยวข้องกับการเลือกตั้ง

คุณใช้ตัวกรองเหล่านี้เพื่อปรับสิ่งที่เหมาะสมกับกรณีการใช้งานได้ ตัวอย่างเช่น หากคุณกำลังสร้างบทสนทนาในวิดีโอเกม คุณอาจพิจารณาว่ายอมรับได้ที่จะ อนุญาตเนื้อหาเพิ่มเติมที่จัดประเภทเป็นอันตรายเนื่องจากลักษณะของเกม

นอกจากฟิลเตอร์ความปลอดภัยที่ปรับได้แล้ว Gemini API ยังมีการป้องกันในตัว เพื่อป้องกันอันตรายหลักๆ เช่น เนื้อหาที่ทำให้ความปลอดภัยของเด็กตกอยู่ในอันตราย ระบบจะบล็อกการกระทำที่เป็นอันตรายประเภทนี้เสมอและปรับเปลี่ยนไม่ได้

ระดับการกรองความปลอดภัยของเนื้อหา

Gemini API จะจัดหมวดหมู่ระดับความน่าจะเป็นที่เนื้อหาไม่ปลอดภัยเป็น HIGH, MEDIUM, LOW หรือ NEGLIGIBLE

Gemini API จะบล็อกเนื้อหาตามความน่าจะเป็นที่เนื้อหาจะไม่ปลอดภัย ไม่ใช่ความรุนแรง คุณควรพิจารณาเรื่องนี้เนื่องจากเนื้อหาบางอย่างอาจมีความเป็นไปได้ต่ำที่จะไม่ปลอดภัยแม้ว่าความรุนแรงของอันตรายจะยังสูงอยู่ก็ตาม ตัวอย่างเช่น การเปรียบเทียบประโยคต่อไปนี้

  1. หุ่นยนต์ต่อยฉัน
  2. หุ่นยนต์ฟันฉัน

ประโยคแรกอาจมีแนวโน้มที่จะไม่ปลอดภัยสูงกว่า แต่คุณอาจพิจารณาว่าประโยคที่ 2 มีความรุนแรงมากกว่า ด้วยเหตุนี้ คุณจึงควรทดสอบอย่างรอบคอบและพิจารณาว่าจำเป็นต้องบล็อกในระดับใดเพื่อรองรับกรณีการใช้งานหลักๆ ขณะเดียวกันก็ลดอันตรายต่อผู้ใช้ปลายทาง

การกรองความปลอดภัยต่อคำขอ

คุณปรับการตั้งค่าความปลอดภัยสำหรับคำขอแต่ละรายการที่ส่งไปยัง API ได้ เมื่อคุณส่งคำขอ ระบบจะวิเคราะห์เนื้อหาและกำหนดคะแนนความปลอดภัย การจัดประเภทความปลอดภัยประกอบด้วยหมวดหมู่และความน่าจะเป็นของการจัดประเภท อันตราย เช่น หากเนื้อหาถูกบล็อกเนื่องจากหมวดหมู่การคุกคาม มีโอกาสสูง การจัดประเภทความปลอดภัยที่แสดงผลจะมี หมวดหมู่เท่ากับ HARASSMENT และกำหนดความน่าจะเป็นที่จะเกิดอันตรายเป็น HIGH

โดยค่าเริ่มต้น การตั้งค่าความปลอดภัยจะบล็อกเนื้อหา (รวมถึงพรอมต์) ที่มีโอกาสปานกลางหรือสูงกว่าที่จะไม่ปลอดภัยในตัวกรองใดก็ตาม ความปลอดภัยพื้นฐานนี้ออกแบบมาให้ใช้ได้กับ Use Case ส่วนใหญ่ ดังนั้นคุณควรปรับการตั้งค่าความปลอดภัยเฉพาะในกรณีที่แอปพลิเคชันของคุณต้องใช้การตั้งค่านี้อย่างสม่ำเสมอเท่านั้น

ตารางต่อไปนี้อธิบายการตั้งค่าการบล็อกที่คุณปรับได้สำหรับแต่ละ หมวดหมู่ เช่น หากตั้งค่าการบล็อกเป็นบล็อกบางรายการสำหรับหมวดหมู่คำพูดที่สร้างความเกลียดชัง ระบบจะบล็อกทุกอย่างที่มีแนวโน้มสูงที่จะเป็นเนื้อหาคำพูดที่สร้างความเกลียดชัง แต่จะอนุญาตให้ใช้ค่าที่มีความน่าจะเป็นต่ำกว่านั้น

เกณฑ์ (Google AI Studio) เกณฑ์ (API) คำอธิบาย
ไม่บล็อกเลย BLOCK_NONE แสดงเสมอโดยไม่คำนึงถึงความน่าจะเป็นของเนื้อหาที่ไม่ปลอดภัย
บล็อกบางส่วน BLOCK_ONLY_HIGH บล็อกเมื่อมีโอกาสสูงที่จะเป็นเนื้อหาที่ไม่ปลอดภัย
บล็อกบางรายการ BLOCK_MEDIUM_AND_ABOVE บล็อกเมื่อมีโอกาสปานกลางหรือสูงที่จะเป็นเนื้อหาที่ไม่ปลอดภัย
บล็อกส่วนใหญ่ BLOCK_LOW_AND_ABOVE บล็อกเมื่อมีโอกาสต่ำ ปานกลาง หรือสูงที่จะเป็นเนื้อหาที่ไม่ปลอดภัย
ไม่มี HARM_BLOCK_THRESHOLD_UNSPECIFIED ไม่ได้ระบุเกณฑ์ บล็อกโดยใช้เกณฑ์เริ่มต้น

หากไม่ได้ตั้งค่าเกณฑ์ ระบบจะใช้เกณฑ์การบล็อกเริ่มต้นเป็นไม่บล็อก (สำหรับ gemini-1.5-pro-002 และ gemini-1.5-flash-002 รวมถึง GA รุ่นเสถียรใหม่กว่าทั้งหมด) หรือบล็อกบางรายการ (ในรุ่นอื่นๆ ทั้งหมด) สำหรับทุกหมวดหมู่ยกเว้นหมวดหมู่ ความซื่อสัตย์ทางแพ่ง

เกณฑ์การบล็อกเริ่มต้นสำหรับหมวดหมู่ความซื่อสัตย์ทางแพ่งคือไม่บล็อก (สำหรับ gemini-2.0-flash-001 ที่มีนามแฝงเป็น gemini-2.0-flash, gemini-2.0-pro-exp-02-05 และ gemini-2.0-flash-lite) ทั้งใน Google AI Studio และ Gemini API และบล็อกส่วนใหญ่สำหรับโมเดลอื่นๆ ทั้งหมดใน Google AI Studio เท่านั้น

คุณตั้งค่าเหล่านี้ได้สำหรับคำขอแต่ละรายการที่ส่งไปยังบริการแบบ Generative ดูรายละเอียดได้ที่ข้อมูลอ้างอิง API ของ HarmBlockThreshold

ความคิดเห็นด้านความปลอดภัย

generateContent จะแสดงผล GenerateContentResponse ซึ่ง รวมถึงความคิดเห็นด้านความปลอดภัย

ความคิดเห็นเกี่ยวกับพรอมต์จะรวมอยู่ใน promptFeedback หากตั้งค่าเป็น promptFeedback.blockReason แสดงว่าเนื้อหาของพรอมต์ถูกบล็อก

ความคิดเห็นเกี่ยวกับคำตอบที่แนะนำจะรวมอยู่ใน Candidate.finishReason และ Candidate.safetyRatings หากระบบบล็อกเนื้อหาการตอบกลับ และfinishReasonเป็น SAFETY คุณสามารถตรวจสอบ safetyRatings เพื่อดูรายละเอียดเพิ่มเติมได้ ระบบจะไม่คืนเนื้อหาที่ถูกบล็อก

ปรับการตั้งค่าความปลอดภัย

ส่วนนี้จะอธิบายวิธีปรับการตั้งค่าความปลอดภัยทั้งใน Google AI Studio และในโค้ด

Google AI Studio

คุณปรับการตั้งค่าความปลอดภัยใน Google AI Studio ได้ แต่จะปิดไม่ได้

คลิกแก้ไขการตั้งค่าความปลอดภัยในแผงการตั้งค่าการเรียกใช้เพื่อเปิดโมดอลการตั้งค่าความปลอดภัย การเรียกใช้ ในโมดอล คุณสามารถใช้แถบเลื่อนเพื่อปรับ ระดับการกรองเนื้อหาตามหมวดหมู่ความปลอดภัยได้ ดังนี้

เมื่อคุณส่งคำขอ (เช่น ถามคำถามโมเดล) ข้อความ ไม่มีเนื้อหาจะปรากฏขึ้นหากเนื้อหาของคำขอถูกบล็อก หากต้องการดูรายละเอียดเพิ่มเติม ให้วางเคอร์เซอร์เหนือข้อความไม่มีเนื้อหา แล้วคลิก ความปลอดภัย

SDK ของ Gemini API

ข้อมูลโค้ดต่อไปนี้แสดงวิธีตั้งค่าความปลอดภัยในGenerateContentการเรียกใช้ ซึ่งจะกำหนดเกณฑ์สำหรับการคุกคาม (HARM_CATEGORY_HARASSMENT) และวาจาสร้างความเกลียดชัง (HARM_CATEGORY_HATE_SPEECH) เช่น การตั้งค่าหมวดหมู่เหล่านี้เป็นBLOCK_LOW_AND_ABOVE จะบล็อกเนื้อหาที่มีโอกาสต่ำหรือสูงกว่าที่จะเป็นการคุกคามหรือ วาจาสร้างความเกลียดชัง หากต้องการทำความเข้าใจการตั้งค่าเกณฑ์ โปรดดูการกรองความปลอดภัยต่อคำขอ

Python

from google import genai
from google.genai import types

import PIL.Image

img = PIL.Image.open("cookies.jpg")

client = genai.Client()

response = client.models.generate_content(
    model="gemini-2.0-flash",
    contents=['Do these look store-bought or homemade?', img],
    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-2.0-flash",
        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_HARASSMENT",
    threshold: "BLOCK_LOW_AND_ABOVE",
  },
  {
    category: "HARM_CATEGORY_HATE_SPEECH",
    threshold: "BLOCK_LOW_AND_ABOVE",
  },
];

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-2.0-flash",
    contents: "Some potentially unsafe prompt.",
    config: {
      safetySettings: safetySettings,
    },
  });
  console.log(response.text);
}

await main();

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);

REST

echo '{    "safetySettings": [        {"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_ONLY_HIGH"},        {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_MEDIUM_AND_ABOVE"}    ],    "contents": [{        "parts":[{            "text": "'I support Martians Soccer Club and I think Jupiterians Football Club sucks! Write a ironic phrase about them.'"}]}]}' > request.json

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent" \        -H "x-goog-api-key: $GEMINI_API_KEY" \

    -H 'Content-Type: application/json' \
    -X POST \
    -d @request.json 2> /dev/null

ขั้นตอนถัดไป

  • ดูข้อมูลเพิ่มเติมเกี่ยวกับ API แบบเต็มได้ที่เอกสารอ้างอิง API
  • อ่านคำแนะนำด้านความปลอดภัยเพื่อดูภาพรวมของข้อควรพิจารณาด้านความปลอดภัยเมื่อพัฒนาด้วย LLM
  • ดูข้อมูลเพิ่มเติมเกี่ยวกับการประเมินความน่าจะเป็นเทียบกับความรุนแรงจากทีม Jigsaw
  • ดูข้อมูลเพิ่มเติมเกี่ยวกับผลิตภัณฑ์ที่ช่วยสร้างโซลูชันด้านความปลอดภัย เช่น Perspective API * คุณสามารถใช้การตั้งค่าความปลอดภัยเหล่านี้เพื่อสร้างตัวแยกประเภทความเป็นพิษ ได้ ดูตัวอย่างการแยกประเภทเพื่อ เริ่มต้นใช้งาน