הגדרות בטיחות

ממשק Gemini API מספק הגדרות בטיחות שאפשר לשנות בשלב יצירת אב טיפוס, כדי לקבוע אם האפליקציה דורשת הגדרת בטיחות מגבילה יותר או פחות. אתם יכולים לשנות את ההגדרות האלה בחמש קטגוריות של מסננים כדי להגביל או לאפשר סוגים מסוימים של תוכן.

במדריך הזה מוסבר איך Gemini API מטפל בהגדרות בטיחות ובסינון, ואיך אפשר לשנות את הגדרות הבטיחות של האפליקציה.

מסנני בטיחות

מסנני הבטיחות המתכווננים של Gemini API מכסים את הקטגוריות הבאות:

קטגוריה תיאור
הטרדה תגובות שליליות או פוגעניות שמכוונות לזהות ו/או למאפיינים מוגנים.
דברי שטנה תוכן גס, לא מכבד או חילול קודש.
תוכן מיני בוטה מכיל התייחסויות למעשים מיניים או לתוכן מגונה אחר.
תוכן מסוכן מקדם גרימת נזק, מעודד גרימת נזק או עוזר לבצע פעולות מזיקות.
יושרה אזרחית שאילתות שקשורות לבחירות.

אתם יכולים להשתמש במסננים האלה כדי להתאים את התוצאות לתרחיש לדוגמה שלכם. לדוגמה, אם אתם יוצרים דיאלוג למשחק וידאו, יכול להיות שתחליטו לאפשר יותר תוכן שסווג כמסוכן בגלל אופי המשחק.

בנוסף למסנני הבטיחות שניתנים להתאמה, ל-Gemini API יש אמצעי הגנה מובנים מפני נזקים מהותיים, כמו תוכן שמסכן את בטיחות הילדים. סוגי הנזק האלה תמיד נחסמים ואי אפשר לשנות את זה.

רמת הסינון של בטיחות התוכן

‫Gemini API מסווג את רמת ההסתברות לכך שהתוכן לא בטוח כ-HIGH, MEDIUM, LOW או NEGLIGIBLE.

‫Gemini API חוסם תוכן על סמך הסבירות שהתוכן לא בטוח, ולא על סמך חומרת הבעיה. חשוב לקחת את זה בחשבון כי יש תכנים שהסיכוי שהם לא בטוחים הוא נמוך, אבל חומרת הנזק שעלולה להיגרם מהם עדיין גבוהה. לדוגמה, בהשוואה בין המשפטים:

  1. הרובוט נתן לי אגרוף.
  2. הרובוט חתך אותי.

יכול להיות שהמשפט הראשון יניב סבירות גבוהה יותר להיות לא בטוח, אבל יכול להיות שהמשפט השני יניב חומרה גבוהה יותר מבחינת אלימות. לכן חשוב לבדוק בקפידה ולשקול מהי רמת החסימה המתאימה שנדרשת כדי לתמוך בתרחישי השימוש העיקריים שלכם, תוך מזעור הפגיעה במשתמשי הקצה.

סינון בטיחותי לכל בקשה

אתם יכולים לשנות את הגדרות הבטיחות לכל בקשה שאתם שולחים ל-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. * אפשר להשתמש בהגדרות הבטיחות האלה כדי ליצור מסווג רעילות. כדי להתחיל, אפשר לעיין בדוגמה לסיווג.