@@ -62,6 +62,8 @@ class SelfQueryRetriever(BaseRetriever, BaseModel):
62
62
structured_query_translator : Visitor
63
63
"""Translator for turning internal query language into vectorstore search params."""
64
64
verbose : bool = False
65
+ """Use original query instead of the revised new query from LLM"""
66
+ use_original_query : bool = False
65
67
66
68
class Config :
67
69
"""Configuration for this pydantic object."""
@@ -100,6 +102,9 @@ def get_relevant_documents(
100
102
)
101
103
if structured_query .limit is not None :
102
104
new_kwargs ["k" ] = structured_query .limit
105
+
106
+ if self .use_original_query :
107
+ new_query = query
103
108
104
109
search_kwargs = {** self .search_kwargs , ** new_kwargs }
105
110
docs = self .vectorstore .search (new_query , self .search_type , ** search_kwargs )
@@ -118,6 +123,7 @@ def from_llm(
118
123
structured_query_translator : Optional [Visitor ] = None ,
119
124
chain_kwargs : Optional [Dict ] = None ,
120
125
enable_limit : bool = False ,
126
+ use_original_query : bool = False ,
121
127
** kwargs : Any ,
122
128
) -> "SelfQueryRetriever" :
123
129
if structured_query_translator is None :
@@ -142,6 +148,7 @@ def from_llm(
142
148
return cls (
143
149
llm_chain = llm_chain ,
144
150
vectorstore = vectorstore ,
151
+ use_original_query = use_original_query ,
145
152
structured_query_translator = structured_query_translator ,
146
153
** kwargs ,
147
154
)
0 commit comments