Skip to content

Commit 81b427f

Browse files
authored
Merge pull request #80 from evaline-ju/gg-context-update
🐛 Fix missing `risk_name` case for Granite Guardian context docs
2 parents 9a66941 + 8e3e1d3 commit 81b427f

File tree

2 files changed

+34
-4
lines changed

2 files changed

+34
-4
lines changed

tests/generative_detectors/test_granite_guardian.py

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,9 @@ def test_preprocess_chat_request_with_extra_chat_template_kwargs(
463463
}
464464

465465

466+
#### Helper function request->chat_completion_request tests
467+
468+
466469
def test_request_to_chat_completion_request_prompt_analysis(granite_guardian_detection):
467470
granite_guardian_detection_instance = asyncio.run(granite_guardian_detection)
468471
context_request = ContextAnalysisRequest(
@@ -499,7 +502,7 @@ def test_request_to_chat_completion_request_prompt_analysis(granite_guardian_det
499502
)
500503

501504

502-
def test_request_to_chat_completion_request_reponse_analysis(
505+
def test_request_to_chat_completion_request_response_analysis(
503506
granite_guardian_detection,
504507
):
505508
granite_guardian_detection_instance = asyncio.run(granite_guardian_detection)
@@ -569,6 +572,29 @@ def test_request_to_chat_completion_request_empty_guardian_config(
569572
assert "No risk_name for context analysis" in chat_request.message
570573

571574

575+
def test_request_to_chat_completion_request_missing_risk_name(
576+
granite_guardian_detection,
577+
):
578+
granite_guardian_detection_instance = asyncio.run(granite_guardian_detection)
579+
context_request = ContextAnalysisRequest(
580+
content=CONTENT,
581+
context_type="docs",
582+
context=[CONTEXT_DOC],
583+
detector_params={
584+
"n": 3,
585+
"chat_template_kwargs": {"guardian_config": {"risk_definition": "hi"}},
586+
},
587+
)
588+
chat_request = (
589+
granite_guardian_detection_instance._request_to_chat_completion_request(
590+
context_request, MODEL_NAME, fn_type=DetectorType.TEXT_CONTEXT_DOC
591+
)
592+
)
593+
assert type(chat_request) == ErrorResponse
594+
assert chat_request.code == HTTPStatus.BAD_REQUEST
595+
assert "No risk_name for context analysis" in chat_request.message
596+
597+
572598
def test_request_to_chat_completion_request_unsupported_risk_name(
573599
granite_guardian_detection,
574600
):
@@ -594,6 +620,9 @@ def test_request_to_chat_completion_request_unsupported_risk_name(
594620
)
595621

596622

623+
#### Helper function preprocess content tests
624+
625+
597626
def test_preprocess_content_request_with_detector_params(granite_guardian_detection):
598627
granite_guardian_detection_instance = asyncio.run(granite_guardian_detection)
599628
# Make sure with addition of allowed params like risk_name and risk_definition,

vllm_detector_adapter/generative_detectors/granite_guardian.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -258,9 +258,10 @@ def _request_to_chat_completion_request(
258258
if guardian_config := request.detector_params["chat_template_kwargs"][
259259
"guardian_config"
260260
]:
261-
risk_name = guardian_config["risk_name"]
262-
else:
263-
# Leaving off risk name can lead to model/template errors
261+
if isinstance(guardian_config, dict):
262+
risk_name = guardian_config.get("risk_name")
263+
# Leaving off risk name can lead to model/template errors
264+
if not risk_name:
264265
return ErrorResponse(
265266
message=NO_RISK_NAME_MESSAGE,
266267
type="BadRequestError",

0 commit comments

Comments
 (0)