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

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

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

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

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

  • آزار و اذیت
  • سخنان تنفرآمیز
  • صریح جنسی
  • خطرناک

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

استفاده از مورد دسته بندی
برنامه آموزشی ضد آزار و اذیت سخنان تنفرآمیز، صریح جنسی
فیلمنامه نویس از نظر جنسی صریح، خطرناک
طبقه بندی سموم آزار و اذیت، خطرناک

احتمال در مقابل شدت

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

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

جمله 1 ممکن است منجر به احتمال بالاتری برای ناامن بودن شود، اما ممکن است جمله 2 را از نظر خشونت شدیدتر در نظر بگیرید.

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

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

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

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

این تعاریف در مرجع API نیز وجود دارد. مدل‌های Gemini فقط از HARM_CATEGORY_HARASSMENT ، HARM_CATEGORY_HATE_SPEECH ، HARM_CATEGORY_SEXUALLY_EXPLICIT و HARM_CATEGORY_DANGEROUS_CONTENT پشتیبانی می‌کنند. دسته های دیگر توسط مدل های PalM 2 (Legacy) استفاده می شوند.

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

اگر تنظیم نشده باشد، تنظیم بلوک پیش‌فرض Block some برای همه دسته‌ها است.

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

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

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

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

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

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

احتمال برگشتی مطابق با سطوح اطمینان بلوک مطابق جدول زیر است:

احتمال شرح
قابل اغماض احتمال ناامن بودن محتوا بسیار ناچیز است
کم احتمال ناامن بودن محتوا کم است
متوسط احتمال ناامن بودن محتوا متوسط ​​است
بالا احتمال ناامن بودن محتوا زیاد است

برای مثال، اگر محتوا به دلیل احتمال زیاد دسته آزار و اذیت مسدود شده باشد، رتبه ایمنی بازگردانده شده دارای دسته ای برابر با HARASSMENT و احتمال آسیب بر روی HIGH تنظیم می شود.

تنظیمات ایمنی در Google AI Studio

همچنین می‌توانید تنظیمات ایمنی را در Google AI Studio تنظیم کنید، اما نمی‌توانید آنها را خاموش کنید. برای انجام این کار، در تنظیمات Run ، روی ویرایش تنظیمات ایمنی کلیک کنید:

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

و از دستگیره ها برای تنظیم هر تنظیمات استفاده کنید:

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

اگر محتوا مسدود شده باشد، یک پیام بدون محتوا ظاهر می شود. برای مشاهده جزئیات بیشتر، نشانگر را روی No Content نگه دارید و روی ایمنی کلیک کنید.

نمونه های کد

این بخش نحوه استفاده از تنظیمات ایمنی در کد با استفاده از کتابخانه کلاینت پایتون را نشان می دهد.

درخواست نمونه

در زیر یک قطعه کد پایتون است که نحوه تنظیم تنظیمات ایمنی در تماس GenerateContent را نشان می دهد. این دسته‌بندی آسیب‌ها، Harassment و Hate speech را روی BLOCK_LOW_AND_ABOVE تنظیم می‌کند که هر محتوایی را که احتمال آزار و اذیت یا سخنان مشوق عداوت و تنفر دارند، مسدود می‌کند.

from google.generativeai.types import HarmCategory, HarmBlockThreshold

model = genai.GenerativeModel(model_name='gemini-pro-vision')
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,
    }
)

نمونه پاسخ

در زیر یک قطعه کد برای تجزیه بازخورد ایمنی از پاسخ نشان داده شده است.

try:
  print(response.text)
except ValueError:
  # If the response doesn't contain text, check if the prompt was blocked.
  print(response.prompt_feedback)
  # Also check the finish reason to see if the response was blocked.
  print(response.candidates[0].finish_reason)
  # If the finish reason was SAFETY, the safety ratings have more details.
  print(response.candidates[0].safety_ratings)

مراحل بعدی

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