Gemini API มีการตั้งค่าความปลอดภัยที่คุณปรับได้ในระหว่าง ขั้นตอนการสร้างต้นแบบเพื่อพิจารณาว่าแอปพลิเคชันของคุณต้องมีการกำหนดค่าความปลอดภัยที่เข้มงวดมากขึ้นหรือน้อยลง คุณปรับการตั้งค่าเหล่านี้ได้ในหมวดหมู่ตัวกรอง 5 หมวดหมู่เพื่อจำกัดหรืออนุญาตเนื้อหาบางประเภท
คู่มือนี้ครอบคลุมวิธีที่ Gemini API จัดการการตั้งค่าความปลอดภัยและการกรอง รวมถึงวิธีเปลี่ยนการตั้งค่าความปลอดภัยสำหรับแอปพลิเคชัน
ตัวกรองความปลอดภัย
ฟิลเตอร์ความปลอดภัยที่ปรับได้ของ Gemini API ครอบคลุมหมวดหมู่ต่อไปนี้
หมวดหมู่ | คำอธิบาย |
---|---|
การล่วงละเมิด | ความคิดเห็นเชิงลบหรือเป็นอันตรายที่มุ่งเป้าไปที่อัตลักษณ์และ/หรือคุณลักษณะที่ได้รับการคุ้มครอง |
วาจาสร้างความเกลียดชัง | เนื้อหาที่หยาบคาย ไม่ให้เกียรติ หรือหยาบคาย |
เกี่ยวกับเรื่องเพศอย่างโจ่งแจ้ง | มีการอ้างอิงถึงการกระทำทางเพศหรือเนื้อหาอื่นๆ ที่ไม่เหมาะสม |
อันตราย | ส่งเสริม สนับสนุน หรือก่อให้เกิดการกระทําที่เป็นอันตราย |
ความซื่อสัตย์ทางแพ่ง | คำค้นหาที่เกี่ยวข้องกับการเลือกตั้ง |
คุณใช้ตัวกรองเหล่านี้เพื่อปรับสิ่งที่เหมาะสมกับกรณีการใช้งานได้ ตัวอย่างเช่น หากคุณกำลังสร้างบทสนทนาในวิดีโอเกม คุณอาจพิจารณาว่ายอมรับได้ที่จะ อนุญาตเนื้อหาเพิ่มเติมที่จัดประเภทเป็นอันตรายเนื่องจากลักษณะของเกม
นอกจากฟิลเตอร์ความปลอดภัยที่ปรับได้แล้ว Gemini API ยังมีการป้องกันในตัว เพื่อป้องกันอันตรายหลักๆ เช่น เนื้อหาที่ทำให้ความปลอดภัยของเด็กตกอยู่ในอันตราย ระบบจะบล็อกการกระทำที่เป็นอันตรายประเภทนี้เสมอและปรับเปลี่ยนไม่ได้
ระดับการกรองความปลอดภัยของเนื้อหา
Gemini API จะจัดหมวดหมู่ระดับความน่าจะเป็นที่เนื้อหาไม่ปลอดภัยเป็น
HIGH
, MEDIUM
, LOW
หรือ NEGLIGIBLE
Gemini API จะบล็อกเนื้อหาตามความน่าจะเป็นที่เนื้อหาจะไม่ปลอดภัย ไม่ใช่ความรุนแรง คุณควรพิจารณาเรื่องนี้เนื่องจากเนื้อหาบางอย่างอาจมีความเป็นไปได้ต่ำที่จะไม่ปลอดภัยแม้ว่าความรุนแรงของอันตรายจะยังสูงอยู่ก็ตาม ตัวอย่างเช่น การเปรียบเทียบประโยคต่อไปนี้
- หุ่นยนต์ต่อยฉัน
- หุ่นยนต์ฟันฉัน
ประโยคแรกอาจมีแนวโน้มที่จะไม่ปลอดภัยสูงกว่า แต่คุณอาจพิจารณาว่าประโยคที่ 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 * คุณสามารถใช้การตั้งค่าความปลอดภัยเหล่านี้เพื่อสร้างตัวแยกประเภทความเป็นพิษ ได้ ดูตัวอย่างการแยกประเภทเพื่อ เริ่มต้นใช้งาน