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:
- Robot bana yumruk attı.
- 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
safetyRatings
da 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.