From 8f74286ddd08656de243d5983b8c6dda60ad7787 Mon Sep 17 00:00:00 2001
From: Logan <logan.markewich@live.com>
Date: Wed, 6 Mar 2024 12:10:43 -0600
Subject: [PATCH] Return proper response type in synthesizer (#11701)

---
 .../llama_index/core/response_synthesizers/base.py | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

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 54f85c773f..7c0e9cf0fc 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)
-- 
GitLab