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:
- Robot itu memukul saya.
- 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.