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

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

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

सेफ़्टी फ़िल्टर

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

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

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

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

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

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

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

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

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

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

एपीआई को किए जाने वाले हर अनुरोध के लिए, सुरक्षा सेटिंग में बदलाव किया जा सकता है. अनुरोध करने पर, कॉन्टेंट का विश्लेषण किया जाता है और उसे सुरक्षा रेटिंग दी जाती है. सुरक्षा रेटिंग में, कैटगरी और नुकसान की आशंका के आधार पर क्लासिफ़िकेशन शामिल होता है. उदाहरण के लिए, अगर उत्पीड़न की कैटगरी के कॉन्टेंट के ब्लॉक होने की संभावना ज़्यादा होने की वजह से कॉन्टेंट ब्लॉक किया गया था, तो सुरक्षा रेटिंग में कैटगरी 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, और GA के सभी नए स्टेबल मॉडल के लिए) या कुछ को ब्लॉक करें (अन्य सभी मॉडल में) होता है. यह थ्रेशोल्ड, चुनाव प्रक्रिया की निष्पक्षता कैटगरी को छोड़कर सभी कैटगरी के लिए होता है.

चुनाव प्रक्रिया की निष्पक्षता कैटगरी के लिए, डिफ़ॉल्ट रूप से ब्लॉक करने का थ्रेशोल्ड किसी भी नतीजे को ब्लॉक न करें पर सेट होता है. यह Google AI Studio और Gemini API, दोनों के लिए होता है. gemini-2.0-flash-001 को gemini-2.0-flash, gemini-2.0-pro-exp-02-05, और gemini-2.0-flash-lite के तौर पर भी जाना जाता है. Google AI Studio में मौजूद अन्य सभी मॉडल के लिए, डिफ़ॉल्ट रूप से ब्लॉक करने का थ्रेशोल्ड ज़्यादातर नतीजे ब्लॉक करें पर सेट होता है.

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

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

generateContent a 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 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)

ऐप पर जाएं

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

अगले चरण

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