diff --git a/mellea/formatters/granite/base/util.py b/mellea/formatters/granite/base/util.py index 3ca3587aa..79af3ff76 100644 --- a/mellea/formatters/granite/base/util.py +++ b/mellea/formatters/granite/base/util.py @@ -162,9 +162,11 @@ def chat_completion_request_to_transformers_inputs( tokenizer_input = { "conversation": request["messages"], "add_generation_prompt": True, - "tools": request["tools"], } + if request.get("tools") is not None: + tokenizer_input["tools"] = request["tools"] + # pylint: disable=unsupported-membership-test if ( request.get("extra_body") is not None diff --git a/pyproject.toml b/pyproject.toml index b13604a1b..5cf8f122c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -46,7 +46,7 @@ hf = [ "peft>=0.18.1", # Native aLoRA support added in PEFT 0.18.0 "transformers>=4.53.2,<5", "trl==0.19.1", - "xgrammar", # Necessary for granite_common intrinsics. + "xgrammar==0.1.33", # Necessary for granite_common intrinsics. Pinned due to Issue 990. "huggingface-hub>=0.33.4", ] diff --git a/test/backends/test_huggingface.py b/test/backends/test_huggingface.py index 864dc0dcc..97bd6b4d4 100644 --- a/test/backends/test_huggingface.py +++ b/test/backends/test_huggingface.py @@ -772,13 +772,27 @@ async def test_intrinsic_streaming_raises(backend) -> None: ) -async def test_intrinsic_no_adapter_raises(backend) -> None: +async def test_unknown_intrinsic_no_adapter_raises(backend) -> None: + """Calling an unknown intrinsic with no registered adapter raises ValueError.""" + ctx = ChatContext().add(Message("user", "test")) + + with pytest.raises(ValueError, match="Unknown intrinsic name"): + await mfuncs.aact( + Intrinsic("nonexistent_intrinsic"), ctx, backend, strategy=None + ) + + +async def test_known_intrinsic_no_adapter_raises(backend) -> None: """Calling an intrinsic with no registered adapter raises ValueError.""" ctx = ChatContext().add(Message("user", "test")) with pytest.raises(ValueError, match="has no adapter"): await mfuncs.aact( - Intrinsic("nonexistent_intrinsic"), ctx, backend, strategy=None + # Explicitly pass in a known Intrinsic that isn't loaded. + Intrinsic("uncertainty"), + ctx, + backend, + strategy=None, )