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 xây dựng nguyên mẫu để xác định xem ứng dụng của bạn 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 và lọc an toàn, cũng như cách bạn có thể thay đổi 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 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á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 tục tĩu.
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.
Tính liêm chính trong cộng đồng Các cụm từ tìm kiếm liên quan đến bầu cử.

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. Ví dụ: nếu đang xây dựng hội thoại trong trò chơi điện tử, bạn có thể chấp nhận việc cho phép thêm thêm nội dung được đánh giá là Dangerous 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ệ trước những 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 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. Bạn cần cân nhắc điều này vì một số nội dung có thể có xác suất thấp là không an toàn, mặc dù mức độ nghiêm trọng của nội dung đó 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ể có nhiều khả năng không an toàn hơn, nhưng bạn có thể coi câu thứ hai là nghiêm trọng hơn về mặt bạo lực. Do đó, điều quan trọng là 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 tác hại đối với người dùng cuối.

Lọc mứ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. Khi bạn gửi 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ó khả năng cao, thì điểm xếp hạng an toàn được trả về sẽ có danh mục bằng HARASSMENT và khả năng gây hại sẽ đượ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ó xác suất trung bình trở lên là không an toàn theo bất kỳ bộ lọc nào. Tính năng an toàn cơ sở này được thiết kế để hoạt động trong 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 chế độ cài đặt an toàn nếu ứng dụng của bạn luôn yêu cầu chế độ này.

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 một số cho danh mục Lời nói hận thù, thì mọi nội dung có nhiều khả năng là lời nói hận thù sẽ 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 là nội dung không an toàn
Chặn một số BLOCK_MEDIUM_AND_ABOVE Chặn khi có khả năng cao hoặc trung bình là nội dung không an toàn
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 ngưỡng, thì ngưỡng chặn mặc định sẽ là Chặn hầu hết (chỉ dành cho gemini-1.5-pro-002gemini-1.5-flash-002) hoặc Chặn một số (trong tất cả các mô hình khác) đối với tất cả danh mục ngoại trừ danh mục Tính liêm chính trong cộng đồng.

Ngưỡng chặn mặc định cho danh mục Tính toàn vẹn của dân sựChặn nhiều nhất khi gửi câu lệnh bằng Google AI Studio và Không chặn khi sử dụng trực tiếp Gemini API.

Bạn có thể đặt các chế độ cài đặt này cho từng yêu cầu bạn gửi đến 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.

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

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

Ý kiến phản hồi nhanh được đưa vào promptFeedback. Nếu bạn đặt promptFeedback.blockReason, thì nội dung lời nhắc đã bị chặn.

Ý kiến phản hồi về đề xuất phản hồi được đưa vào Candidate.finishReasonCandidate.safetyRatings. Nếu nội dung phản hồi bị chặn và finishReasonSAFETY, bạn có thể kiểm tra safetyRatings để biết thêm thông tin 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ế độ cài đặt này.

Nhấp vào Chỉnh sửa chế độ cài đặt an toàn trong bảng điều khiển Cài đặt chạy để mở cửa sổ bật lên Cài đặt an toàn khi chạy. 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 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 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 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 các chế độ cài đặt an toàn trong lệnh gọi GenerateContent. Thao tác này sẽ đặt ngưỡng cho 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). Ví dụ: việc đặt các danh mục này thành BLOCK_LOW_AND_ABOVE sẽ chặn mọi nội dung có ít hoặc nhiều khả năng bị quấy rối hoặc lời nói hận thù. Để tìm hiểu về chế độ cài đặt ngưỡng, hãy xem phần Lọc an toàn theo yêu cầu.

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

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

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

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 lại hướng dẫn về an toàn để biết thông tin chung về các điểm cần cân nhắc về an toàn khi phát triển bằng các mô hình ngôn ngữ lớn (LLM).
  • Tìm hiểu thêm về việc đá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 đóng góp vào các giải pháp an toàn như Perspective API. * 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 sự độc hại. Hãy xem ví dụ về phân loại để bắt đầu.