सुरक्षा की सेटिंग

Gemini API, सुरक्षा से जुड़ी ऐसी सेटिंग उपलब्ध कराता है जिन्हें प्रोटोटाइप बनाने के दौरान अडजस्ट किया जा सकता है. इससे यह तय किया जा सकता है कि आपके ऐप्लिकेशन को सुरक्षा से जुड़े ज़्यादा या कम पाबंदी वाले कॉन्फ़िगरेशन की ज़रूरत है या नहीं. कुछ खास तरह के कॉन्टेंट पर पाबंदी लगाने या उन्हें अनुमति देने के लिए, इन सेटिंग को फ़िल्टर की चार कैटगरी में बदला जा सकता है.

इस गाइड में बताया गया है कि Gemini API, सुरक्षा सेटिंग और फ़िल्टर करने की सुविधा को कैसे मैनेज करता है. साथ ही, यह भी बताया गया है कि अपने ऐप्लिकेशन के लिए सुरक्षा सेटिंग को कैसे बदला जा सकता है.

सुरक्षा फ़िल्टर

Gemini API के अडजस्ट किए जा सकने वाले सुरक्षा फ़िल्टर, इन कैटगरी को कवर करते हैं:

कैटगरी ब्यौरा
उत्पीड़न पहचान और/या संवेदनशील जानकारी को टारगेट करने वाली नकारात्मक या नुकसान पहुंचाने वाली टिप्पणियां.
नफ़रत फैलाने वाली भाषा ऐसा कॉन्टेंट जो अपमानजनक, गलत या अपशब्दों से भरा हो.
अश्लील ऐसी टिप्पणी जिसमें यौन गतिविधियों या अश्लील भाषा का इस्तेमाल किया गया हो.
खतरनाक नुकसान पहुंचाने वाली गतिविधियों को बढ़ावा देता है, उन्हें लागू करना आसान बनाता है या उन्हें बढ़ावा देता है.
नागरिकों की सुरक्षा चुनाव से जुड़ी क्वेरी.

इन फ़िल्टर का इस्तेमाल करके, अपने इस्तेमाल के हिसाब से बदलाव किया जा सकता है. उदाहरण के लिए, अगर वीडियो गेम के लिए डायलॉग लिखा जा रहा है, तो गेम के टाइप के हिसाब से, खतरनाक के तौर पर रेटिंग वाले ज़्यादा कॉन्टेंट को दिखाने की अनुमति दी जा सकती है.

Gemini API में, सुरक्षा से जुड़े ऐसे फ़िल्टर पहले से मौजूद होते हैं जिनकी सेटिंग में बदलाव किया जा सकता है. साथ ही, इसमें बच्चों की सुरक्षा को खतरे में डालने वाले कॉन्टेंट जैसे नुकसान पहुंचाने वाले कॉन्टेंट से बचाने के लिए, पहले से ही सुरक्षा की सुविधाएं मौजूद होती हैं. इस तरह के नुकसान को हमेशा ब्लॉक किया जाता है और इसमें बदलाव नहीं किया जा सकता.

कॉन्टेंट की सुरक्षा के लिए फ़िल्टर करने का लेवल

Gemini API, कॉन्टेंट के असुरक्षित होने की संभावना को HIGH, MEDIUM, LOW या NEGLIGIBLE के तौर पर बांटता है.

Gemini API, कॉन्टेंट को असुरक्षित होने की संभावना के आधार पर ब्लॉक करता है, न कि उसके खतरनाक होने की वजह से. इस बात का ध्यान रखना ज़रूरी है, क्योंकि कुछ कॉन्टेंट के असुरक्षित होने की संभावना कम हो सकती है. हालांकि, इससे होने वाले नुकसान की गंभीरता अब भी ज़्यादा हो सकती है. उदाहरण के लिए, इन वाक्यों की तुलना करना:

  1. रोबोट ने मुझे मुक्का मारा.
  2. रोबोट ने मुझे काट दिया.

पहले वाक्य से, असुरक्षित होने की संभावना ज़्यादा हो सकती है. हालांकि, हिंसा के मामले में दूसरे वाक्य को ज़्यादा गंभीर माना जा सकता है. इसलिए, यह ज़रूरी है कि आप सावधानी से जांच करें और यह तय करें कि आपके मुख्य इस्तेमाल के उदाहरणों के लिए, ब्लॉक करने का सही लेवल क्या होना चाहिए. साथ ही, यह भी ध्यान रखें कि इससे असली उपयोगकर्ताओं को कम से कम नुकसान पहुंचे.

हर अनुरोध के हिसाब से सुरक्षा से जुड़ी फ़िल्टरिंग

आपके पास API को किए जाने वाले हर अनुरोध के लिए, सुरक्षा सेटिंग में बदलाव करने का विकल्प होता है. अनुरोध करने पर, कॉन्टेंट का विश्लेषण किया जाता है और उसे सुरक्षा रेटिंग दी जाती है. सुरक्षा रेटिंग में, नुकसान की कैटगरी और उसे कैटगरी में बांटने की संभावना शामिल होती है. उदाहरण के लिए, अगर कॉन्टेंट को उत्पीड़न की कैटगरी में आने की वजह से ब्लॉक किया गया था, तो सुरक्षा रेटिंग में कैटगरी HARASSMENT और नुकसान की संभावना HIGH पर सेट होगी.

सुरक्षा सेटिंग, डिफ़ॉल्ट रूप से ऐसे कॉन्टेंट को ब्लॉक कर देती हैं जो किसी भी फ़िल्टर के हिसाब से, असुरक्षित होने की मध्यम या ज़्यादा संभावना रखता है. इसमें प्रॉम्प्ट भी शामिल हैं. सुरक्षा से जुड़ी यह बुनियादी सेटिंग, ऐप्लिकेशन के इस्तेमाल के ज़्यादातर उदाहरणों के लिए डिज़ाइन की गई है. इसलिए, आपको सुरक्षा सेटिंग में सिर्फ़ तब बदलाव करना चाहिए, जब आपके ऐप्लिकेशन के लिए ऐसा करना ज़रूरी हो.

यहां दी गई टेबल में, ब्लॉक की उन सेटिंग के बारे में बताया गया है जिन्हें हर कैटगरी के लिए अडजस्ट किया जा सकता है. उदाहरण के लिए, अगर आपने नफ़रत फैलाने वाला कॉन्टेंट कैटगरी के लिए, ब्लॉक करने की सेटिंग को कुछ कॉन्टेंट ब्लॉक करें पर सेट किया है, तो नफ़रत फैलाने वाला कॉन्टेंट होने की संभावना वाले सभी वीडियो ब्लॉक कर दिए जाएंगे. हालांकि, कम संभावना वाली किसी भी चीज़ को अनुमति दी जाती है.

थ्रेशोल्ड (Google AI Studio) थ्रेशोल्ड (एपीआई) ब्यौरा
किसी को ब्लॉक न करें 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 के लिए) या कुछ (अन्य सभी मॉडल में) को ब्लॉक किया जाता है.

Google AI Studio का इस्तेमाल करके प्रॉम्प्ट भेजते समय, नागरिकों की सुरक्षा कैटगरी के लिए, डिफ़ॉल्ट रूप से ज़्यादातर प्रॉम्प्ट को ब्लॉक करें और सीधे Gemini API का इस्तेमाल करते समय, कोई प्रॉम्प्ट ब्लॉक न करें.

जनरेटिव सेवा के लिए किए गए हर अनुरोध के लिए, ये सेटिंग सेट की जा सकती हैं. ज़्यादा जानकारी के लिए, HarmBlockThreshold एपीआई रेफ़रंस देखें.

सुरक्षा से जुड़े सुझाव, शिकायत या राय

generateContent, GenerateContentResponse दिखाता है. इसमें सुरक्षा से जुड़ा सुझाव या राय शामिल होती है.

सुझाव/राय या शिकायत, promptFeedback में शामिल की जाती है. अगर promptFeedback.blockReason सेट है, तो इसका मतलब है कि प्रॉम्प्ट का कॉन्टेंट ब्लॉक किया गया है.

जवाब के लिए उम्मीदवार का सुझाव/राय या शिकायत, Candidate.finishReason और Candidate.safetyRatings में शामिल होती है. अगर जवाब का कॉन्टेंट ब्लॉक किया गया था और finishReason SAFETY था, तो ज़्यादा जानकारी के लिए safetyRatings की जांच की जा सकती है. ब्लॉक किया गया कॉन्टेंट वापस नहीं लाया जाता.

सुरक्षा सेटिंग में बदलाव करना

इस सेक्शन में, Google AI Studio और कोड, दोनों में सुरक्षा सेटिंग में बदलाव करने का तरीका बताया गया है.

Google AI Studio

Google AI Studio में जाकर, सुरक्षा सेटिंग में बदलाव किया जा सकता है. हालांकि, इन्हें बंद नहीं किया जा सकता.

रन की सुरक्षा सेटिंग मॉडल खोलने के लिए, रन की सेटिंग पैनल में सुरक्षा सेटिंग में बदलाव करें पर क्लिक करें. सुरक्षा कैटगरी के हिसाब से कॉन्टेंट को फ़िल्टर करने के लेवल में बदलाव करने के लिए, मॉडल में स्लाइडर का इस्तेमाल किया जा सकता है:

जब कोई अनुरोध भेजा जाता है, जैसे कि मॉडल से कोई सवाल पूछकर, तो अगर अनुरोध का कॉन्टेंट ब्लॉक किया गया है, तो कोई कॉन्टेंट नहीं मैसेज दिखता है. ज़्यादा जानकारी देखने के लिए, कोई कॉन्टेंट नहीं टेक्स्ट पर कर्सर घुमाएं और सुरक्षा पर क्लिक करें.

Gemini API SDK टूल

यहां दिए गए कोड स्निपेट में, 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,
    }
)

शुरू करें

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

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

Node.js

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

// ...

const safetySettings = [
  {
    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: safetySettings });

वेब

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

// ...

const safetySettings = [
  {
    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 });

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-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d @request.json 2> /dev/null

अगले चरण

  • पूरे एपीआई के बारे में ज़्यादा जानने के लिए, एपीआई रेफ़रंस देखें.
  • एलएलएम का इस्तेमाल करके मशीन लर्निंग मॉडल बनाते समय, सुरक्षा से जुड़ी बातों को ध्यान में रखने के लिए, सुरक्षा से जुड़े दिशा-निर्देश देखें.
  • Jigsaw टीम से, संभाव्यता बनाम गंभीरता का आकलन करने के बारे में ज़्यादा जानें
  • Perspective API जैसे प्रॉडक्ट के बारे में ज़्यादा जानें, जो सुरक्षा से जुड़े समाधानों में मदद करते हैं. * सुरक्षा से जुड़ी इन सेटिंग का इस्तेमाल करके, नुकसान पहुंचाने वाले कॉन्टेंट का पता लगाने वाला मॉडल बनाया जा सकता है. शुरू करने के लिए, कैटगरी तय करने का उदाहरण देखें.