As of January 1, 2020 this library no longer supports Python 2 on the latest released version. Library versions released prior to that date will continue to be available. For more information please visit Python 2 support on Google Cloud.

Source code for google.ai.generativelanguage_v1.types.safety

# -*- coding: utf-8 -*-
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
from __future__ import annotations

from typing import MutableMapping, MutableSequence

import proto  # type: ignore

__protobuf__ = proto.module(
    package="google.ai.generativelanguage.v1",
    manifest={
        "HarmCategory",
        "SafetyRating",
        "SafetySetting",
    },
)


[docs]class HarmCategory(proto.Enum): r"""The category of a rating. These categories cover various kinds of harms that developers may wish to adjust. Values: HARM_CATEGORY_UNSPECIFIED (0): Category is unspecified. HARM_CATEGORY_DEROGATORY (1): **PaLM** - Negative or harmful comments targeting identity and/or protected attribute. HARM_CATEGORY_TOXICITY (2): **PaLM** - Content that is rude, disrespectful, or profane. HARM_CATEGORY_VIOLENCE (3): **PaLM** - Describes scenarios depicting violence against an individual or group, or general descriptions of gore. HARM_CATEGORY_SEXUAL (4): **PaLM** - Contains references to sexual acts or other lewd content. HARM_CATEGORY_MEDICAL (5): **PaLM** - Promotes unchecked medical advice. HARM_CATEGORY_DANGEROUS (6): **PaLM** - Dangerous content that promotes, facilitates, or encourages harmful acts. HARM_CATEGORY_HARASSMENT (7): **Gemini** - Harassment content. HARM_CATEGORY_HATE_SPEECH (8): **Gemini** - Hate speech and content. HARM_CATEGORY_SEXUALLY_EXPLICIT (9): **Gemini** - Sexually explicit content. HARM_CATEGORY_DANGEROUS_CONTENT (10): **Gemini** - Dangerous content. HARM_CATEGORY_CIVIC_INTEGRITY (11): **Gemini** - Content that may be used to harm civic integrity. DEPRECATED: use enable_enhanced_civic_answers instead. """ HARM_CATEGORY_UNSPECIFIED = 0 HARM_CATEGORY_DEROGATORY = 1 HARM_CATEGORY_TOXICITY = 2 HARM_CATEGORY_VIOLENCE = 3 HARM_CATEGORY_SEXUAL = 4 HARM_CATEGORY_MEDICAL = 5 HARM_CATEGORY_DANGEROUS = 6 HARM_CATEGORY_HARASSMENT = 7 HARM_CATEGORY_HATE_SPEECH = 8 HARM_CATEGORY_SEXUALLY_EXPLICIT = 9 HARM_CATEGORY_DANGEROUS_CONTENT = 10 HARM_CATEGORY_CIVIC_INTEGRITY = 11
[docs]class SafetyRating(proto.Message): r"""Safety rating for a piece of content. The safety rating contains the category of harm and the harm probability level in that category for a piece of content. Content is classified for safety across a number of harm categories and the probability of the harm classification is included here. Attributes: category (google.ai.generativelanguage_v1.types.HarmCategory): Required. The category for this rating. probability (google.ai.generativelanguage_v1.types.SafetyRating.HarmProbability): Required. The probability of harm for this content. blocked (bool): Was this content blocked because of this rating? """
[docs] class HarmProbability(proto.Enum): r"""The probability that a piece of content is harmful. The classification system gives the probability of the content being unsafe. This does not indicate the severity of harm for a piece of content. Values: HARM_PROBABILITY_UNSPECIFIED (0): Probability is unspecified. NEGLIGIBLE (1): Content has a negligible chance of being unsafe. LOW (2): Content has a low chance of being unsafe. MEDIUM (3): Content has a medium chance of being unsafe. HIGH (4): Content has a high chance of being unsafe. """ HARM_PROBABILITY_UNSPECIFIED = 0 NEGLIGIBLE = 1 LOW = 2 MEDIUM = 3 HIGH = 4
category: "HarmCategory" = proto.Field( proto.ENUM, number=3, enum="HarmCategory", ) probability: HarmProbability = proto.Field( proto.ENUM, number=4, enum=HarmProbability, ) blocked: bool = proto.Field( proto.BOOL, number=5, )
[docs]class SafetySetting(proto.Message): r"""Safety setting, affecting the safety-blocking behavior. Passing a safety setting for a category changes the allowed probability that content is blocked. Attributes: category (google.ai.generativelanguage_v1.types.HarmCategory): Required. The category for this setting. threshold (google.ai.generativelanguage_v1.types.SafetySetting.HarmBlockThreshold): Required. Controls the probability threshold at which harm is blocked. """
[docs] class HarmBlockThreshold(proto.Enum): r"""Block at and beyond a specified harm probability. Values: HARM_BLOCK_THRESHOLD_UNSPECIFIED (0): Threshold is unspecified. BLOCK_LOW_AND_ABOVE (1): Content with NEGLIGIBLE will be allowed. BLOCK_MEDIUM_AND_ABOVE (2): Content with NEGLIGIBLE and LOW will be allowed. BLOCK_ONLY_HIGH (3): Content with NEGLIGIBLE, LOW, and MEDIUM will be allowed. BLOCK_NONE (4): All content will be allowed. OFF (5): Turn off the safety filter. """ HARM_BLOCK_THRESHOLD_UNSPECIFIED = 0 BLOCK_LOW_AND_ABOVE = 1 BLOCK_MEDIUM_AND_ABOVE = 2 BLOCK_ONLY_HIGH = 3 BLOCK_NONE = 4 OFF = 5
category: "HarmCategory" = proto.Field( proto.ENUM, number=3, enum="HarmCategory", ) threshold: HarmBlockThreshold = proto.Field( proto.ENUM, number=4, enum=HarmBlockThreshold, )
__all__ = tuple(sorted(__protobuf__.manifest))