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

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

إنّ مستوى الحظر التلقائي لفئة النزاهة المدنية هو عدم الحظر (بالنسبة إلى 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 إلى حظر أي محتوى لديه احتمال منخفض أو أعلى بأن يكون تحرشًا أو كلامًا يحض على الكراهية. للتعرّف على إعدادات الحدّ الأدنى، راجِع فلترة المحتوى غير الملائم لكل طلب.

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)

Go

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