fix: address review comments on responses/messages handlers and lmcache guard

- engine.py: drop UnboundLocalError-prone isinstance(response, ...) checks in
  except blocks of _handle_responses_request and _handle_messages_request;
  emit SSE-shaped error frames mid-stream instead of raw dicts; add missing
  blank line between handlers.
- engine_args.py: restructure LMCache HMA guard so the warning branch is
  actually reachable when user explicitly sets disable_hybrid_kv_cache_manager=False,
  and correct the inverted message (HMA must be disabled = True).
- requirements.txt: drop stray whitespace in transformers version specifier.
This commit is contained in:
Tim Pietrusky
2026-04-23 11:28:50 +02:00
parent f299204770
commit 3403889528
3 changed files with 29 additions and 33 deletions
+1 -1
View File
@@ -9,7 +9,7 @@ typing-extensions>=4.8.0
pydantic
pydantic-settings
hf-transfer
transformers>= 4.57.0,< 5
transformers>=4.57.0,<5
bitsandbytes>=0.45.0
kernels
torch-c-dlpack-ext
+17 -24
View File
@@ -410,13 +410,10 @@ class OpenAIvLLMEngine(vLLMEngine):
extra={"request_id": request_id},
exc_info=True
)
if isinstance(response, ErrorResponse):
yield response.model_dump()
else:
yield create_error_response(
"Internal server error during response generation",
err_type="InternalServerError"
).model_dump()
yield create_error_response(
"Internal server error during response generation",
err_type="InternalServerError"
).model_dump()
return
if isinstance(response, (ErrorResponse, ResponsesResponse)):
@@ -436,10 +433,12 @@ class OpenAIvLLMEngine(vLLMEngine):
extra={"request_id": request_id},
exc_info=True
)
yield create_error_response(
error_payload = create_error_response(
"Streaming response failed",
err_type="InternalServerError"
).model_dump()
).model_dump_json()
yield f"event: error\ndata: {error_payload}\n\n"
async def _handle_messages_request(self, openai_request: JobInput):
request_id = getattr(openai_request, "request_id", "unknown")
@@ -470,19 +469,12 @@ class OpenAIvLLMEngine(vLLMEngine):
extra={"request_id": request_id},
exc_info=True
)
if isinstance(response, ErrorResponse):
error_type = getattr(response, "type", "internal_error")
error_message = getattr(response, "message", str(e)[:200])
yield AnthropicErrorResponse(
error=AnthropicError(type=error_type, message=error_message)
).model_dump()
else:
yield AnthropicErrorResponse(
error=AnthropicError(
type="internal_error",
message="Failed to generate messages"
)
).model_dump()
yield AnthropicErrorResponse(
error=AnthropicError(
type="internal_error",
message="Failed to generate messages"
)
).model_dump()
return
if isinstance(response, ErrorResponse):
@@ -507,9 +499,10 @@ class OpenAIvLLMEngine(vLLMEngine):
extra={"request_id": request_id},
exc_info=True
)
yield AnthropicErrorResponse(
error_payload = AnthropicErrorResponse(
error=AnthropicError(
type="internal_error",
message="Error while streaming messages"
)
).model_dump()
).model_dump_json()
yield f"event: error\ndata: {error_payload}\n\n"
+11 -8
View File
@@ -442,14 +442,17 @@ def get_engine_args():
)
lmcache_detected = lmcache_via_offload or lmcache_via_transfer
if lmcache_detected and not args.get("disable_hybrid_kv_cache_manager"):
args["disable_hybrid_kv_cache_manager"] = True
logging.info("LMCache detected: automatically setting disable_hybrid_kv_cache_manager=True")
elif lmcache_detected and args.get("disable_hybrid_kv_cache_manager") is False:
logging.warning(
"LMCache configuration detected but disabled: "
"disable_hybrid_kv_cache_manager must be False when using LMCache"
)
if lmcache_detected:
current = args.get("disable_hybrid_kv_cache_manager")
if current is False:
logging.warning(
"disable_hybrid_kv_cache_manager=False conflicts with LMCache; "
"overriding to True (HMA must be disabled when using LMCache)"
)
args["disable_hybrid_kv_cache_manager"] = True
elif current is None:
args["disable_hybrid_kv_cache_manager"] = True
logging.info("LMCache detected: automatically setting disable_hybrid_kv_cache_manager=True")
except Exception as e:
logging.error(
"Failed to check LMCache configuration: %s",