diff --git a/llama-index-core/llama_index/core/response_synthesizers/base.py b/llama-index-core/llama_index/core/response_synthesizers/base.py index 54f85c773f092e17ce6f7c983d7a8698a7bc46a6..7c0e9cf0fc2fc48acd4feb36a4fb6d729d5292da 100644 --- a/llama-index-core/llama_index/core/response_synthesizers/base.py +++ b/llama-index-core/llama_index/core/response_synthesizers/base.py @@ -50,6 +50,10 @@ logger = logging.getLogger(__name__) QueryTextType = Union[str, QueryBundle] +def empty_response_generator() -> Generator[str, None, None]: + yield "Empty Response" + + class BaseSynthesizer(ChainableMixin, PromptMixin): """Response builder class.""" @@ -177,7 +181,10 @@ class BaseSynthesizer(ChainableMixin, PromptMixin): **response_kwargs: Any, ) -> RESPONSE_TYPE: if len(nodes) == 0: - return Response("Empty Response") + if self._streaming: + return StreamingResponse(response_gen=empty_response_generator()) + else: + return Response("Empty Response") if isinstance(query, str): query = QueryBundle(query_str=query) @@ -210,7 +217,10 @@ class BaseSynthesizer(ChainableMixin, PromptMixin): **response_kwargs: Any, ) -> RESPONSE_TYPE: if len(nodes) == 0: - return Response("Empty Response") + if self._streaming: + return StreamingResponse(response_gen=empty_response_generator()) + else: + return Response("Empty Response") if isinstance(query, str): query = QueryBundle(query_str=query)