Skip to content

GuardrailAssessment dataclass

A behavior assessment of the guardrail policies used in a call to the Converse API.

Source code in src/aws_sdk_bedrock_runtime/models.py
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
@dataclass(kw_only=True)
class GuardrailAssessment:
    """A behavior assessment of the guardrail policies used in a call to the
    Converse API.
    """

    topic_policy: GuardrailTopicPolicyAssessment | None = None
    """The topic policy."""

    content_policy: GuardrailContentPolicyAssessment | None = None
    """The content policy."""

    word_policy: GuardrailWordPolicyAssessment | None = None
    """The word policy."""

    sensitive_information_policy: (
        GuardrailSensitiveInformationPolicyAssessment | None
    ) = None
    """The sensitive information policy."""

    contextual_grounding_policy: GuardrailContextualGroundingPolicyAssessment | None = (
        None
    )
    """The contextual grounding policy used for the guardrail assessment."""

    automated_reasoning_policy: GuardrailAutomatedReasoningPolicyAssessment | None = (
        None
    )
    """The automated reasoning policy assessment results, including logical
    validation findings for the input content.
    """

    invocation_metrics: GuardrailInvocationMetrics | None = None
    """The invocation metrics for the guardrail assessment."""

    def serialize(self, serializer: ShapeSerializer):
        serializer.write_struct(_SCHEMA_GUARDRAIL_ASSESSMENT, self)

    def serialize_members(self, serializer: ShapeSerializer):
        if self.topic_policy is not None:
            serializer.write_struct(
                _SCHEMA_GUARDRAIL_ASSESSMENT.members["topicPolicy"], self.topic_policy
            )

        if self.content_policy is not None:
            serializer.write_struct(
                _SCHEMA_GUARDRAIL_ASSESSMENT.members["contentPolicy"],
                self.content_policy,
            )

        if self.word_policy is not None:
            serializer.write_struct(
                _SCHEMA_GUARDRAIL_ASSESSMENT.members["wordPolicy"], self.word_policy
            )

        if self.sensitive_information_policy is not None:
            serializer.write_struct(
                _SCHEMA_GUARDRAIL_ASSESSMENT.members["sensitiveInformationPolicy"],
                self.sensitive_information_policy,
            )

        if self.contextual_grounding_policy is not None:
            serializer.write_struct(
                _SCHEMA_GUARDRAIL_ASSESSMENT.members["contextualGroundingPolicy"],
                self.contextual_grounding_policy,
            )

        if self.automated_reasoning_policy is not None:
            serializer.write_struct(
                _SCHEMA_GUARDRAIL_ASSESSMENT.members["automatedReasoningPolicy"],
                self.automated_reasoning_policy,
            )

        if self.invocation_metrics is not None:
            serializer.write_struct(
                _SCHEMA_GUARDRAIL_ASSESSMENT.members["invocationMetrics"],
                self.invocation_metrics,
            )

    @classmethod
    def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
        return cls(**cls.deserialize_kwargs(deserializer))

    @classmethod
    def deserialize_kwargs(cls, deserializer: ShapeDeserializer) -> dict[str, Any]:
        kwargs: dict[str, Any] = {}

        def _consumer(schema: Schema, de: ShapeDeserializer) -> None:
            match schema.expect_member_index():
                case 0:
                    kwargs["topic_policy"] = GuardrailTopicPolicyAssessment.deserialize(
                        de
                    )

                case 1:
                    kwargs["content_policy"] = (
                        GuardrailContentPolicyAssessment.deserialize(de)
                    )

                case 2:
                    kwargs["word_policy"] = GuardrailWordPolicyAssessment.deserialize(
                        de
                    )

                case 3:
                    kwargs["sensitive_information_policy"] = (
                        GuardrailSensitiveInformationPolicyAssessment.deserialize(de)
                    )

                case 4:
                    kwargs["contextual_grounding_policy"] = (
                        GuardrailContextualGroundingPolicyAssessment.deserialize(de)
                    )

                case 5:
                    kwargs["automated_reasoning_policy"] = (
                        GuardrailAutomatedReasoningPolicyAssessment.deserialize(de)
                    )

                case 6:
                    kwargs["invocation_metrics"] = (
                        GuardrailInvocationMetrics.deserialize(de)
                    )

                case _:
                    logger.debug("Unexpected member schema: %s", schema)

        deserializer.read_struct(_SCHEMA_GUARDRAIL_ASSESSMENT, consumer=_consumer)
        return kwargs

Attributes

automated_reasoning_policy class-attribute instance-attribute

automated_reasoning_policy: GuardrailAutomatedReasoningPolicyAssessment | None = None

The automated reasoning policy assessment results, including logical validation findings for the input content.

content_policy class-attribute instance-attribute

content_policy: GuardrailContentPolicyAssessment | None = None

The content policy.

contextual_grounding_policy class-attribute instance-attribute

contextual_grounding_policy: GuardrailContextualGroundingPolicyAssessment | None = None

The contextual grounding policy used for the guardrail assessment.

invocation_metrics class-attribute instance-attribute

invocation_metrics: GuardrailInvocationMetrics | None = None

The invocation metrics for the guardrail assessment.

sensitive_information_policy class-attribute instance-attribute

sensitive_information_policy: GuardrailSensitiveInformationPolicyAssessment | None = None

The sensitive information policy.

topic_policy class-attribute instance-attribute

topic_policy: GuardrailTopicPolicyAssessment | None = None

The topic policy.

word_policy class-attribute instance-attribute

word_policy: GuardrailWordPolicyAssessment | None = None

The word policy.