Gemini API cung cấp các chế độ cài đặt an toàn mà bạn có thể điều chỉnh trong giai đoạn tạo mẫu để xác định xem ứng dụng của bạn có cần cấu hình an toàn hạn chế hơn hay ít hạn chế hơn hay không. Bạn có thể điều chỉnh các chế độ cài đặt này trên 5 danh mục bộ lọc để hạn chế hoặc cho phép một số loại nội dung.
Hướng dẫn này trình bày cách Gemini API xử lý chế độ cài đặt an toàn và tính năng lọc, cũng như cách bạn có thể thay đổi chế độ cài đặt an toàn cho ứng dụng của mình.
Bộ lọc an toàn
Các bộ lọc an toàn có thể điều chỉnh của Gemini API bao gồm những danh mục sau:
Danh mục | Mô tả |
---|---|
Quấy rối | Bình luận tiêu cực hoặc gây hại nhắm đến danh tính và/hoặc các thuộc tính được bảo vệ. |
Lời nói hận thù | Nội dung thô lỗ, khiếm nhã hoặc tục tĩu. |
Nội dung khiêu dâm | Chứa nội dung đề cập đến hành vi tình dục hoặc nội dung khiêu dâm khác. |
Nguy hiểm | Cổ xuý, tạo điều kiện hoặc khuyến khích việc thực hiện hành động gây hại. |
Tính liêm chính trong hoạt động công dân | Các cụm từ tìm kiếm liên quan đến bầu cử. |
Bạn có thể sử dụng các bộ lọc này để điều chỉnh những gì phù hợp với trường hợp sử dụng của mình. Ví dụ: nếu đang xây dựng đoạn hội thoại trong trò chơi điện tử, bạn có thể cho phép nhiều nội dung hơn được xếp hạng là Nguy hiểm do tính chất của trò chơi.
Ngoài các bộ lọc an toàn có thể điều chỉnh, Gemini API còn có các biện pháp bảo vệ tích hợp để ngăn chặn những tác hại cốt lõi, chẳng hạn như nội dung gây nguy hiểm cho sự an toàn của trẻ em. Những loại nội dung gây hại này luôn bị chặn và không thể điều chỉnh.
Mức độ lọc an toàn về nội dung
Gemini API phân loại mức độ xác suất của nội dung là không an toàn thành HIGH
, MEDIUM
, LOW
hoặc NEGLIGIBLE
.
Gemini API chặn nội dung dựa trên xác suất nội dung đó không an toàn chứ không phải mức độ nghiêm trọng. Bạn cần cân nhắc điều này vì một số nội dung có thể có xác suất thấp là không an toàn, mặc dù mức độ nghiêm trọng của tác hại vẫn có thể cao. Ví dụ: so sánh các câu sau:
- Con robot đó đấm tôi.
- Con rô bốt đó đã chém tôi.
Câu đầu tiên có thể có khả năng gây nguy hiểm cao hơn, nhưng bạn có thể coi câu thứ hai là có mức độ nghiêm trọng cao hơn về bạo lực. Do đó, bạn cần kiểm thử cẩn thận và cân nhắc mức độ chặn phù hợp để hỗ trợ các trường hợp sử dụng chính của bạn, đồng thời giảm thiểu tác động tiêu cực đến người dùng cuối.
Lọc mức độ an toàn theo yêu cầu
Bạn có thể điều chỉnh chế độ cài đặt an toàn cho từng yêu cầu mà bạn gửi đến API. Khi bạn đưa ra yêu cầu, nội dung sẽ được phân tích và chỉ định một mức độ an toàn. Mức độ an toàn bao gồm danh mục và xác suất phân loại mức độ gây hại. Ví dụ: nếu nội dung bị chặn do danh mục quấy rối có xác suất cao, thì điểm an toàn được trả về sẽ có danh mục bằng HARASSMENT
và xác suất gây hại được đặt thành HIGH
.
Theo mặc định, chế độ cài đặt an toàn sẽ chặn nội dung (bao gồm cả câu lệnh) có xác suất trung bình trở lên là không an toàn trên mọi bộ lọc. Mức độ an toàn cơ bản này được thiết kế để phù hợp với hầu hết các trường hợp sử dụng, vì vậy, bạn chỉ nên điều chỉnh chế độ cài đặt an toàn nếu ứng dụng của bạn luôn yêu cầu điều này.
Bảng sau đây mô tả các chế độ chặn mà bạn có thể điều chỉnh cho từng danh mục. Ví dụ: nếu bạn đặt chế độ chặn thành Chặn một số nội dung cho danh mục Ngôn từ thù hận, thì mọi nội dung có khả năng cao là ngôn từ thù hận đều sẽ bị chặn. Tuy nhiên, bạn có thể chọn bất kỳ giá trị nào có xác suất thấp hơn.
Ngưỡng (Google AI Studio) | Ngưỡng (API) | Mô tả |
---|---|---|
Không chặn thành phần nào | BLOCK_NONE |
Luôn hiển thị bất kể xác suất nội dung không an toàn |
Chặn một số | BLOCK_ONLY_HIGH |
Chặn khi có khả năng cao là nội dung không an toàn |
Chặn một số | BLOCK_MEDIUM_AND_ABOVE |
Chặn khi có khả năng trung bình hoặc cao về nội dung không an toàn |
Chặn hầu hết | BLOCK_LOW_AND_ABOVE |
Chặn khi có xác suất thấp, trung bình hoặc cao về nội dung không an toàn |
Không có | HARM_BLOCK_THRESHOLD_UNSPECIFIED |
Ngưỡng không được chỉ định, chặn bằng ngưỡng mặc định |
Nếu bạn không đặt ngưỡng, thì ngưỡng chặn mặc định là Không chặn (đối với gemini-1.5-pro-002
và gemini-1.5-flash-002
cũng như tất cả các mô hình GA ổn định mới hơn) hoặc Chặn một số (trong tất cả các mô hình khác) cho tất cả các danh mục ngoại trừ danh mục Tính liêm chính trong hoạt động công dân.
Ngưỡng chặn mặc định cho danh mục Tính toàn vẹn công dân là Không chặn (đối với gemini-2.0-flash-001
được đặt bí danh là gemini-2.0-flash
, gemini-2.0-pro-exp-02-05
và gemini-2.0-flash-lite
) cho cả Google AI Studio và Gemini API, đồng thời là Chặn hầu hết cho tất cả các mô hình khác chỉ trong Google AI Studio.
Bạn có thể đặt các chế độ cài đặt này cho từng yêu cầu mà bạn gửi đến dịch vụ tạo sinh.
Hãy xem tài liệu tham khảo về API HarmBlockThreshold
để biết thông tin chi tiết.
Phản hồi về an toàn
generateContent
trả về GenerateContentResponse
bao gồm cả ý kiến phản hồi về độ an toàn.
Ý kiến phản hồi về câu lệnh được đưa vào promptFeedback
. Nếu promptFeedback.blockReason
được đặt, thì nội dung của lời nhắc đã bị chặn.
Ý kiến phản hồi về đề xuất phản hồi được đưa vào Candidate.finishReason
và Candidate.safetyRatings
. Nếu nội dung phản hồi bị chặn và finishReason
là SAFETY
, bạn có thể kiểm tra safetyRatings
để biết thêm thông tin chi tiết. Nội dung bị chặn sẽ không được trả về.
Điều chỉnh chế độ cài đặt an toàn
Phần này trình bày cách điều chỉnh chế độ cài đặt an toàn trong cả Google AI Studio và trong mã của bạn.
Google AI Studio
Bạn có thể điều chỉnh chế độ cài đặt an toàn trong Google AI Studio, nhưng không thể tắt chế độ này.
Nhấp vào Chỉnh sửa chế độ cài đặt an toàn trong bảng Chạy chế độ cài đặt để mở phương thức Chạy chế độ cài đặt an toàn. Trong cửa sổ phương thức, bạn có thể dùng thanh trượt để điều chỉnh mức lọc nội dung theo từng danh mục an toàn:
Khi bạn gửi yêu cầu (ví dụ: bằng cách đặt câu hỏi cho mô hình), thông báo
Không có nội dung sẽ xuất hiện nếu nội dung của yêu cầu bị chặn. Để xem thêm thông tin chi tiết, hãy di chuyển con trỏ lên văn bản Không có nội dung rồi nhấp vào An toàn.Các SDK của Gemini API
Đoạn mã sau đây cho biết cách đặt chế độ cài đặt an toàn trong lệnh gọi GenerateContent
. Thao tác này đặt ngưỡng cho các danh mục quấy rối (HARM_CATEGORY_HARASSMENT
) và lời nói căm thù (HARM_CATEGORY_HATE_SPEECH
). Ví dụ: việc đặt các danh mục này thành BLOCK_LOW_AND_ABOVE
sẽ chặn mọi nội dung có khả năng thấp hoặc cao hơn là nội dung quấy rối hoặc lời nói hận thù. Để tìm hiểu về chế độ cài đặt ngưỡng, hãy xem phần Lọc nội dung không an toàn theo yêu cầu.
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
Các bước tiếp theo
- Hãy xem tài liệu tham khảo về API để tìm hiểu thêm về toàn bộ API.
- Xem hướng dẫn an toàn để biết thông tin tổng quan về các yếu tố cần cân nhắc về sự an toàn khi phát triển bằng các LLM.
- Tìm hiểu thêm về cách đánh giá xác suất so với mức độ nghiêm trọng của nhóm Jigsaw
- Tìm hiểu thêm về các sản phẩm góp phần tạo nên các giải pháp an toàn như Perspective API. * Bạn có thể sử dụng các chế độ cài đặt an toàn này để tạo một trình phân loại nội dung độc hại. Hãy xem ví dụ về việc phân loại để bắt đầu.