| 305 | return events |
| 306 | |
| 307 | def run_live( |
| 308 | self, live_request_queue: LiveRequestQueue, run_config: RunConfig = None |
| 309 | ) -> list[Event]: |
| 310 | collected_responses = [] |
| 311 | |
| 312 | async def consume_responses(session: Session): |
| 313 | run_res = self.runner.run_live( |
| 314 | session=session, |
| 315 | live_request_queue=live_request_queue, |
| 316 | run_config=run_config or RunConfig(), |
| 317 | ) |
| 318 | |
| 319 | async for response in run_res: |
| 320 | collected_responses.append(response) |
| 321 | # When we have enough response, we should return |
| 322 | if len(collected_responses) >= 1: |
| 323 | return |
| 324 | |
| 325 | try: |
| 326 | session = self.session |
| 327 | asyncio.run(consume_responses(session)) |
| 328 | except asyncio.TimeoutError: |
| 329 | print('Returning any partial results collected so far.') |
| 330 | |
| 331 | return collected_responses |
| 332 | |
| 333 | |
| 334 | class MockModel(BaseLlm): |