Güvenlik ayarları

Gemini API, uygulamanızın daha kısıtlayıcı veya daha az kısıtlayıcı bir güvenlik yapılandırması gerektirip gerektirmediğini belirlemek için prototip oluşturma aşamasında ayarlayabileceğiniz güvenlik ayarları sağlar. Belirli içerik türlerini kısıtlamak veya bunlara izin vermek için bu ayarları beş 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 Kimliği ve/veya korunan özellikleri hedef alan olumsuz veya zararlı yorumlar
Nefret söylemi Kaba, saygısız veya küfürlü içerik
Müstehcen Cinsel eylemlere veya diğer müstehcen içeriklere referanslar içeriyor.
Tehlikeli Zararlı eylemleri teşvik eden, kolaylaştıran veya destekleyen içerikler
Sivil bütünlük Seçimlerle ilgili sorgular.

Kullanım alanınıza göre ayarlamalar yapmak için bu filtreleri kullanabilirsiniz. Örneğin, video oyunu diyaloğu oluşturuyorsanız oyunun doğası gereği Tehlikeli olarak derecelendirilen daha fazla içeriğe izin vermeyi kabul edebilirsiniz.

Ayarlanabilir güvenlik filtrelerine ek olarak Gemini API, çocuk güvenliğini tehlikeye atan içerikler gibi temel zararlara karşı yerleşik korumalara sahiptir. Bu tür zararlar her zaman engellenir ve ayarlanamaz.

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

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

Gemini API, içeriğin güvenli olmama olasılığına göre içeriği engeller. İçeriğin ne kadar zararlı olduğu dikkate alınmaz. Zararın ciddiyeti yüksek olsa bile bazı içeriklerin güvenli olmama olasılığı düşük olabilir. Bu nedenle, bu durumu göz önünde bulundurmak önemlidir. Örneğin, şu cümleleri karşılaştıralım:

  1. Robot bana yumruk attı.
  2. Robot beni kılıçla doğradı.

İlk cümle güvenli olmama olasılığı daha yüksek olsa da ikinci cümlenin şiddet açısından daha ciddi olduğunu düşünebilirsiniz. Bu nedenle, son kullanıcılara zarar vermeyi en aza indirirken temel kullanım alanlarınızı desteklemek için gereken uygun engelleme düzeyini dikkatlice test etmeniz ve değerlendirmeniz önemlidir.

İstek başına güvenlik filtreleme

API'ye yaptığınız her istek için güvenlik ayarlarını düzenleyebilirsiniz. İstek gönderdiğinizde içerik analiz edilir ve içeriğe güvenlik derecesi atanır. Güvenlik derecelendirmesi, zarar sınıflandırmasının kategorisini ve olasılığını içerir. Örneğin, içerik taciz kategorisinin yüksek olasılıkla güvenli olmaması nedeniyle engellendiyse döndürülen güvenlik derecelendirmesinde kategori HARASSMENT'ya eşit olur ve zarar olasılığı HIGH olarak ayarlanır.

Varsayılan olarak güvenlik ayarları, herhangi bir filtrede güvenli olmama 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 olarak gerekliyse ayarlamanız gerekir.

Aşağıdaki tabloda, her kategori için ayarlayabileceğiniz engelleme ayarları açıklanmaktadır. Örneğin, Nefret söylemi kategorisi için engelleme ayarını Birkaçını engelle olarak belirlerseniz nefret söylemi içeriği olma olasılığı yüksek olan her şey engellenir. Ancak olasılığı daha düşük olan her şeye izin verilir.

Eşik (Google Yapay Zeka Studio) Eşik (API) Açıklama
Hiçbirini engelleme BLOCK_NONE Güvenli olmayan içerik olasılığına bakılmaksızın her zaman göster
Birkaçını engelle BLOCK_ONLY_HIGH İçeriğin güvenli olmama olasılığı yüksekse engelle
Bazılarını engelleme BLOCK_MEDIUM_AND_ABOVE İçeriğin güvenli olmama olasılığı orta veya yüksekse içerik engellenir.
Çoğunu engelle BLOCK_LOW_AND_ABOVE İçeriğin güvenli olmama olasılığı düşük, orta veya yüksekse engelle
Yok HARM_BLOCK_THRESHOLD_UNSPECIFIED Eşik belirtilmedi, varsayılan eşik kullanılarak engellendi

Eşik ayarlanmamışsa varsayılan engelleme eşiği, Hiçbirini engelleme (gemini-1.5-pro-002 ve gemini-1.5-flash-002 için ve daha yeni tüm kararlı GA modellerinde) veya Bazılarını engelleme (diğer tüm modellerde) olarak belirlenir. Bu eşik, Sivil bütünlük kategorisi hariç tüm kategoriler için geçerlidir.

Civic integrity (Sivil bütünlük) kategorisi için varsayılan engelleme eşiği, hem Google AI Studio hem de Gemini API'de Hiçbirini engelleme'dir (gemini-2.0-flash-001, gemini-2.0-flash, gemini-2.0-pro-exp-02-05 ve gemini-2.0-flash-lite olarak da bilinir). Google AI Studio'daki diğer tüm modeller için ise Çoğunu engelleme'dir.

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

Güvenlikle ilgili geri bildirim

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

İstem geri bildirimi, promptFeedback'e dahil edilir. promptFeedback.blockReason ayarlanmışsa istemin içeriği engellenmiştir.

Yanıt adayı geri bildirimi, Candidate.finishReason ve Candidate.safetyRatings'a dahil edilir. Yanıt içeriği engellendiyse ve finishReason SAFETY ise daha fazla ayrıntı için safetyRatings öğesini inceleyebilirsiniz. Engellenen içerik geri yüklenmez.

Güvenlik ayarlarını yapma

Bu bölümde, hem Google AI Studio'da hem de kodunuzda güvenlik ayarlarının nasıl düzenleneceği açıklanmaktadır.

Google AI Studio

Google AI Studio'da güvenlik ayarlarını yapabilirsiniz ancak bu ayarları kapatamazsınız.

Çalıştırma güvenlik ayarları modalını açmak için Çalıştırma ayarları panelinde Güvenlik ayarlarını düzenle'yi tıklayın. Modalda, kaydırma çubuklarını kullanarak güvenlik kategorisine göre içerik filtreleme düzeyini ayarlayabilirsiniz:

İstek gönderdiğinizde (ör. modele soru sorarak) isteğin içeriği engellenirse No Content (İçerik Yok) mesajı gösterilir. Daha fazla ayrıntı görmek için fare işaretçisini İçerik Yok metninin üzerine getirin ve Güvenlik'i tıklayın.

Gemini API SDK'ları

Aşağıdaki kod snippet'inde, GenerateContent çağrınızda güvenlik ayarlarının nasıl yapılacağı gösterilmektedir. Bu işlem, taciz (HARM_CATEGORY_HARASSMENT) ve nefret söylemi (HARM_CATEGORY_HATE_SPEECH) kategorileri için eşikleri ayarlar. Örneğin, bu kategorileri BLOCK_LOW_AND_ABOVE olarak ayarladığınızda taciz veya nefret söylemi olma olasılığı düşük ya da yüksek olan tüm içerikler engellenir. Eşik ayarlarını anlamak için İstek başına güvenlik filtreleme başlıklı makaleyi inceleyin.

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

Sonraki adımlar

  • API'nin tamamı hakkında daha fazla bilgi edinmek için API referansına bakın.
  • LLM'lerle geliştirme yaparken güvenlikle ilgili dikkat edilmesi gereken noktalar hakkında genel bir bakış için güvenlik kılavuzunu inceleyin.
  • Jigsaw ekibinin olasılık ve önem düzeyini değerlendirme hakkındaki makalesinden daha fazla bilgi edinin.
  • Perspective API gibi güvenlik çözümlerine katkıda bulunan ürünler hakkında daha fazla bilgi edinin. * Bu güvenlik ayarlarını kullanarak toksisite sınıflandırıcı oluşturabilirsiniz. Başlamak için sınıflandırma örneğine bakın.