توفّر 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
فقط) أو حظر بعض الإعدادات (في كل
الطُرز الأخرى) لجميع الفئات باستثناء فئة سلامة المدن.
الحدّ الأدنى التلقائي لحظر البيانات لفئة Civic Integrity هو حظر معظم العناصر عند إرسال الطلبات باستخدام 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، ولكن لا يمكنك إيقافها.
انقر على تعديل إعدادات الأمان في لوحة إعدادات التشغيل لفتح النافذة المنبثقة إعدادات الأمان. في النافذة المشروطة، يمكنك استخدام أشرطة التمرير لضبط مستوى فلترة المحتوى حسب فئة الأمان:
عند إرسال طلب (مثلاً، من خلال طرح سؤال على النموذج)، تظهر رسالة
ما مِن محتوى إذا تم حظر محتوى الطلب. للاطّلاع على المزيد من التفاصيل، مرِّر مؤشر الماوس فوق نص ما مِن محتوى وانقر على الأمان.حِزم تطوير البرامج (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,
}
)
البدء
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. * يمكنك استخدام إعدادات الأمان هذه لإنشاء مصنّف للغة غير اللائقة. اطّلِع على مثال التصنيف لبدء استخدام هذه الميزة.