mistral_common.protocol.instruct.normalize
InstructRequestNormalizer(user_message_class, assistant_message_class, tool_message_class, system_message_class, instruct_request_class, model_settings_builder)
Bases: Generic[UserMessageType, AssistantMessageType, ToolMessageType, SystemMessageType, InstructRequestType]
Takes a ChatCompletionRequest and normalizes it into an InstructRequest.
The normalization process does several things such as: - Aggregate consecutive messages of the same role - Aggregate system prompts - Normalize json content - Normalize tool calls
Examples:
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_message_class
|
type[UserMessageType]
|
The class for user messages. |
required |
assistant_message_class
|
type[AssistantMessageType]
|
The class for assistant messages. |
required |
tool_message_class
|
type[ToolMessageType]
|
The class for tool messages. |
required |
system_message_class
|
type[SystemMessageType]
|
The class for system messages. |
required |
instruct_request_class
|
type[InstructRequestType]
|
The class for instruct requests. |
required |
model_settings_builder
|
ModelSettingsBuilder | None
|
The builder for model settings, or None if unsupported. |
required |
Source code in src/mistral_common/protocol/instruct/normalize.py
build_settings(request)
Build model settings from a chat completion request.
For pre-v15 normalizers, model settings are all None.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
ChatCompletionRequest
|
The chat completion request. |
required |
Returns:
| Type | Description |
|---|---|
ModelSettings
|
Returns |
Source code in src/mistral_common/protocol/instruct/normalize.py
from_chat_completion_request(request)
Converts a chat completion request to an instruct request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
ChatCompletionRequest[UATS]
|
The chat completion request to convert. |
required |
Returns:
| Type | Description |
|---|---|
InstructRequestType
|
The converted instruct request. |
Examples:
>>> from mistral_common.protocol.instruct.messages import UserMessage, AssistantMessage
>>> request = ChatCompletionRequest(
... messages=[
... UserMessage(content="Hello"),
... AssistantMessage(content="Hi"),
... ],
... )
>>> normalizer = InstructRequestNormalizer.normalizer()
>>> instruct_request = normalizer.from_chat_completion_request(request)
Source code in src/mistral_common/protocol/instruct/normalize.py
normalizer(model_settings_builder=None)
staticmethod
Returns a normalizer for the default instruct request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model_settings_builder
|
ModelSettingsBuilder | None
|
Must be None for this normalizer version. |
None
|
Returns:
| Type | Description |
|---|---|
InstructRequestNormalizer
|
A normalizer for the default instruct request. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If model_settings_builder is not None. |
Examples:
Source code in src/mistral_common/protocol/instruct/normalize.py
InstructRequestNormalizerV13(user_message_class, assistant_message_class, tool_message_class, system_message_class, instruct_request_class, model_settings_builder)
Bases: InstructRequestNormalizerV7
Normalizer for the v13 tokenizer.
It reorders tool messages based on the tool call order.
Examples:
Source code in src/mistral_common/protocol/instruct/normalize.py
normalizer(model_settings_builder=None)
staticmethod
Returns a normalizer for the default instruct request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model_settings_builder
|
ModelSettingsBuilder | None
|
Must be None for this normalizer version. |
None
|
Returns:
| Type | Description |
|---|---|
InstructRequestNormalizerV13
|
A normalizer for the V13 instruct request. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If model_settings_builder is not None. |
Source code in src/mistral_common/protocol/instruct/normalize.py
InstructRequestNormalizerV15(user_message_class, assistant_message_class, tool_message_class, system_message_class, instruct_request_class, model_settings_builder)
Bases: InstructRequestNormalizerV13
Normalizer for the v15 tokenizer.
It reorders tool messages based on the tool call order and builds model settings.
Examples:
Source code in src/mistral_common/protocol/instruct/normalize.py
build_settings(request)
Build model settings using the configured model settings builder.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
ChatCompletionRequest
|
The chat completion request. |
required |
Returns:
| Type | Description |
|---|---|
ModelSettings
|
The built model settings. |
Raises:
| Type | Description |
|---|---|
InvalidRequestException
|
If no model settings builder is configured. |
Source code in src/mistral_common/protocol/instruct/normalize.py
from_chat_completion_request(request)
Converts a chat completion request to an instruct request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
ChatCompletionRequest[UATS]
|
The chat completion request to convert. |
required |
Returns:
| Type | Description |
|---|---|
InstructRequestType
|
The converted instruct request. |
Source code in src/mistral_common/protocol/instruct/normalize.py
normalizer(model_settings_builder=None)
staticmethod
Returns a normalizer for the V15 instruct request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model_settings_builder
|
ModelSettingsBuilder | None
|
The builder for model settings. |
None
|
Returns:
| Type | Description |
|---|---|
InstructRequestNormalizerV15
|
A normalizer for the V15 instruct request. |
Source code in src/mistral_common/protocol/instruct/normalize.py
InstructRequestNormalizerV7(user_message_class, assistant_message_class, tool_message_class, system_message_class, instruct_request_class, model_settings_builder)
Bases: InstructRequestNormalizer
Normalizer for the v7 tokenizer.
Examples:
Source code in src/mistral_common/protocol/instruct/normalize.py
from_chat_completion_request(request)
Converts a chat completion request to an instruct request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
ChatCompletionRequest[UATS]
|
The chat completion request to convert. |
required |
Returns:
| Type | Description |
|---|---|
InstructRequestType
|
The converted instruct request. |
Examples:
>>> from mistral_common.protocol.instruct.messages import UserMessage, AssistantMessage
>>> request = ChatCompletionRequest(
... messages=[
... UserMessage(content="Hello"),
... AssistantMessage(content="Hi"),
... ],
... )
>>> normalizer = InstructRequestNormalizerV7.normalizer()
>>> instruct_request = normalizer.from_chat_completion_request(request)
Source code in src/mistral_common/protocol/instruct/normalize.py
normalizer(model_settings_builder=None)
staticmethod
Returns a normalizer for the default instruct request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model_settings_builder
|
ModelSettingsBuilder | None
|
Must be None for this normalizer version. |
None
|
Returns:
| Type | Description |
|---|---|
InstructRequestNormalizerV7
|
A normalizer for the V7 instruct request. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If model_settings_builder is not None. |
Examples:
Source code in src/mistral_common/protocol/instruct/normalize.py
get_normalizer(version, model_settings_builder=None)
Gets the appropriate normalizer for the given tokenizer version.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
version
|
TokenizerVersion
|
The tokenizer version to get the normalizer for. |
required |
model_settings_builder
|
ModelSettingsBuilder | None
|
The builder for model settings, or None if unsupported. |
None
|
Returns:
| Type | Description |
|---|---|
InstructRequestNormalizer
|
The appropriate normalizer for the given tokenizer version. |
Examples:
Source code in src/mistral_common/protocol/instruct/normalize.py
normalizer_for_tokenizer_version(version, model_settings_builder=None)
Deprecated in favor to get_normalizer, will be removed in 1.12.0.