(
formatter: OpenAIFormatter,
http_request: Request,
stream: CompletionStream,
cancel: Callable[[], None],
*,
initial_payloads: Iterable[BaseModel | Dict[str, Any]],
chunk_payloads: Callable[[CompletionChunk], Iterable[Any]],
done_payloads: Callable[
[Optional[OpenAICompletion]], Iterable[BaseModel | Dict[str, Any]]
],
)
| 15864 | disconnect_task.cancel() |
| 15865 | |
| 15866 | async def stream_sse_outputs( |
| 15867 | formatter: OpenAIFormatter, |
| 15868 | http_request: Request, |
| 15869 | stream: CompletionStream, |
| 15870 | cancel: Callable[[], None], |
| 15871 | *, |
| 15872 | initial_payloads: Iterable[BaseModel | Dict[str, Any]], |
| 15873 | chunk_payloads: Callable[[CompletionChunk], Iterable[Any]], |
| 15874 | done_payloads: Callable[ |
| 15875 | [Optional[OpenAICompletion]], Iterable[BaseModel | Dict[str, Any]] |
| 15876 | ], |
| 15877 | ) -> AsyncIterator[bytes]: |
| 15878 | disconnect_task = asyncio.create_task( |
| 15879 | watch_http_disconnect(http_request, cancel) |
| 15880 | ) |
| 15881 | try: |
| 15882 | for payload in initial_payloads: |
| 15883 | yield formatter.encode_sse_payload(payload) |
| 15884 | while True: |
| 15885 | done, chunk, result = await asyncio.to_thread( |
| 15886 | formatter.next_stream_output, |
| 15887 | stream, |
| 15888 | ) |
| 15889 | if done: |
| 15890 | for payload in done_payloads(result): |
| 15891 | yield formatter.encode_sse_payload(payload) |
| 15892 | break |
| 15893 | assert chunk is not None |
| 15894 | for payload in chunk_payloads(chunk): |
| 15895 | yield formatter.encode_sse_payload(payload) |
| 15896 | yield b"data: [DONE]\n\n" |
| 15897 | except asyncio.CancelledError: |
| 15898 | cancel() |
| 15899 | raise |
| 15900 | except BaseException as exc: |
| 15901 | cancel() |
| 15902 | if ( |
| 15903 | isinstance(exc, CompletionRequestCancelledError) |
| 15904 | and await http_request.is_disconnected() |
| 15905 | ): |
| 15906 | return |
| 15907 | raise |
| 15908 | finally: |
| 15909 | disconnect_task.cancel() |
| 15910 | |
| 15911 | async def stream_websocket_responses( |
| 15912 | websocket: WebSocket, |
no test coverage detected
searching dependent graphs…