Gemini API में सुरक्षा सेटिंग उपलब्ध होती हैं. इन्हें प्रोटोटाइपिंग के दौरान अडजस्ट किया जा सकता है. इससे यह तय किया जा सकता है कि आपके ऐप्लिकेशन के लिए, सुरक्षा से जुड़ी ज़्यादा या कम पाबंदियों वाले कॉन्फ़िगरेशन की ज़रूरत है. इन सेटिंग को पांच फ़िल्टर कैटगरी में बदला जा सकता है, ताकि कुछ खास तरह के कॉन्टेंट को प्रतिबंधित किया जा सके या अनुमति दी जा सके.
इस गाइड में बताया गया है कि Gemini API, सुरक्षा सेटिंग और फ़िल्टर करने की सुविधा को कैसे मैनेज करता है. साथ ही, इसमें यह भी बताया गया है कि अपने ऐप्लिकेशन के लिए सुरक्षा सेटिंग कैसे बदली जा सकती हैं.
सेफ़्टी फ़िल्टर
Gemini API के सेफ़्टी फ़िल्टर को अडजस्ट किया जा सकता है. ये फ़िल्टर इन कैटगरी को कवर करते हैं:
कैटगरी | ब्यौरा |
---|---|
उत्पीड़न | किसी व्यक्ति की पहचान और/या सुरक्षित रखे गए एट्रिब्यूट को लेकर की गई नकारात्मक या नुकसान पहुंचाने वाली टिप्पणियां. |
नफ़रत फैलाने वाली भाषा | ऐसा कॉन्टेंट जो अशिष्ट, अपमानजनक या अपशब्दों वाला हो. |
अश्लील | ऐसी टिप्पणी जिसमें यौन गतिविधियों या अश्लील भाषा का इस्तेमाल किया गया हो. |
खतरनाक | नुकसान पहुंचाने वाली गतिविधियों का प्रमोशन करता हो, उन्हें लागू करना आसान बनाता हो या उन्हें बढ़ावा देता हो. |
चुनाव में गड़बड़ी रोकने से जुड़ी नीति | चुनाव से जुड़ी क्वेरी. |
इन फ़िल्टर का इस्तेमाल करके, अपने इस्तेमाल के हिसाब से कॉन्टेंट को अडजस्ट किया जा सकता है. उदाहरण के लिए, अगर आपको वीडियो गेम के लिए डायलॉग बनाने हैं, तो हो सकता है कि आपको गेम के हिसाब से, खतरनाक के तौर पर रेटिंग पाए कॉन्टेंट को शामिल करना सही लगे.
Gemini API में, सुरक्षा फ़िल्टर को अपनी ज़रूरत के हिसाब से सेट करने की सुविधा के साथ-साथ, नुकसान पहुंचाने वाले कॉन्टेंट से सुरक्षा पाने की सुविधा भी उपलब्ध है. जैसे, बच्चों की सुरक्षा को खतरे में डालने वाला कॉन्टेंट. इस तरह के नुकसान को हमेशा ब्लॉक किया जाता है और इसमें बदलाव नहीं किया जा सकता.
कॉन्टेंट की सुरक्षा के लिए फ़िल्टर करने का लेवल
Gemini API, कॉन्टेंट के असुरक्षित होने की संभावना को इन कैटगरी में बांटता है:
HIGH
, MEDIUM
, LOW
या NEGLIGIBLE
.
Gemini 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
, और 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. * इन सुरक्षा सेटिंग का इस्तेमाल करके, टॉक्सिसिटी क्लासिफ़ायर बनाया जा सकता है. शुरू करने के लिए, क्लासिफ़िकेशन का उदाहरण देखें.