Setelan keamanan

Gemini API menyediakan setelan keamanan yang dapat Anda sesuaikan selama tahap pembuatan prototipe untuk menentukan apakah aplikasi Anda memerlukan konfigurasi keamanan yang lebih atau kurang ketat. Anda dapat menyesuaikan setelan ini di empat kategori filter untuk membatasi atau mengizinkan jenis konten tertentu.

Panduan ini membahas cara Gemini API menangani setelan keamanan dan pemfilteran, serta cara mengubah setelan keamanan untuk aplikasi Anda.

Filter keamanan

Filter keamanan Gemini API yang dapat disesuaikan mencakup kategori berikut:

Kategori Deskripsi
Harassment Komentar negatif atau berbahaya yang menarget identitas dan/atau atribut yang dilindungi.
Ujaran kebencian Konten yang kasar, tidak sopan, atau tidak senonoh.
Sexually explicit Berisi referensi ke tindakan seksual atau konten cabul lainnya.
Dangerous Mempromosikan, memfasilitasi, atau mendorong tindakan berbahaya.

Anda dapat menggunakan filter ini untuk menyesuaikan apa yang sesuai untuk kasus penggunaan Anda. Misalnya, jika Anda membuat dialog video game, Anda dapat menganggap lebih banyak konten yang diberi rating sebagai Berbahaya karena sifat game-nya masih dapat diterima.

Selain filter keamanan yang dapat disesuaikan, Gemini API memiliki perlindungan bawaan terhadap bahaya inti, seperti konten yang membahayakan keselamatan anak. Jenis bahaya ini selalu diblokir dan tidak dapat disesuaikan.

Tingkat pemfilteran keamanan konten

Gemini API mengategorikan tingkat probabilitas konten yang tidak aman sebagai HIGH, MEDIUM, LOW, atau NEGLIGIBLE.

Gemini API memblokir konten berdasarkan kemungkinan konten tidak aman dan bukan tingkat keparahannya. Hal ini penting untuk dipertimbangkan karena beberapa konten dapat memiliki probabilitas rendah sebagai tidak aman meskipun tingkat keparahan bahayanya masih tinggi. Misalnya, membandingkan kalimat:

  1. Robot itu memukul saya.
  2. Robot itu menebas saya.

Kalimat pertama mungkin memiliki kemungkinan lebih tinggi untuk dianggap tidak aman, tetapi Anda dapat menganggap kalimat kedua memiliki tingkat keseriusan yang lebih tinggi dari segi kekerasan. Oleh karena itu, penting bagi Anda untuk menguji dengan cermat dan mempertimbangkan tingkat pemblokiran yang sesuai yang diperlukan untuk mendukung kasus penggunaan utama Anda sekaligus meminimalkan bahaya bagi pengguna akhir.

Pemfilteran keamanan per permintaan

Anda dapat menyesuaikan setelan keamanan untuk setiap permintaan yang Anda buat ke API. Saat Anda membuat permintaan, konten tersebut akan dianalisis dan diberi rating keamanan. Rating keamanan mencakup kategori dan probabilitas klasifikasi bahaya. Misalnya, jika konten diblokir karena kategori pelecehan memiliki probabilitas tinggi, rating keamanan yang ditampilkan akan memiliki kategori yang sama dengan HARASSMENT dan probabilitas bahaya yang ditetapkan ke HIGH.

Secara default, setelan keamanan memblokir konten (termasuk perintah) yang memiliki kemungkinan sedang atau lebih tinggi sebagai tidak aman di filter apa pun. Keamanan dasar pengukuran ini dirancang agar berfungsi pada sebagian besar kasus penggunaan, jadi Anda sebaiknya hanya menyesuaikan setelan keamanan jika secara konsisten diperlukan untuk aplikasi Anda.

Tabel berikut menjelaskan setelan pemblokiran yang dapat Anda sesuaikan untuk setiap kategori. Misalnya, jika Anda menetapkan setelan pemblokiran ke Blokir beberapa untuk kategori Ujaran kebencian, semua konten yang kemungkinan besar merupakan konten dengan ujaran kebencian akan diblokir. Tetapi apa pun dengan probabilitas lebih rendah diperbolehkan.

Nilai Minimum (Google AI Studio) Ambang batas (API) Deskripsi
Block none BLOCK_NONE Selalu tampilkan terlepas dari kemungkinan adanya konten yang tidak aman
Blokir beberapa BLOCK_ONLY_HIGH Blokir saat kemungkinan tinggi berisi konten yang tidak aman
Blokir beberapa BLOCK_MEDIUM_AND_ABOVE Blokir saat kemungkinan besar atau sedang ada konten yang tidak aman
Blokir sebagian besar BLOCK_LOW_AND_ABOVE Blokir saat kemungkinan konten tidak aman rendah, sedang, atau tinggi
T/A HARM_BLOCK_THRESHOLD_UNSPECIFIED Nilai minimum tidak ditentukan, blokir menggunakan nilai minimum default

Jika tidak disetel, setelan pemblokiran default adalah Blokir beberapa untuk semua kategori.

Anda dapat menetapkan setelan ini untuk setiap permintaan yang Anda buat ke layanan generatif. Lihat referensi API HarmBlockThreshold untuk mengetahui detailnya.

Masukan keamanan

generateContent menampilkan GenerateContentResponse yang menyertakan masukan keamanan.

Masukan perintah disertakan dalam promptFeedback. Jika promptFeedback.blockReason disetel, konten perintah akan diblokir.

Masukan kandidat respons disertakan dalam finishReason dan safetyRatings. Jika konten respons diblokir dan finishReason adalah SAFETY, Anda dapat memeriksa safetyRatings untuk mengetahui detail selengkapnya. Konten yang diblokir tidak ditampilkan.

Sesuaikan setelan keamanan

Bagian ini membahas cara menyesuaikan setelan keamanan di Google AI Studio dan di kode Anda.

Google AI Studio

Anda dapat menyesuaikan setelan keamanan di Google AI Studio, tetapi Anda tidak dapat menonaktifkannya.

Klik Edit safety settings di panel Run settings untuk membuka modal Run safety settings. Di modal, Anda dapat menggunakan penggeser untuk menyesuaikan tingkat pemfilteran konten per kategori keamanan:

Saat Anda mengirim permintaan (misalnya, dengan mengajukan pertanyaan kepada model), pesan Tidak Ada Konten akan muncul jika konten permintaan diblokir. Untuk melihat detail selengkapnya, arahkan kursor ke teks No Content, lalu klik Safety.

Gemini API SDK

Cuplikan kode berikut menunjukkan cara menetapkan setelan keamanan dalam panggilan GenerateContent. Hal ini menetapkan kategori pelecehan (HARM_CATEGORY_HARASSMENT) dan ujaran kebencian (HARM_CATEGORY_HATE_SPEECH) ke BLOCK_LOW_AND_ABOVE yang memblokir konten apa pun yang memiliki kemungkinan rendah atau lebih tinggi sebagai pelecehan atau ujaran kebencian.

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

Langkah berikutnya

  • Lihat referensi API untuk mempelajari lebih lanjut API lengkap.
  • Tinjau panduan keamanan untuk mendapatkan gambaran umum tentang pertimbangan keamanan saat melakukan pengembangan dengan LLM.
  • Pelajari lebih lanjut cara menilai probabilitas versus tingkat keparahan dari tim Jigsaw
  • Pelajari lebih lanjut produk yang berkontribusi pada solusi keamanan seperti Perspective API. * Anda dapat menggunakan setelan keamanan ini untuk membuat pengklasifikasi toksisitas. Lihat contoh klasifikasi untuk memulai.