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

ב-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 לא צוין סף, חסימה על בסיס סף ברירת המחדל

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

אפשר לקבוע את ההגדרות האלה לכל בקשה ששולחים לשירות הגנרטיבי. לעיון בממשק ה-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.generativeai.types import HarmCategory, HarmBlockThreshold

model = genai.GenerativeModel(model_name='gemini-1.5-flash')
response = model.generate_content(
    ['Do these look store-bought or homemade?', img],
    safety_settings={
        HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
        HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
    }
)

Go

model := client.GenerativeModel("gemini-1.5-flash")

model.SafetySettings = []*genai.SafetySetting{
  {
    Category:  genai.HarmCategoryHarassment,
    Threshold: genai.HarmBlockOnlyLowAndAbove,
  },
  {
    Category:  genai.HarmCategoryHateSpeech,
    Threshold: genai.HarmBlockOnlyLowAndAbove,
  },
}

Node.js

import { HarmBlockThreshold, HarmCategory } from "@google/generative-ai";

// ...

const safetySetting = [
  {
    category: HarmCategory.HARM_CATEGORY_HARASSMENT,
    threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
  },
  {
    category: HarmCategory.HARM_CATEGORY_HATE_SPEECH,
    threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
  },
];

const model = genAi.getGenerativeModel({ model: "gemini-1.5-flash", safetySettings });

פיתוח אתרים

import { HarmBlockThreshold, HarmCategory } from "@google/generative-ai";

// ...

const safetySetting = [
  {
    category: HarmCategory.HARM_CATEGORY_HARASSMENT,
    threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
  },
  {
    category: HarmCategory.HARM_CATEGORY_HATE_SPEECH,
    threshold: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
  },
];

const model = genAi.getGenerativeModel({ model: "gemini-1.5-flash", safetySettings });

הטלת חיצים (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);

השלבים הבאים

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