Skip to content

mistral_common.protocol.instruct.validator

MistralRequestValidator(mode=ValidationMode.test)

Bases: Generic[UserMessageType, AssistantMessageType, ToolMessageType, SystemMessageType]

Validator for Mistral requests.

This class validates the structure and content of Mistral requests.

Examples:

>>> from mistral_common.protocol.instruct.messages import UserMessage, AssistantMessage
>>> validator = MistralRequestValidator()
>>> messages = [UserMessage(content="Hello how are you ?")]
>>> validator.validate_messages(messages)

Parameters:

Name Type Description Default
mode ValidationMode

The validation mode. Defaults to ValidationMode.test.

test
Source code in src/mistral_common/protocol/instruct/validator.py
def __init__(self, mode: ValidationMode = ValidationMode.test):
    r"""Initializes the `MistralRequestValidator`.

    Args:
        mode: The validation mode. Defaults to ValidationMode.test.
    """
    self._mode = mode

validate_messages(messages)

Validates the list of messages.

Parameters:

Name Type Description Default
messages List[UATS]

The list of messages to validate.

required

Examples:

>>> from mistral_common.protocol.instruct.messages import UserMessage, AssistantMessage
>>> validator = MistralRequestValidator()
>>> messages = [AssistantMessage(content="Hi"), UserMessage(content="Hello")]
>>> validator.validate_messages(messages)
Source code in src/mistral_common/protocol/instruct/validator.py
def validate_messages(self, messages: List[UATS]) -> None:
    r"""Validates the list of messages.

    Args:
        messages: The list of messages to validate.

    Examples:
        >>> from mistral_common.protocol.instruct.messages import UserMessage, AssistantMessage
        >>> validator = MistralRequestValidator()
        >>> messages = [AssistantMessage(content="Hi"), UserMessage(content="Hello")]
        >>> validator.validate_messages(messages)
    """
    self._validate_message_list_structure(messages)
    self._validate_message_list_content(messages)

validate_request(request)

Validates the request

Parameters:

Name Type Description Default
request ChatCompletionRequest

The request to validate.

required

Returns:

Type Description
ChatCompletionRequest[UATS]

The validated request.

Examples:

>>> from mistral_common.protocol.instruct.messages import UserMessage
>>> validator = MistralRequestValidator()
>>> request = ChatCompletionRequest(messages=[UserMessage(content="Hello")])
>>> validated_request = validator.validate_request(request)
Source code in src/mistral_common/protocol/instruct/validator.py
def validate_request(self, request: ChatCompletionRequest) -> ChatCompletionRequest[UATS]:
    r"""Validates the request

    Args:
        request: The request to validate.

    Returns:
        The validated request.

    Examples:
        >>> from mistral_common.protocol.instruct.messages import UserMessage
        >>> validator = MistralRequestValidator()
        >>> request = ChatCompletionRequest(messages=[UserMessage(content="Hello")])
        >>> validated_request = validator.validate_request(request)
    """

    if self._mode == ValidationMode.serving:
        if request.model is None:
            raise InvalidRequestException("Model name parameter is required for serving mode")

    # Validate the messages
    self.validate_messages(request.messages)

    # Validate the tools
    self._validate_tools(request.tools or [])

    return request

MistralRequestValidatorV3(mode=ValidationMode.test)

Bases: MistralRequestValidator

Validator for v3 Mistral requests.

This validator adds additional validation for tool call IDs.

Examples:

>>> validator = MistralRequestValidatorV3()
Source code in src/mistral_common/protocol/instruct/validator.py
def __init__(self, mode: ValidationMode = ValidationMode.test):
    r"""Initializes the `MistralRequestValidator`.

    Args:
        mode: The validation mode. Defaults to ValidationMode.test.
    """
    self._mode = mode

MistralRequestValidatorV5(mode=ValidationMode.test)

Bases: MistralRequestValidatorV3

Validator for v5 Mistral requests.

This validator allows for both tool calls and content in the assistant message.

Examples:

>>> validator = MistralRequestValidatorV5()
Source code in src/mistral_common/protocol/instruct/validator.py
def __init__(self, mode: ValidationMode = ValidationMode.test):
    r"""Initializes the `MistralRequestValidator`.

    Args:
        mode: The validation mode. Defaults to ValidationMode.test.
    """
    self._mode = mode

ValidationMode

Bases: Enum

Enum for the validation mode.

Attributes:

Name Type Description
serving

The serving mode.

finetuning

The finetuning mode.

test

The test mode.

Examples:

>>> mode = ValidationMode.serving