تنظیمات ایمنی

Gemini API تنظیمات ایمنی را ارائه می‌کند که می‌توانید در مرحله نمونه‌سازی برای تعیین اینکه آیا برنامه شما به پیکربندی ایمنی کم و بیش محدودی نیاز دارد، آنها را تنظیم کنید. می‌توانید این تنظیمات را در چهار دسته فیلتر تنظیم کنید تا انواع خاصی از محتوا را محدود یا مجاز کنید.

این راهنما نحوه عملکرد Gemini API با تنظیمات ایمنی و فیلتر کردن و اینکه چگونه می توانید تنظیمات ایمنی برنامه خود را تغییر دهید را پوشش می دهد.

فیلترهای ایمنی

فیلترهای ایمنی قابل تنظیم Gemini API دسته های زیر را پوشش می دهند:

دسته بندی توضیحات
آزار و اذیت نظرات منفی یا مضر که هویت و/یا ویژگی های محافظت شده را هدف قرار می دهد.
سخنان نفرت انگیز محتوایی که بی ادب، بی احترامی یا توهین آمیز است.
صریح جنسی حاوی ارجاعاتی به اعمال جنسی یا سایر محتوای زننده است.
خطرناکه اقدامات مضر را ترویج، تسهیل یا تشویق می کند.
یکپارچگی مدنی سوالات مربوط به انتخابات

شما می توانید از این فیلترها برای تنظیم آنچه که برای مورد استفاده شما مناسب است استفاده کنید. به عنوان مثال، اگر در حال ساخت گفتگوی بازی ویدیویی هستید، ممکن است اجازه دهید محتوای بیشتری را که به دلیل ماهیت بازی به عنوان خطرناک رتبه بندی می شود، قابل قبول تلقی کنید.

علاوه بر فیلترهای ایمنی قابل تنظیم، Gemini API دارای محافظت های داخلی در برابر آسیب های اصلی است، مانند محتوایی که ایمنی کودک را به خطر می اندازد. این نوع آسیب ها همیشه مسدود هستند و قابل تنظیم نیستند.

سطح فیلتر ایمنی محتوا

Gemini API سطح احتمال ناامن بودن محتوا را به عنوان HIGH ، MEDIUM ، LOW یا NEGLIGIBLE دسته بندی می کند.

Gemini API محتوا را بر اساس احتمال ناامن بودن محتوا و نه بر اساس شدت مسدود می کند. این مهم است که در نظر گرفته شود زیرا برخی از محتواها ممکن است احتمال ناامن کمی داشته باشند، حتی اگر شدت آسیب همچنان بالا باشد. برای مثال، مقایسه جملات:

  1. ربات به من مشت زد.
  2. ربات به من ضربه زد.

جمله اول ممکن است منجر به احتمال بالاتری برای ناامن بودن شود، اما ممکن است جمله دوم را از نظر خشونت با شدت بیشتری در نظر بگیرید. با توجه به این موضوع، مهم است که به دقت آزمایش کنید و در نظر بگیرید که چه سطح مسدودسازی مناسبی برای پشتیبانی از موارد استفاده کلیدی شما لازم است و در عین حال آسیب به کاربران نهایی را به حداقل برسانید.

فیلتر ایمنی در هر درخواست

می‌توانید تنظیمات ایمنی را برای هر درخواستی که به API ارائه می‌دهید، تنظیم کنید. وقتی درخواستی می‌کنید، محتوا تحلیل می‌شود و رتبه‌بندی ایمنی به آن اختصاص می‌یابد. رتبه بندی ایمنی شامل دسته بندی و احتمال طبقه بندی آسیب است. برای مثال، اگر محتوا به دلیل احتمال زیاد دسته آزار و اذیت مسدود شده باشد، رتبه ایمنی بازگردانده شده دارای دسته ای برابر با HARASSMENT و احتمال آسیب بر روی HIGH تنظیم می شود.

به‌طور پیش‌فرض، تنظیمات ایمنی محتوا (از جمله درخواست‌ها) را با احتمال متوسط ​​یا بالاتر ناامن بودن در هر فیلتری مسدود می‌کند. این ایمنی پایه به گونه‌ای طراحی شده است که برای بیشتر موارد استفاده کار کند، بنابراین فقط در صورتی باید تنظیمات ایمنی خود را تنظیم کنید که به طور مداوم برای برنامه شما مورد نیاز است.

جدول زیر تنظیمات بلوک را که می توانید برای هر دسته تنظیم کنید، توضیح می دهد. به عنوان مثال، اگر تنظیم بلاک را برای دسته سخنان مشوق نفرت بر روی Block few قرار دهید، هر چیزی که احتمال زیادی برای محتوای سخنان مشوق عداوت و تنفر داشته باشد مسدود می شود. اما هر چیزی با احتمال کمتر مجاز است.

آستانه (استودیوی هوش مصنوعی گوگل) آستانه (API) توضیحات
هیچکدام را مسدود نکنید BLOCK_NONE همیشه بدون توجه به احتمال محتوای ناامن نشان داده شود
تعداد کمی را بلاک کنید BLOCK_ONLY_HIGH زمانی که احتمال بالای محتوای ناامن وجود دارد مسدود شود
برخی را مسدود کنید BLOCK_MEDIUM_AND_ABOVE مسدود کردن زمانی که احتمال متوسط ​​یا زیاد محتوای ناامن وجود دارد
بیشتر را مسدود کنید BLOCK_LOW_AND_ABOVE مسدود کردن زمانی که احتمال کم، متوسط ​​یا زیاد محتوای ناامن وجود دارد
N/A HARM_BLOCK_THRESHOLD_UNSPECIFIED آستانه مشخص نیست، با استفاده از آستانه پیش‌فرض مسدود کنید

اگر آستانه تنظیم نشده باشد، آستانه بلوک پیش‌فرض Block most (فقط برای gemini-1.5-pro-002 و gemini-1.5-flash-002 ) یا مسدود کردن برخی (در همه مدل‌های دیگر) برای همه دسته‌ها به جز دسته یکپارچگی مدنی است. .

آستانه بلوک پیش‌فرض برای دسته یکپارچگی مدنی ، هنگام ارسال درخواست‌ها با استفاده از Google AI Studio، مسدود کردن بیشتر است، و هنگام استفاده مستقیم از Gemini API، هیچ‌کدام را مسدود نمی‌کند .

می توانید این تنظیمات را برای هر درخواستی که به سرویس مولد می دهید تنظیم کنید. برای جزئیات بیشتر به مرجع HarmBlockThreshold API مراجعه کنید.

بازخورد ایمنی

generateContent یک GenerateContentResponse را برمی‌گرداند که شامل بازخورد ایمنی است.

بازخورد سریع در promptFeedback گنجانده شده است. اگر promptFeedback.blockReason تنظیم شده باشد، محتوای درخواست مسدود شده است.

بازخورد نامزد پاسخ در Candidate.finishReason و Candidate.safetyRatings گنجانده شده است. اگر محتوای پاسخ مسدود شده بود و finishReason SAFETY بود، می‌توانید safetyRatings برای جزئیات بیشتر بررسی کنید. محتوای مسدود شده برگردانده نمی شود.

تنظیمات ایمنی را تنظیم کنید

این بخش نحوه تنظیم تنظیمات ایمنی را هم در Google AI Studio و هم در کد خود پوشش می دهد.

استودیوی هوش مصنوعی گوگل

می‌توانید تنظیمات ایمنی را در Google AI Studio تنظیم کنید، اما نمی‌توانید آنها را خاموش کنید.

روی ویرایش تنظیمات ایمنی در پانل تنظیمات اجرا کلیک کنید تا حالت تنظیمات ایمنی اجرا باز شود. در مودال، می‌توانید از لغزنده‌ها برای تنظیم سطح فیلتر محتوا در هر دسته ایمنی استفاده کنید:

هنگامی که درخواستی را ارسال می کنید (مثلاً با پرسیدن سؤال از مدل)، در صورت مسدود شدن محتوای درخواست، یک پیام بدون محتوا ظاهر می شود. برای مشاهده جزئیات بیشتر، نشانگر را روی متن بدون محتوا نگه دارید و روی ایمنی کلیک کنید.

Gemini API SDKs

قطعه کد زیر نحوه تنظیم تنظیمات ایمنی در تماس GenerateContent را نشان می دهد. این آستانه‌ها را برای دسته‌های آزار و اذیت ( HARM_CATEGORY_HARASSMENT ) و سخنان مشوق نفرت ( HARM_CATEGORY_HATE_SPEECH ) تعیین می‌کند. برای مثال، تنظیم این دسته‌ها روی BLOCK_LOW_AND_ABOVE هر محتوایی را که احتمال آزار و اذیت یا سخنان مشوق عداوت و تنفر پایین یا بالاتر دارد مسدود می‌کند. برای درک تنظیمات آستانه، به فیلتر کردن ایمنی در هر درخواست مراجعه کنید.

پایتون

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 });

دارت (فلاتر)

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-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d @request.json 2> /dev/null

مراحل بعدی

  • برای اطلاعات بیشتر در مورد API کامل به مرجع API مراجعه کنید.
  • برای نگاهی کلی به ملاحظات ایمنی هنگام توسعه با LLM ، راهنمای ایمنی را مرور کنید.
  • درباره ارزیابی احتمال در مقابل شدت از تیم Jigsaw بیشتر بیاموزید
  • درباره محصولاتی که به راهکارهای ایمنی مانند Perspective API کمک می کنند، بیشتر بیاموزید. * می توانید از این تنظیمات ایمنی برای ایجاد یک طبقه بندی سمیت استفاده کنید. برای شروع به مثال طبقه بندی مراجعه کنید.