diff --git a/python/sglang/srt/entrypoints/grpc_server.py b/python/sglang/srt/entrypoints/grpc_server.py index 6e257d52d..7f6b2b696 100644 --- a/python/sglang/srt/entrypoints/grpc_server.py +++ b/python/sglang/srt/entrypoints/grpc_server.py @@ -227,12 +227,17 @@ class SGLangSchedulerServicer(sglang_scheduler_pb2_grpc.SglangSchedulerServicer) ), ), ) - elif output.get("finished", False): + elif request.stream: + yield self._create_chunk_response(request.request_id, output) + if output.get("finished", False): + yield self._create_completion_response( + request.request_id, output + ) + else: + # Non-streaming n=1: single completion response yield self._create_completion_response( request.request_id, output ) - else: - yield self._create_chunk_response(request.request_id, output) except Exception as e: logger.error(