Güvenlik ayarları

Gemini API, uygulamanızın daha fazla mı yoksa daha az kısıtlayıcı güvenlik yapılandırması gerektirip gerektirmediğini belirlemek için prototip oluşturma aşamasında düzenleyebileceğiniz güvenlik ayarları sunar. Belirli içerik türlerini kısıtlamak veya bu tür içeriklere izin vermek için bu ayarları dört filtre kategorisinde düzenleyebilirsiniz.

Bu kılavuzda, Gemini API'nin güvenlik ayarlarını ve filtrelemeyi nasıl işlediği ve uygulamanızın güvenlik ayarlarını nasıl değiştirebileceğiniz açıklanmaktadır.

Güvenlik filtreleri

Gemini API'nin ayarlanabilir güvenlik filtreleri aşağıdaki kategorileri kapsar:

Kategori Açıklama
Taciz Kimlik ve/veya korunan özellikleri hedefleyen olumsuz ya da zararlı yorumlar.
Nefret söylemi Kaba, saygısız veya küfürlü içerikler.
Müstehcenlik Cinsel eylemlere veya diğer açık saçık içeriğe atıfta bulunma.
Tehlikeli Zararlı eylemleri teşvik eden, kolaylaştıran veya destekleyen içerikler

Kullanım alanınıza en uygun olan seçeneği belirlemek için bu filtreleri kullanabilirsiniz. Örneğin, bir video oyunu diyalogu oluşturuyorsanız oyunun yapısı nedeniyle Tehlikeli olarak derecelendirilen daha fazla içeriğe izin vermeyi kabul edebilirsiniz.

Gemini API, ayarlanabilir güvenlik filtrelerinin yanı sıra çocukların güvenliğini tehlikeye atan içerikler gibi temel zararlara karşı yerleşik koruma özelliklerine sahiptir. Bu tür zararlar her zaman engellenir ve düzenlenemez.

İçerik güvenliği filtreleme düzeyi

Gemini API, içeriğin güvenli olmama olasılığını HIGH, MEDIUM, LOW veya NEGLIGIBLE şeklinde sınıflandırır.

Gemini API, içeriği önem derecesine göre değil, içeriğin güvenli olma olasılığına göre engeller. Zararın ciddiyeti hâlâ yüksek olsa bile bazı içeriklerin güvenli olmama olasılığı düşük olabileceğinden bu durumun dikkate alınması önemlidir. Örneğin, cümleleri karşılaştırırken:

  1. Robot bana yumruk attı.
  2. Robot beni öldürdü.

İlk cümlenin güvenli olmama olasılığı daha yüksek olsa da, ikinci cümlenin şiddeti daha fazla önemsediğini düşünebilirsiniz. Bu nedenle, son kullanıcılara zararı en aza indirirken temel kullanım alanlarınızı desteklemek için hangi uygun engelleme düzeyinin gerekli olduğunu dikkatlice test etmeniz ve değerlendirmeniz önemlidir.

İstek başına güvenlik filtrelemesi

API'ye gönderdiğiniz her istek için güvenlik ayarlarını düzenleyebilirsiniz. İstekte bulunduğunuzda, içerik analiz edilir ve bir güvenlik derecelendirmesi atanır. Güvenlik derecelendirmesi, kategoriyi ve zararın sınıflandırılma olasılığını içerir. Örneğin, içerik taciz kategorisinin yüksek olasılığa sahip olması nedeniyle engellendiyse döndürülen güvenlik puanının kategorisi HARASSMENT ve zarar olasılığı HIGH olarak ayarlanır.

Güvenlik ayarları, varsayılan olarak herhangi bir filtrede güvenli olma olasılığı orta veya daha yüksek olan içerikleri (istemler dahil) engeller. Bu temel güvenlik, çoğu kullanım alanında çalışacak şekilde tasarlanmıştır. Bu nedenle güvenlik ayarlarınızı yalnızca uygulamanız için sürekli gerekliyse düzenlemelisiniz.

Aşağıdaki tabloda, her bir kategori için düzenleyebileceğiniz engelleme ayarları açıklanmaktadır. Örneğin, Nefret söylemi kategorisi için engelleme ayarını Az sayıda engelle olarak ayarlarsanız nefret söylemi içeriği olma olasılığı yüksek olan her şey engellenir. Ancak düşük olasılıklı her şeye izin verilir.

Eşik (Google AI Studio) Eşik (API) Açıklama
Hiçbirini engelleme BLOCK_NONE Güvenli olmayan içerik olasılığından bağımsız olarak her zaman göster
Birkaçını engelle BLOCK_ONLY_HIGH Güvenli olmayan içerik olasılığı yüksek olduğunda engelle
Bazılarını engelle BLOCK_MEDIUM_AND_ABOVE Güvenli olmayan içerik olasılığı orta veya yüksek olduğunda engelle
Çoğunu engelle BLOCK_LOW_AND_ABOVE Güvenli olmayan içerik olasılığı düşük, orta veya yüksek olduğunda engelle
Yok HARM_BLOCK_THRESHOLD_UNSPECIFIED Eşik belirtilmemiş, varsayılan eşik kullanılarak engelle

Politika ayarlanmadan bırakılırsa varsayılan engelleme ayarı tüm kategoriler için Bazılarını engelle olur.

Bu ayarları, üretken hizmete yaptığınız her istek için belirleyebilirsiniz. Ayrıntılar için HarmBlockThreshold API referansına bakın.

Güvenlik geri bildirimi

generateContent, güvenlik geri bildirimi içeren bir GenerateContentResponse döndürür.

Hızlı geri bildirim özelliği promptFeedback'e dahildir. promptFeedback.blockReason ayarlanmışsa istemin içeriği engellenmiştir.

Yanıt adayı geri bildirimi finishReason ve safetyRatingsda yer alır. Yanıt içeriği engellendi ve finishReason değeri SAFETY ise daha ayrıntılı bilgi için safetyRatings özelliğini inceleyebilirsiniz. Engellenen içerik döndürülmez.

Güvenlik ayarlarını yap

Bu bölümde, hem Google AI Studio'da hem de kodunuzdaki güvenlik ayarlarının nasıl değiştirileceği ele alınmaktadır.

Google AI Studio

Güvenlik ayarlarını Google AI Studio'da düzenleyebilirsiniz ancak devre dışı bırakamazsınız.

Güvenlik ayarlarını çalıştırma penceresini açmak için Ayarları çalıştır panelindeki Güvenlik ayarlarını düzenle'yi tıklayın. Modalde, içerik filtreleme düzeyini güvenlik kategorisine göre ayarlamak için kaydırma çubuklarını kullanabilirsiniz:

Bir istek gönderdiğinizde (örneğin, modele bir soru sorarak), isteğin içeriği engellenmişse İçerik Yok mesajı görüntülenir. Daha fazla bilgi görmek için işaretçiyi İçerik Yok metninin üzerine getirin ve Güvenlik'i tıklayın.

Gemini API SDK'ları

Aşağıdaki kod snippet'i, GenerateContent görüşmenizde güvenlik ayarlarını nasıl belirleyeceğinizi gösterir. Bu durumda taciz (HARM_CATEGORY_HARASSMENT) ve nefret söylemi (HARM_CATEGORY_HATE_SPEECH) kategorileri BLOCK_LOW_AND_ABOVE olarak belirlenir. Bu sayede, taciz veya nefret söylemi olasılığı düşük veya yüksek olan tüm içerikler engellenir.

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

Go

model := client.GenerativeModel("gemini-1.5-flash")

model.SafetySettings = []*genai.SafetySetting{
  {
    Category:  genai.HarmCategoryHarassment,
    Threshold: genai.HarmBlockOnlyLowAndAbove,
  },
  {
    Category:  genai.HarmCategoryHateSpeech,
    Threshold: genai.HarmBlockOnlyLowAndAbove,
  },
}

Node.js

import { HarmBlockThreshold, HarmCategory } from "@google/generative-ai";

// ...

const safetySetting = [
  {
    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 });

Web

import { HarmBlockThreshold, HarmCategory } from "@google/generative-ai";

// ...

const safetySetting = [
  {
    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);

Sonraki adımlar

  • Tam API hakkında daha fazla bilgi edinmek için API referansına bakın.
  • LLM'ler ile geliştirme yaparken güvenlikle ilgili dikkat edilmesi gereken noktalara genel bir bakış için güvenlik kılavuzunu inceleyin.
  • Olasılık ve şiddetin değerlendirilmesi hakkında Jigsaw ekibinden daha fazla bilgi edinebilirsiniz.
  • Perspective API gibi güvenlik çözümlerine katkıda bulunan ürünler hakkında daha fazla bilgi edinin. * Toksiklik sınıflandırıcısı oluşturmak için bu güvenlik ayarlarını kullanabilirsiniz. Başlamak için sınıflandırma örneğine bakın.