diff --git a/.gitignore b/.gitignore
index 217cb9a7c39fbd17b254dcf403763e02f6e9e102..9eac2c42f8bc163cf589f6681d4c1f85e6496ff4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -143,4 +143,7 @@ modules/
 
 # pipenv
 Pipfile
-Pipfile.lock
\ No newline at end of file
+Pipfile.lock
+
+# pyright
+pyrightconfig.json
diff --git a/llama_index/indices/empty/base.py b/llama_index/indices/empty/base.py
index ca84f46cd08d77cd1bac95045d78d2943e31199f..07dee2679db32ca133e0632c3d6ca663ec4c6e9f 100644
--- a/llama_index/indices/empty/base.py
+++ b/llama_index/indices/empty/base.py
@@ -11,6 +11,7 @@ from llama_index.data_structs.data_structs import EmptyIndexStruct
 from llama_index.data_structs.node import Node
 from llama_index.indices.base import BaseIndex
 from llama_index.indices.base_retriever import BaseRetriever
+from llama_index.indices.query.base import BaseQueryEngine
 from llama_index.indices.service_context import ServiceContext
 from llama_index.storage.docstore.types import RefDocInfo
 
@@ -48,6 +49,15 @@ class EmptyIndex(BaseIndex[EmptyIndexStruct]):
 
         return EmptyIndexRetriever(self)
 
+    def as_query_engine(self, **kwargs: Any) -> BaseQueryEngine:
+        if "response_mode" not in kwargs:
+            kwargs["response_mode"] = "generation"
+        else:
+            if kwargs["response_mode"] != "generation":
+                raise ValueError("EmptyIndex only supports response_mode=generation.")
+
+        return super().as_query_engine(**kwargs)
+
     def _build_index_from_nodes(self, nodes: Sequence[Node]) -> EmptyIndexStruct:
         """Build the index from documents.