توفّر 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
وجميع النماذج الأحدث والثابتة من "إحصاءات Google")
أو حظر بعض المحتوى (في جميع النماذج الأخرى) لجميع الفئات باستثناء فئة
سلامة الانتخابات.
الحدّ الأدنى التلقائي لحظر المحتوى في فئة السلامة المدنية هو عدم حظر أي محتوى
(للنموذج 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 فقط.
يمكنك ضبط هذه الإعدادات لكل طلب تقدّمه إلى الخدمة التوليدية.
يمكنك الاطّلاع على مرجع واجهة برمجة التطبيقات 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
إلى حظر أي محتوى يُرجّح أن يكون تحرّشًا أو
كلامًا يحض على الكراهية. للتعرّف على إعدادات الحدّ الأدنى، يُرجى الاطّلاع على مقالة الفلترة حسب طلب الأمان.
from google import genai
from google.genai import types
import PIL.Image
img = PIL.Image.open("cookies.jpg")
client = genai.Client(api_key="GEMINI_API_KEY ")
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)
model := client.GenerativeModel("gemini-1.5-flash")
model.SafetySettings = []*genai.SafetySetting{
{
Category: genai.HarmCategoryHarassment,
Threshold: genai.HarmBlockLowAndAbove,
},
{
Category: genai.HarmCategoryHateSpeech,
Threshold: genai.HarmBlockLowAndAbove,
},
}
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });
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();
final safetySettings = [
SafetySetting(HarmCategory.harassment, HarmBlockThreshold.low),
SafetySetting(HarmCategory.hateSpeech, HarmBlockThreshold.low),
];
final model = GenerativeModel(
model: 'gemini-1.5-flash',
apiKey: apiKey,
safetySettings: safetySettings,
);
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)
)
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);
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?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d @request.json 2> /dev/null
الخطوات التالية
- اطّلِع على مرجع واجهة برمجة التطبيقات للتعرّف على مزيد من المعلومات عن واجهة برمجة التطبيقات الكاملة.
- راجِع إرشادات السلامة للحصول على نظرة عامة على المسألة المتعلّقة بالسلامة عند التطوير باستخدام النماذج اللغوية الكبيرة.
- اطّلِع على مزيد من المعلومات حول تقييم الاحتمالية مقابل الخطورة من فريق Jigsaw.
- اطّلِع على مزيد من المعلومات عن المنتجات التي تساهم في حلول السلامة، مثل واجهة برمجة التطبيقات Perspective API. * يمكنك استخدام إعدادات الأمان هذه لإنشاء مصنّف للمحتوى السام. اطّلِع على مثال التصنيف لبدء استخدام هذه الميزة.