mistral_common.protocol.instruct.normalize
InstructRequestNormalizer(user_message_class, assistant_message_class, tool_message_class, system_message_class, instruct_request_class)
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 |
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()
staticmethod
Returns a normalizer for the default instruct request.
Examples:
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)
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()
staticmethod
Returns a normalizer for the default instruct request
Examples:
Source code in src/mistral_common/protocol/instruct/normalize.py
normalizer_for_tokenizer_version(version)
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 |
Returns:
Type | Description |
---|---|
InstructRequestNormalizer
|
The appropriate normalizer for the given tokenizer version. |
Examples: