From talking to @njhill, there's already precedent for doing hardware-specific request validation with the supports_structured_output platform api. For spyre we need a way to reject requests that don't fit a warmup shape, so we should propose a more general api to validate requests up front. Maybe something like:
def validate_request(
cls,
prompt: PromptType,
params: Union[SamplingParams, PoolingParams],
lora_request: Optional[LoRARequest] = None,
) -> None:
"""Raises if this request is unsupported on this platform"""