Skip to content

AnyToolChoice dataclass

The model must request at least one tool (no text is generated). For example, {"any" : {}}. For more information, see Call a tool with the Converse API in the Amazon Bedrock User Guide.

Source code in src/aws_sdk_bedrock_runtime/models.py
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
@dataclass(kw_only=True)
class AnyToolChoice:
    """The model must request at least one tool (no text is generated). For
    example, `{"any" : {}}`. For more information, see [Call a tool with the
    Converse
    API](https://docs.aws.amazon.com/bedrock/latest/userguide/tool-use.html)
    in the Amazon Bedrock User Guide.
    """

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

    def serialize_members(self, serializer: ShapeSerializer):
        pass

    @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 _:
                    logger.debug("Unexpected member schema: %s", schema)

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