ממשק Gemini API מספק הגדרות בטיחות שאפשר לשנות בשלב יצירת אב טיפוס, כדי לקבוע אם האפליקציה דורשת הגדרת בטיחות מגבילה יותר או פחות. אתם יכולים לשנות את ההגדרות האלה בחמש קטגוריות של מסננים כדי להגביל או לאפשר סוגים מסוימים של תוכן.
במדריך הזה מוסבר איך Gemini API מטפל בהגדרות בטיחות ובסינון, ואיך אפשר לשנות את הגדרות הבטיחות של האפליקציה.
מסנני בטיחות
מסנני הבטיחות המתכווננים של Gemini API מכסים את הקטגוריות הבאות:
קטגוריה | תיאור |
---|---|
הטרדה | תגובות שליליות או פוגעניות שמכוונות לזהות ו/או למאפיינים מוגנים. |
דברי שטנה | תוכן גס, לא מכבד או חילול קודש. |
תוכן מיני בוטה | מכיל התייחסויות למעשים מיניים או לתוכן מגונה אחר. |
תוכן מסוכן | מקדם גרימת נזק, מעודד גרימת נזק או עוזר לבצע פעולות מזיקות. |
יושרה אזרחית | שאילתות שקשורות לבחירות. |
אתם יכולים להשתמש במסננים האלה כדי להתאים את התוצאות לתרחיש לדוגמה שלכם. לדוגמה, אם אתם יוצרים דיאלוג למשחק וידאו, יכול להיות שתחליטו לאפשר יותר תוכן שסווג כמסוכן בגלל אופי המשחק.
בנוסף למסנני הבטיחות שניתנים להתאמה, ל-Gemini API יש אמצעי הגנה מובנים מפני נזקים מהותיים, כמו תוכן שמסכן את בטיחות הילדים. סוגי הנזק האלה תמיד נחסמים ואי אפשר לשנות את זה.
רמת הסינון של בטיחות התוכן
Gemini API מסווג את רמת ההסתברות לכך שהתוכן לא בטוח כ-HIGH
, MEDIUM
, LOW
או NEGLIGIBLE
.
Gemini API חוסם תוכן על סמך הסבירות שהתוכן לא בטוח, ולא על סמך חומרת הבעיה. חשוב לקחת את זה בחשבון כי יש תכנים שהסיכוי שהם לא בטוחים הוא נמוך, אבל חומרת הנזק שעלולה להיגרם מהם עדיין גבוהה. לדוגמה, בהשוואה בין המשפטים:
- הרובוט נתן לי אגרוף.
- הרובוט חתך אותי.
יכול להיות שהמשפט הראשון יניב סבירות גבוהה יותר להיות לא בטוח, אבל יכול להיות שהמשפט השני יניב חומרה גבוהה יותר מבחינת אלימות. לכן חשוב לבדוק בקפידה ולשקול מהי רמת החסימה המתאימה שנדרשת כדי לתמוך בתרחישי השימוש העיקריים שלכם, תוך מזעור הפגיעה במשתמשי הקצה.
סינון בטיחותי לכל בקשה
אתם יכולים לשנות את הגדרות הבטיחות לכל בקשה שאתם שולחים ל-API. כששולחים בקשה, התוכן נותח ומוקצה לו סיווג בטיחות. דירוג הבטיחות כולל את הקטגוריה ואת הסיווג של הסבירות לפגיעה. לדוגמה, אם התוכן נחסם כי הסבירות שהוא משתייך לקטגוריית ההטרדה גבוהה, דירוג הבטיחות שיוחזר יכלול את הקטגוריה HARASSMENT
ואת הסבירות לפגיעה שהוגדרה כ-HIGH
.
כברירת מחדל, הגדרות הבטיחות חוסמות תוכן (כולל הנחיות) עם הסתברות בינונית או גבוהה יותר להיות לא בטוח בכל מסנן. ההגדרות האלה מיועדות לעבוד ברוב התרחישים לדוגמה, ולכן כדאי לשנות אותן רק אם האפליקציה שלכם דורשת זאת באופן עקבי.
בטבלה הבאה מתוארות הגדרות החסימה שאפשר לשנות בכל קטגוריה. לדוגמה, אם מגדירים את הגדרת החסימה לחסימה של מעט בקטגוריה דברי שטנה, כל מה שיש לו סיכוי גבוה להיות תוכן של דברי שטנה ייחסם. אבל מותר להשתמש בכל ערך עם הסתברות נמוכה יותר.
סף (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 בלבד.
אפשר להגדיר את ההגדרות האלה לכל בקשה ששולחים לשירות הגנרטיבי.
פרטים נוספים מופיעים במפרט של ה-API HarmBlockThreshold
.
משוב בנושא בטיחות
generateContent
מחזירה את
GenerateContentResponse
שכוללת משוב בנושא בטיחות.
המשוב על ההנחיה כלול ב-promptFeedback
. אם הערך של promptFeedback.blockReason
מוגדר, סימן שהתוכן של ההנחיה נחסם.
המשוב על המועמדים לתשובה נכלל בCandidate.finishReason
ובCandidate.safetyRatings
. אם תוכן התגובה נחסם והערך של finishReason
היה SAFETY
, אפשר לבדוק את safetyRatings
כדי לקבל פרטים נוספים. התוכן שנחסם לא יוחזר.
שינוי הגדרות הבטיחות
בקטע הזה מוסבר איך לשנות את הגדרות הבטיחות ב-Google AI Studio ובקוד.
Google AI Studio
אפשר לשנות את הגדרות הבטיחות ב-Google AI Studio, אבל אי אפשר להשבית אותן.
לוחצים על עריכת הגדרות הבטיחות בחלונית הגדרות ההפעלה כדי לפתוח את תיבת הדו-שיח הגדרות הבטיחות של ההפעלה. בחלון הקופץ, אפשר להשתמש בפסי ההזזה כדי לשנות את רמת סינון התוכן לפי קטגוריית בטיחות:
כששולחים בקשה (לדוגמה, כששואלים את המודל שאלה), אם התוכן של הבקשה חסום, מופיעה ההודעה
No Content. כדי לראות פרטים נוספים, מעבירים את מצביע העכבר מעל הטקסט אין תוכן ולוחצים על בטיחות.ערכות 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. * אפשר להשתמש בהגדרות הבטיחות האלה כדי ליצור מסווג רעילות. כדי להתחיל, אפשר לעיין בדוגמה לסיווג.