From dadb5553ac55c35785fa653b7cc8dfc9a7453355 Mon Sep 17 00:00:00 2001 From: Alex Castillo Date: Tue, 20 Oct 2026 08:19:37 -0400 Subject: [PATCH] Python: fix(bedrock): map guardrail_intervened and model_context_window_exceeded stop reasons --- .../ai/bedrock/services/model_provider/utils.py | 2 ++ .../services/test_bedrock_model_provider_utils.py | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/python/semantic_kernel/connectors/ai/bedrock/services/model_provider/utils.py b/python/semantic_kernel/connectors/ai/bedrock/services/model_provider/utils.py index d4384ed75da7..27fa69076fca 100644 --- a/python/semantic_kernel/connectors/ai/bedrock/services/model_provider/utils.py +++ b/python/semantic_kernel/connectors/ai/bedrock/services/model_provider/utils.py @@ -213,5 +213,7 @@ def finish_reason_from_bedrock_to_semantic_kernel(finish_reason: str) -> FinishR "end_turn": FinishReason.STOP, "max_tokens": FinishReason.LENGTH, "content_filtered": FinishReason.CONTENT_FILTER, + "guardrail_intervened": FinishReason.CONTENT_FILTER, + "model_context_window_exceeded": FinishReason.LENGTH, "tool_use": FinishReason.TOOL_CALLS, }.get(finish_reason) diff --git a/python/tests/unit/connectors/ai/bedrock/services/test_bedrock_model_provider_utils.py b/python/tests/unit/connectors/ai/bedrock/services/test_bedrock_model_provider_utils.py index ef279db2521d..a29fa7333488 100644 --- a/python/tests/unit/connectors/ai/bedrock/services/test_bedrock_model_provider_utils.py +++ b/python/tests/unit/connectors/ai/bedrock/services/test_bedrock_model_provider_utils.py @@ -344,6 +344,18 @@ def test_finish_reason_from_bedrock_to_semantic_kernel_tool_use() -> None: assert reason == FinishReason.TOOL_CALLS +def test_finish_reason_from_bedrock_to_semantic_kernel_guardrail_intervened() -> None: + """Test that 'guardrail_intervened' maps to FinishReason.CONTENT_FILTER""" + reason = finish_reason_from_bedrock_to_semantic_kernel("guardrail_intervened") + assert reason == FinishReason.CONTENT_FILTER + + +def test_finish_reason_from_bedrock_to_semantic_kernel_context_window_exceeded() -> None: + """Test that 'model_context_window_exceeded' maps to FinishReason.LENGTH""" + reason = finish_reason_from_bedrock_to_semantic_kernel("model_context_window_exceeded") + assert reason == FinishReason.LENGTH + + def test_finish_reason_from_bedrock_to_semantic_kernel_unknown() -> None: """Test that unknown finish reason returns None""" reason = finish_reason_from_bedrock_to_semantic_kernel("something_unknown")