توفّر 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 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. * يمكنك استخدام إعدادات الأمان هذه لإنشاء أسلوب تصنيف لتحديد المحتوى السام. اطّلِع على مثال التصنيف لبدء استخدام هذه الميزة.