Setelan keamanan

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

Panduan ini membahas cara Gemini API menangani setelan keamanan, pemfilteran, dan bagaimana Anda dapat mengubah pengaturan 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 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.

Anda dapat menggunakan filter ini untuk menyesuaikan apa yang sesuai dengan kasus penggunaan Anda. Sebagai jika Anda membuat dialog {i>video game<i}, Anda mungkin menganggapnya dapat diterima mengizinkan lebih banyak konten yang dikategorikan sebagai Berbahaya karena sifat gamenya.

Selain filter keamanan yang dapat disesuaikan, Gemini API memiliki perlindungan dari 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 tidak aman sebagai HIGH, MEDIUM, LOW, atau NEGLIGIBLE.

Gemini API memblokir konten berdasarkan kemungkinan konten tidak aman dan bukan tingkat keparahan. Ini penting untuk dipertimbangkan karena beberapa konten dapat memiliki probabilitas rendah untuk menjadi tidak aman, meskipun tingkat keparahan bahaya dapat masih tetap tinggi. Misalnya, membandingkan kalimat:

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

Kalimat pertama mungkin menghasilkan probabilitas yang lebih tinggi untuk menjadi tidak aman, tetapi Anda mungkin menganggap kalimat kedua sebagai tingkat keseriusan yang lebih tinggi terkait kekerasan. Oleh karena itu, penting bagi Anda untuk menguji dan mempertimbangkan dengan cermat apa tingkat pemblokiran yang sesuai diperlukan untuk mendukung kasus penggunaan utama, meminimalkan bahaya bagi pengguna akhir.

Pemfilteran keamanan per permintaan

Anda dapat menyesuaikan setelan keamanan untuk setiap permintaan yang Anda buat ke API. Kapan Anda mengajukan permintaan, konten tersebut dianalisis dan diberi rating keamanan. Tujuan peringkat keamanan mencakup kategori dan kemungkinan bahaya Klasifikasi kalimat tunggal, Misalnya, jika konten diblokir karena pelecehan kategori yang memiliki probabilitas tinggi, peringkat keamanan yang ditampilkan memiliki kategori yang sama dengan HARASSMENT dan probabilitas bahaya ditetapkan ke HIGH.

Secara default, setelan keamanan memblokir konten (termasuk perintah) dengan media atau lebih tinggi kemungkinannya untuk tidak aman di semua filter. Keamanan dasar ini adalah dirancang agar berfungsi untuk sebagian besar kasus penggunaan, jadi Anda sebaiknya hanya menyesuaikan jika terus-menerus diperlukan untuk aplikasi Anda.

Tabel berikut menjelaskan setelan pemblokiran yang dapat Anda sesuaikan untuk masing-masing kategori. Misalnya, jika Anda menyetel setelan pemblokiran ke Block few untuk Ujaran kebencian, semua yang memiliki kemungkinan besar untuk menjadi kebencian konten ucapan diblokir. Tetapi apa pun dengan probabilitas lebih rendah diperbolehkan.

Batas (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 berpotensi tinggi berisi konten yang tidak aman
Blokir beberapa BLOCK_MEDIUM_AND_ABOVE Blokir saat probabilitas sedang atau tinggi berisi konten yang tidak aman
Blokir sebagian besar BLOCK_LOW_AND_ABOVE Blokir saat probabilitas rendah, sedang, atau tinggi dari konten yang tidak aman
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 HarmBlockThreshold API referensi untuk detailnya.

Masukan terkait keselamatan

generateContent mengembalikan GenerateContentResponse yang mencakup masukan keselamatan.

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

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

Menyesuaikan setelan keamanan

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

Google AI Studio

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

Klik Edit setelan keamanan di panel Jalankan setelan untuk membuka Jalankan setelan keamanan. Dalam modal, Anda bisa menggunakan {i>slider<i} untuk menyesuaikan tingkat pemfilteran konten per kategori keamanan:

Saat Anda mengirim permintaan (misalnya, dengan mengajukan pertanyaan kepada model), Pesan No Content akan muncul jika konten permintaan diblokir. Untuk melihat selengkapnya detail, arahkan kursor ke Teks No Content dan klik Keamanan.

SDK Gemini API

Cuplikan kode berikut menunjukkan cara mengatur setelan keamanan di Panggilan GenerateContent. Ini menetapkan pelecehan (HARM_CATEGORY_HARASSMENT) dan ujaran kebencian (HARM_CATEGORY_HATE_SPEECH) BLOCK_LOW_AND_ABOVE yang memblokir konten apa pun yang memiliki aset rendah atau lebih tinggi kemungkinan terjadinya 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.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 });

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

Langkah berikutnya

  • Lihat referensi API untuk mempelajari API lengkap lebih lanjut.
  • Tinjau panduan keselamatan untuk gambaran umum tentang keselamatan yang perlu dipertimbangkan saat mengembangkan LLM.
  • Pelajari lebih lanjut cara menilai probabilitas versus tingkat keparahan dari Jigsaw tim
  • Pelajari lebih lanjut produk yang berkontribusi pada solusi keamanan seperti Perspektif Google Cloud Platform. * Anda dapat menggunakan setelan keamanan ini untuk membuat toksisitas pengklasifikasi Anda. Lihat klasifikasi contoh untuk memulai.