(monkeypatch)
| 225 | |
| 226 | |
| 227 | def test_run_engine_and_streaming(monkeypatch): |
| 228 | llm = _make_llm(_make_engine(vocab_size=3, enable_logprob=True)) |
| 229 | llm._build_sample_logprobs = lambda *_: [{1: None}] |
| 230 | llm._build_prompt_logprobs = lambda *_: [None] |
| 231 | |
| 232 | top_logprobs = LogprobsLists(logprob_token_ids=[[1]], logprobs=[[-0.1]], sampled_token_ranks=[0]) |
| 233 | prompt_logprobs = LogprobsTensors( |
| 234 | paddle.to_tensor([[1]], dtype=paddle.int64), |
| 235 | paddle.to_tensor([[-0.1]], dtype=paddle.float32), |
| 236 | paddle.to_tensor([1], dtype=paddle.int64), |
| 237 | ) |
| 238 | result = DummyResult("r1", [1], top_logprobs=top_logprobs, prompt_logprobs=prompt_logprobs, finished=True) |
| 239 | llm.req_output["r1"] = result |
| 240 | |
| 241 | class DummyTqdm: |
| 242 | last_instance = None |
| 243 | |
| 244 | def __init__(self, **_): |
| 245 | self.updated = 0 |
| 246 | self.closed = False |
| 247 | DummyTqdm.last_instance = self |
| 248 | |
| 249 | def update(self, n): |
| 250 | self.updated += n |
| 251 | |
| 252 | def close(self): |
| 253 | self.closed = True |
| 254 | return None |
| 255 | |
| 256 | llm_module.tqdm = DummyTqdm |
| 257 | out = llm._run_engine(["r1"], use_tqdm=True, topk_logprobs=-1, num_prompt_logprobs=-1) |
| 258 | assert out[0] is result |
| 259 | |
| 260 | current = DummyResult( |
| 261 | "r2", |
| 262 | [1, 2], |
| 263 | top_logprobs=top_logprobs, |
| 264 | prompt_logprobs=None, |
| 265 | finished=True, |
| 266 | ) |
| 267 | if "r2" in llm.req_output: |
| 268 | llm.req_output.pop("r2") |
| 269 | |
| 270 | def fake_sleep(_): |
| 271 | if "r2" not in llm.req_output: |
| 272 | llm.req_output["r2"] = current |
| 273 | return None |
| 274 | |
| 275 | monkeypatch.setattr(llm_module.time, "sleep", fake_sleep) |
| 276 | it = llm._run_engine_stream( |
| 277 | ["r2"], |
| 278 | prompts=["hi"], |
| 279 | use_tqdm=True, |
| 280 | topk_logprobs=1, |
| 281 | chat_template_kwargs={"enable_thinking": True}, |
| 282 | ) |
| 283 | batches = list(it) |
| 284 | assert batches[0][0].prompt == "hi" |
nothing calls this directly
no test coverage detected