Skip to content

ToolChoice module-attribute

Determines which tools the model should request in a call to Converse or ConverseStream. For more information, see Call a tool with the Converse API in the Amazon Bedrock User Guide.

Union Members

ToolChoiceAuto dataclass

(Default). The Model automatically decides if a tool should be called or whether to generate text instead.

Source code in src/aws_sdk_bedrock_runtime/models.py
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
@dataclass
class ToolChoiceAuto:
    """(Default). The Model automatically decides if a tool should be called or
    whether to generate text instead.
    """

    value: AutoToolChoice

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

    def serialize_members(self, serializer: ShapeSerializer):
        serializer.write_struct(_SCHEMA_TOOL_CHOICE.members["auto"], self.value)

    @classmethod
    def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
        return cls(value=AutoToolChoice.deserialize(deserializer))

ToolChoiceAny dataclass

The model must request at least one tool (no text is generated).

Source code in src/aws_sdk_bedrock_runtime/models.py
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
@dataclass
class ToolChoiceAny:
    """The model must request at least one tool (no text is generated)."""

    value: AnyToolChoice

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

    def serialize_members(self, serializer: ShapeSerializer):
        serializer.write_struct(_SCHEMA_TOOL_CHOICE.members["any"], self.value)

    @classmethod
    def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
        return cls(value=AnyToolChoice.deserialize(deserializer))

ToolChoiceTool dataclass

The Model must request the specified tool. Only supported by Anthropic Claude 3 and Amazon Nova models.

Source code in src/aws_sdk_bedrock_runtime/models.py
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
@dataclass
class ToolChoiceTool:
    """The Model must request the specified tool. Only supported by Anthropic
    Claude 3 and Amazon Nova models.
    """

    value: SpecificToolChoice

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

    def serialize_members(self, serializer: ShapeSerializer):
        serializer.write_struct(_SCHEMA_TOOL_CHOICE.members["tool"], self.value)

    @classmethod
    def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
        return cls(value=SpecificToolChoice.deserialize(deserializer))

ToolChoiceUnknown dataclass

Represents an unknown variant.

If you receive this value, you will need to update your library to receive the parsed value.

This value may not be deliberately sent.

Source code in src/aws_sdk_bedrock_runtime/models.py
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
@dataclass
class ToolChoiceUnknown:
    """Represents an unknown variant.

    If you receive this value, you will need to update your library to receive the
    parsed value.

    This value may not be deliberately sent.
    """

    tag: str

    def serialize(self, serializer: ShapeSerializer):
        raise SerializationError("Unknown union variants may not be serialized.")

    def serialize_members(self, serializer: ShapeSerializer):
        raise SerializationError("Unknown union variants may not be serialized.")

    @classmethod
    def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
        raise NotImplementedError()