Gemini API menyediakan setelan keamanan yang dapat Anda sesuaikan selama tahap pembuatan prototipe untuk menentukan apakah aplikasi Anda memerlukan konfigurasi keamanan yang lebih atau tidak terlalu 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 |
---|---|
Pelecehan | Komentar negatif atau berbahaya yang menargetkan identitas dan/atau atribut yang dilindungi. |
Ujaran kebencian | Konten yang kasar, tidak sopan, atau tidak senonoh. |
Seksual vulgar | Berisi referensi ke tindakan seksual atau konten cabul lainnya. |
Berbahaya | Mempromosikan, memfasilitasi, atau mendorong tindakan berbahaya. |
Integritas sipil | Kueri terkait pemilu. |
Anda dapat menggunakan filter ini untuk menyesuaikan hal yang sesuai dengan kasus penggunaan Anda. Misalnya, jika Anda membuat dialog video game, Anda mungkin menganggapnya wajar untuk mengizinkan lebih banyak konten yang diberi rating Berbahaya karena karakteristik game itu sendiri.
Selain filter keamanan yang dapat disesuaikan, Gemini API memiliki perlindungan bawaan terhadap bahaya inti, seperti konten yang membahayakan keselamatan anak. Jenis kerugian ini selalu diblokir dan tidak dapat disesuaikan.
Tingkat pemfilteran keamanan konten
Gemini API mengategorikan tingkat kemungkinan konten yang tidak aman sebagai
HIGH
, MEDIUM
, LOW
, atau NEGLIGIBLE
.
Gemini API memblokir konten berdasarkan kemungkinan konten tidak aman, bukan tingkat keparahannya. Hal ini penting untuk dipertimbangkan karena beberapa konten dapat memiliki kemungkinan rendah untuk dianggap tidak aman, meskipun tingkat keparahan bahayanya masih tinggi. Misalnya, membandingkan kalimat:
- Robot itu memukul saya.
- Robot itu menebas saya.
Kalimat pertama dapat menyebabkan kemungkinan konten tidak aman yang lebih tinggi, tetapi Anda dapat menganggap kalimat kedua sebagai tingkat keparahan yang lebih tinggi dalam hal 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 akan dianalisis dan diberi rating keamanan. Rating
keamanan mencakup kategori dan kemungkinan 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) dengan probabilitas sedang atau lebih tinggi yang tidak aman di semua filter. Keamanan dasar pengukuran ini dirancang agar berfungsi di sebagian besar kasus penggunaan, jadi Anda sebaiknya hanya menyesuaikan setelan keamanan jika diwajibkan secara konsisten untuk aplikasi Anda.
Tabel berikut menjelaskan setelan pemblokiran yang dapat Anda sesuaikan untuk setiap kategori. Misalnya, jika Anda menetapkan setelan pemblokiran ke Block few untuk kategori Ujaran kebencian, semua konten yang berpotensi tinggi sebagai konten ujaran kebencian akan diblokir. Namun, apa pun dengan probabilitas yang lebih rendah diizinkan.
Batas (Google AI Studio) | Batas (API) | Deskripsi |
---|---|---|
Block none | BLOCK_NONE |
Selalu tampilkan terlepas dari probabilitas konten tidak aman |
Blokir beberapa | BLOCK_ONLY_HIGH |
Blokir jika ada probabilitas tinggi konten tidak aman |
Memblokir beberapa | BLOCK_MEDIUM_AND_ABOVE |
Blokir saat probabilitas sedang atau tinggi berisi konten yang tidak aman |
Blokir sebagian besar | BLOCK_LOW_AND_ABOVE |
Blokir jika ada probabilitas rendah, sedang, atau tinggi konten tidak aman |
T/A | HARM_BLOCK_THRESHOLD_UNSPECIFIED |
Nilai minimum tidak ditentukan, blokir menggunakan nilai minimum default |
Jika nilai minimum ini tidak ditetapkan, nilai minimum pemblokiran default adalah Blokir sebagian besar (hanya untuk gemini-1.5-pro-002
dan gemini-1.5-flash-002
) atau Blokir beberapa (di semua model lainnya) untuk semua kategori, kecuali kategori Integritas sipil.
Batas pemblokiran default untuk kategori Integritas sipil adalah Blokir sebagian besar saat mengirim perintah menggunakan Google AI Studio, dan Jangan memblokir saat menggunakan Gemini API secara langsung.
Anda dapat menetapkan setelan ini untuk setiap permintaan yang Anda buat ke layanan generatif.
Lihat referensi HarmBlockThreshold
API
untuk mengetahui detailnya.
Masukan terkait keselamatan
generateContent
menampilkan
GenerateContentResponse
yang
mencakup masukan keamanan.
Masukan perintah disertakan dalam
promptFeedback
. Jika
promptFeedback.blockReason
ditetapkan, konten perintah akan diblokir.
Masukan kandidat respons disertakan dalam
Candidate.finishReason
dan
Candidate.safetyRatings
. Jika konten respons diblokir dan finishReason
adalah SAFETY
, Anda dapat memeriksa safetyRatings
untuk mengetahui detail selengkapnya. Konten yang diblokir tidak ditampilkan.
Menyesuaikan 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 tidak dapat menonaktifkannya.
Klik Edit safety settings di panel Run settings untuk membuka modal Run safety settings. Dalam 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, tahan kursor di atas teks Tidak Ada Konten, lalu klik Keamanan.SDK Gemini API
Cuplikan kode berikut menunjukkan cara menetapkan setelan keamanan di panggilan
GenerateContent
Anda. Tindakan ini akan menetapkan nilai minimum untuk kategori pelecehan
(HARM_CATEGORY_HARASSMENT
) dan ujaran kebencian (HARM_CATEGORY_HATE_SPEECH
). Misalnya, menetapkan kategori ini ke BLOCK_LOW_AND_ABOVE
akan memblokir konten apa pun yang memiliki kemungkinan rendah atau lebih tinggi untuk menjadi pelecehan atau
ujaran kebencian. Untuk memahami setelan nilai minimum, lihat
Pemfilteran keamanan per permintaan.
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.HarmBlockLowAndAbove,
},
{
Category: genai.HarmCategoryHateSpeech,
Threshold: genai.HarmBlockLowAndAbove,
},
}
Node.js
import { HarmBlockThreshold, HarmCategory } from "@google/generative-ai";
// ...
const safetySettings = [
{
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: safetySettings });
Web
import { HarmBlockThreshold, HarmCategory } from "@google/generative-ai";
// ...
const safetySettings = [
{
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);
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-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d @request.json 2> /dev/null
Langkah berikutnya
- Lihat referensi API untuk mempelajari API lengkap lebih lanjut.
- Tinjau panduan keselamatan untuk melihat secara umum pertimbangan keamanan saat mengembangkan dengan LLM.
- Pelajari lebih lanjut cara menilai probabilitas versus tingkat keparahan dari tim Jigsaw
- Pelajari lebih lanjut produk yang berkontribusi pada solusi keselamatan seperti Perspective API. * Anda dapat menggunakan setelan keamanan ini untuk membuat pengklasifikasi toksisitas. Lihat contoh klasifikasi untuk memulai.