Cài đặt an toàn

API Gemini cung cấp các chế độ cài đặt an toàn mà bạn có thể điều chỉnh trong giai đoạn tạo mẫu để xác định xem ứng dụng có yêu cầu cấu hình an toàn hạn chế nhiều hơn hay ít hơn. Bạn có thể điều chỉnh các chế độ cài đặt này trên 4 danh mục bộ lọc để hạn chế hoặc cho phép một số loại nội dung nhất định.

Hướng dẫn này trình bày cách API Gemini xử lý các chế độ cài đặt an toàn và lọc, cũng như cách bạn có thể thay đổi các chế độ cài đặt an toàn cho ứng dụng của mình.

Bộ lọc an toàn

Các bộ lọc an toàn có thể điều chỉnh của API Gemini bao gồm các danh mục sau:

Danh mục Nội dung mô tả
Hành vi quấy rối Bình luận tiêu cực hoặc gây hại nhắm đến danh tính và/hoặc các thuộc tính được bảo vệ.
Lời nói hận thù Nội dung thô tục, khiếm nhã hoặc thô tục.
Nội dung khiêu dâm Chứa thông tin liên quan đến các hoạt động tình dục hoặc nội dung đồi truỵ khác.
Nguy hiểm Quảng bá, tạo điều kiện hoặc khuyến khích việc thực hiện hành động gây hại.

Bạn có thể sử dụng các bộ lọc này để điều chỉnh sao cho phù hợp với trường hợp sử dụng của mình. Ví dụ: nếu đang xây dựng hội thoại trong trò chơi điện tử, bạn có thể cho phép xuất hiện thêm nội dung được phân loại là Nguy hiểm do tính chất của trò chơi.

Ngoài các bộ lọc an toàn có thể điều chỉnh, API Gemini còn tích hợp sẵn các biện pháp bảo vệ chống lại các mối nguy hại chính, chẳng hạn như nội dung gây nguy hiểm cho sự an toàn của trẻ em. Những loại tác hại này luôn bị chặn và không thể điều chỉnh.

Mức lọc về độ an toàn của nội dung

API Gemini phân loại mức độ xác suất của nội dung không an toàn là HIGH, MEDIUM, LOW hoặc NEGLIGIBLE.

API Gemini chặn nội dung dựa trên xác suất nội dung không an toàn chứ không phải dựa trên mức độ nghiêm trọng. Đây là điều quan trọng cần cân nhắc vì một số nội dung có thể có xác suất không an toàn ở mức thấp mặc dù mức độ nghiêm trọng của mối nguy hại vẫn có thể cao. Ví dụ: so sánh các câu:

  1. Rô-bốt đó đã đấm tôi.
  2. Rô-bốt chém tôi.

Câu đầu tiên có thể dẫn đến xác suất không an toàn cao hơn, nhưng bạn có thể coi câu thứ hai có mức độ nghiêm trọng cao hơn về mặt bạo lực. Do đó, bạn phải kiểm thử cẩn thận và cân nhắc mức độ chặn phù hợp cần thiết để hỗ trợ các trường hợp sử dụng chính, đồng thời giảm thiểu thiệt hại cho người dùng cuối.

Lọc an toàn theo yêu cầu

Bạn có thể điều chỉnh chế độ cài đặt an toàn cho từng yêu cầu mà bạn gửi đến API. Khi bạn đưa ra yêu cầu, nội dung sẽ được phân tích và chỉ định mức phân loại an toàn. Mức xếp hạng an toàn bao gồm danh mục và xác suất phân loại thiệt hại. Ví dụ: nếu nội dung bị chặn do danh mục quấy rối có xác suất cao, thì mức phân loại an toàn được trả về sẽ có danh mục bằng HARASSMENT và xác suất gây hại được đặt thành HIGH.

Theo mặc định, các chế độ cài đặt an toàn sẽ chặn nội dung (bao gồm cả lời nhắc) có xác suất không an toàn trở lên trên bất kỳ bộ lọc nào. Độ an toàn cơ sở này được thiết kế để phù hợp với hầu hết các trường hợp sử dụng. Vì vậy, bạn chỉ nên điều chỉnh các chế độ cài đặt an toàn nếu đó là yêu cầu nhất quán đối với ứng dụng của bạn.

Bảng sau đây mô tả các chế độ cài đặt chặn mà bạn có thể điều chỉnh cho từng danh mục. Ví dụ: nếu bạn đặt chế độ cài đặt chặn thành Chặn ít cho danh mục Lời nói hận thù, thì mọi nội dung có nhiều khả năng là nội dung lời nói hận thù đều sẽ bị chặn. Tuy nhiên, chúng tôi cho phép mọi trường hợp có xác suất thấp hơn.

Ngưỡng (Google AI Studio) Ngưỡng (API) Nội dung mô tả
Không chặn BLOCK_NONE Luôn hiển thị bất kể xác suất nội dung không an toàn có thể xuất hiện
Chặn một vài BLOCK_ONLY_HIGH Chặn khi nội dung có nhiều khả năng không an toàn
Chặn một số BLOCK_MEDIUM_AND_ABOVE Chặn khi nội dung không an toàn có xác suất trung bình hoặc cao
Chặn hầu hết BLOCK_LOW_AND_ABOVE Chặn khi nội dung không an toàn có khả năng xuất hiện ở mức thấp, trung bình hoặc cao
Không áp dụng HARM_BLOCK_THRESHOLD_UNSPECIFIED Chưa chỉ định ngưỡng, hãy chặn bằng cách sử dụng ngưỡng mặc định

Nếu bạn không đặt chính sách này, thì chế độ cài đặt chặn mặc định là Chặn một số danh mục đối với tất cả các danh mục.

Bạn có thể thiết lập các chế độ cài đặt này cho mỗi yêu cầu mà bạn đưa ra đối với dịch vụ tạo sinh. Hãy xem Tài liệu tham khảo API HarmBlockThreshold để biết thông tin chi tiết.

Phản hồi về an toàn

generateContent trả về một GenerateContentResponse bao gồm cả ý kiến phản hồi về an toàn.

Ý kiến phản hồi về lời nhắc cũng có trong promptFeedback. Nếu bạn đặt promptFeedback.blockReason, thì nội dung của lời nhắc đã bị chặn.

Ý kiến phản hồi của đề xuất trả lời được đưa vào finishReasonsafetyRatings. Nếu nội dung phản hồi bị chặn và finishReasonSAFETY, thì bạn có thể kiểm tra safetyRatings để biết thêm chi tiết. Nội dung đã bị chặn sẽ không được trả về.

Điều chỉnh chế độ cài đặt an toàn

Phần này trình bày cách điều chỉnh các chế độ cài đặt an toàn trong cả Google AI Studio và trong mã của bạn.

Google AI Studio

Bạn có thể điều chỉnh các chế độ cài đặt an toàn trong Google AI Studio, nhưng không thể tắt các chế độ này.

Nhấp vào Chỉnh sửa chế độ cài đặt an toàn trong bảng điều khiển Chạy chế độ cài đặt để mở cửa sổ phụ Chạy chế độ cài đặt an toàn. Trong cửa sổ phụ, bạn có thể dùng thanh trượt để điều chỉnh mức lọc nội dung cho mỗi danh mục an toàn:

Khi bạn gửi một yêu cầu (ví dụ: bằng cách đặt câu hỏi cho mô hình), thông báo Không có nội dung sẽ xuất hiện nếu nội dung của yêu cầu đó bị chặn. Để xem thêm chi tiết, hãy giữ con trỏ trên văn bản No Content (Không có nội dung) rồi nhấp vào Safety (An toàn).

SDK API Gemini

Đoạn mã sau đây cho biết cách thiết lập các chế độ cài đặt an toàn trong lệnh gọi GenerateContent. Thao tác này sẽ đặt các danh mục hành vi quấy rối (HARM_CATEGORY_HARASSMENT) và lời nói hận thù (HARM_CATEGORY_HATE_SPEECH) thành BLOCK_LOW_AND_ABOVE để chặn mọi nội dung có xác suất là quấy rối hoặc lời nói hận thù ở mức thấp hoặc cao.

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

Phi tiêu (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);

Các bước tiếp theo

  • Hãy xem Tài liệu tham khảo API để tìm hiểu thêm về API đầy đủ.
  • Xem hướng dẫn về an toàn để có cái nhìn chung về các điểm cần cân nhắc về tính an toàn khi phát triển bằng các LLM.
  • Tìm hiểu thêm về cách đánh giá xác suất so với mức độ nghiêm trọng từ nhóm Jigsaw
  • Tìm hiểu thêm về các sản phẩm góp phần cho các giải pháp an toàn như API Perspective. * Bạn có thể sử dụng các chế độ cài đặt an toàn này để tạo một thuật toán phân loại tính độc hại. Hãy xem ví dụ về cách phân loại để bắt đầu.