Cài đặt an toàn

Gemini API 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 nguyên mẫu để xác định xem ứng dụng của bạn có cần nhiều hơn hay ít hơn cấu hình an toàn hạn chế. Bạn có thể điều chỉnh các chế độ cài đặt này thành 4 lọc danh mụ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 Gemini API xử lý các chế độ cài đặt và lọc an toàn cũng như cách bạn có thể thay đổi 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 Gemini API bao gồm các danh mục sau:

Danh mục Mô tả
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 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 đề cập đến các hoạt động tình dục hoặc nội dung tục tĩu khác.
Nguy hiểm Cổ xuý, 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 nội dung nào phù hợp với trường hợp sử dụng của mình. Cho Ví dụ: nếu bạn đang xây dựng hội thoại trong trò chơi điện tử, bạn có thể cho rằng việc này chấp nhận được cho phép thêm nội dung được xếp hạng 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, Gemini API còn tích hợp sẵn các biện pháp bảo vệ trước những mối nguy hại cốt lõi, 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 mối nguy hại này luôn bị chặn và không thể điều chỉnh được.

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

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

Gemini API 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 mức độ nghiêm trọng. Đây là yếu tố 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 thấp mặc dù mức độ nghiêm trọng của tác hại có thể vẫn 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 chém một chém.

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

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

Bạn có thể điều chỉnh các chế độ cài đặt an toàn cho từng yêu cầu mà bạn gửi đến API. Thời gian bạn đưa ra yêu cầu, thì nội dung đó sẽ được phân tích và chỉ định mức xếp hạng an toàn. Chiến lược phát hành đĩa đơn mức đánh giá an toàn bao gồm danh mục và xác suất thiệt hại của bạn. Ví dụ: nếu nội dung bị chặn do hành vi quấy rối có xác suất cao thì điểm xếp hạng 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, chế độ cài đặt an toàn sẽ chặn nội dung (bao gồm cả lời nhắc) có mức độ trung bình hoặc khả năng không an toàn cao hơn trên mọi bộ lọc. Mức an toàn cơ sở này là được thiết kế để hoạt động trong hầu hết các trường hợp sử dụng, do đó bạn chỉ nên điều chỉnh độ an toàn của mình nếu việc đó luôn được yêu cầu cho ứ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 mỗi danh mục. Ví dụ: nếu bạn đặt cài đặt chặn thành Chặn một số ít cho Danh mục lời nói hận thù, mọi nội dung có nhiều khả năng trở thành lời nói căm thù nội dung lời nói đã bị chặn. Tuy nhiên, chúng tôi cho phép bất kỳ quảng cáo nào có xác suất thấp hơn.

Ngưỡng (Google AI Studio) Ngưỡng (API) Mô tả
Không chặn BLOCK_NONE Luôn hiển thị bất kể xác suất xuất hiện nội dung không an toàn
Chặn một vài BLOCK_ONLY_HIGH Chặn khi có nhiều khả năng nội dung 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ó khả năng 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ó xác suất thấp, trung bình hoặc cao
Không áp dụng HARM_BLOCK_THRESHOLD_UNSPECIFIED Ngưỡng chưa được chỉ định, 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, chế độ cài đặt chặn mặc định sẽ là Chặn một số người dùng đối với tất cả danh mục.

Bạn có thể đặt các chế độ cài đặt này cho mỗi yêu cầu mà bạn gửi đến dịch vụ tạo sinh. Xem API HarmBlockThreshold để biết thông tin chi tiết.

Ý kiến phản hồi về sự an toàn

generateContent trả về một GenerateContentResponse chọn bao gồm cả ý kiến phản hồi về sự an toà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 lời nhắc đã bị chặn.

Phản hồi của ứng viên trả lời được bao gồm trong Candidate.finishReasonCandidate.safetyRatings. Nếu câu trả lời nội dung đã bị chặn và finishReasonSAFETY. 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 các 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ế độ đó tắt.

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ở bảng Chạy cài đặt an toàn. Trong cửa sổ phụ, bạn có thể sử dụng các thanh trượt để điều chỉnh mức lọc nội dung theo danh mục an toàn:

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

SDK Gemini API

Đoạn mã sau đây cho biết cách thiết lập chế độ cài đặt an toàn trong Cuộc gọi GenerateContent. Thao tác này sẽ thiết lập 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 bất kỳ nội dung nào có điểm thấp hoặc cao hơn khả năng bị quấy rối hoặc lời nói hận thù.

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 để nắm được góc nhìn chung về vấn đề an toàn những điều cần cân nhắc khi phát triển bằng LLM (mô hình ngôn ngữ lớn).
  • Tìm hiểu thêm về việc đánh giá xác suất so với mức độ nghiêm trọng của Jigsaw nhóm
  • Tìm hiểu thêm về các sản phẩm góp phần tạo nên các giải pháp an toàn như Phối cảnh . * Bạn có thể sử dụng các cài đặt an toàn này để tạo nội dung độc hại thuật toán phân loại. Xem phần phân loại lấy ví dụ thành bắt đầu.