Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,15 @@ class MistralAIChatPromptExecutionSettings(MistralAIPromptExecutionSettings):
"on the function choice configuration.",
),
] = None

def prepare_settings_dict(self, **kwargs) -> dict[str, Any]:
"""Prepare the settings as a dictionary for sending to the AI service.

The Mistral SDK has no `seed` parameter, it takes `random_seed`, so `seed` is sent
as `random_seed` unless that one is set explicitly.
"""
settings = super().prepare_settings_dict(**kwargs)
seed = settings.pop("seed", None)
if seed is not None:
settings.setdefault("random_seed", seed)
return settings
Original file line number Diff line number Diff line change
Expand Up @@ -385,7 +385,7 @@ async def test_with_different_execution_settings(kernel: Kernel, mock_mistral_ai
chat_history=chat_history, settings=settings, kernel=kernel, arguments=arguments
)
assert mock_mistral_ai_client_completion.chat.complete_async.call_args.kwargs["temperature"] == 0.2
assert mock_mistral_ai_client_completion.chat.complete_async.call_args.kwargs["seed"] == 2
assert mock_mistral_ai_client_completion.chat.complete_async.call_args.kwargs["random_seed"] == 2


async def test_with_different_execution_settings_stream(
Expand All @@ -406,7 +406,7 @@ async def test_with_different_execution_settings_stream(
):
continue
assert mock_mistral_ai_client_completion_stream.chat.stream_async.call_args.kwargs["temperature"] == 0.2
assert mock_mistral_ai_client_completion_stream.chat.stream_async.call_args.kwargs["seed"] == 2
assert mock_mistral_ai_client_completion_stream.chat.stream_async.call_args.kwargs["random_seed"] == 2


async def test_mistral_ai_chat_completion_get_chat_message_contents_success():
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,3 +123,18 @@ def test_create_options_with_function_choice_behavior():
},
)
assert settings.function_choice_behavior


def test_prepare_settings_dict_maps_seed_to_random_seed():
# The Mistral SDK has no `seed` parameter, only `random_seed`
settings = MistralAIChatPromptExecutionSettings(seed=42)
options = settings.prepare_settings_dict()
assert "seed" not in options
assert options["random_seed"] == 42


def test_prepare_settings_dict_keeps_explicit_random_seed():
settings = MistralAIChatPromptExecutionSettings(seed=42, random_seed=7)
options = settings.prepare_settings_dict()
assert "seed" not in options
assert options["random_seed"] == 7
Loading