@@ -60,6 +60,7 @@ async def generate(self, prompt: str, sampling_params: object) -> types.SimpleNa
6060 generated_log_probs = [- 0.3 ],
6161 prompt_top_n_logprobs = [{"prompt-token" : - 0.1 }],
6262 generated_top_n_logprobs = [{"generated-token" : - 0.3 }],
63+ failed = lambda : False ,
6364 )
6465
6566
@@ -151,3 +152,44 @@ def test_generate_prints_requested_log_probabilities(
151152 assert "Generated log probs: [-0.3]" in rendered
152153 assert "Prompt top-n logprobs: [{'prompt-token': -0.1}]" in rendered
153154 assert "Generated top-n logprobs: [{'generated-token': -0.3}]" in rendered
155+
156+
157+ @pytest .mark .unit
158+ def test_generate_rejects_failed_inference_requests (
159+ async_text_generation_entrypoint : types .ModuleType ,
160+ monkeypatch : pytest .MonkeyPatch ,
161+ ) -> None :
162+ async def _failed_generate (_self , _prompt , _sampling_params ):
163+ return types .SimpleNamespace (
164+ request_id = 7 ,
165+ status = types .SimpleNamespace (name = "FAILED" ),
166+ generated_text = "" ,
167+ failed = lambda : True ,
168+ )
169+
170+ monkeypatch .setattr (_AsyncLLM , "generate" , _failed_generate )
171+ args = types .SimpleNamespace (
172+ max_seq_length = 32 ,
173+ max_new_tokens = 2 ,
174+ max_batch_size = None ,
175+ tp = 1 ,
176+ block_size_tokens = 8 ,
177+ kv_cache_buffer_size_gb = 1.0 ,
178+ max_tokens = None ,
179+ return_log_probs = False ,
180+ enable_chunked_prefill = False ,
181+ coordinator_host = None ,
182+ coordinator_port = None ,
183+ )
184+ tokenizer = types .SimpleNamespace (tokenize = lambda prompt : [1 , 2 ])
185+
186+ with pytest .raises (RuntimeError , match = "request 7.*FAILED" ):
187+ asyncio .run (
188+ async_text_generation_entrypoint ._generate (
189+ args ,
190+ model = object (),
191+ tokenizer = tokenizer ,
192+ prompts = ["prompt" ],
193+ sampling_params = object (),
194+ )
195+ )
0 commit comments