إعدادات الأمن الشخصي

توفّر 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 فقط) أو حظر بعض الإعدادات (في كل الطُرز الأخرى) لجميع الفئات باستثناء فئة سلامة المدن.

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