@@ -201,3 +201,41 @@ async def test_search_results_filtering_by_scores(
201
201
assert (
202
202
len (filtered_results ) == expected_result_count
203
203
), f"Expected { expected_result_count } results with minimum_search_score={ minimum_search_score } and minimum_reranker_score={ minimum_reranker_score } "
204
+
205
+ async def test_search_results_query_rewriting (monkeypatch ):
206
+ chat_approach = ChatReadRetrieveReadApproach (
207
+ search_client = SearchClient (endpoint = "" , index_name = "" , credential = AzureKeyCredential ("" )),
208
+ auth_helper = None ,
209
+ openai_client = None ,
210
+ chatgpt_model = "gpt-35-turbo" ,
211
+ chatgpt_deployment = "chat" ,
212
+ embedding_deployment = "embeddings" ,
213
+ embedding_model = MOCK_EMBEDDING_MODEL_NAME ,
214
+ embedding_dimensions = MOCK_EMBEDDING_DIMENSIONS ,
215
+ sourcepage_field = "" ,
216
+ content_field = "" ,
217
+ query_language = "en-us" ,
218
+ query_speller = "lexicon" ,
219
+ prompt_manager = PromptyManager (),
220
+ )
221
+
222
+ query_rewrites = None
223
+ async def validate_qr_and_mock_search (* args , ** kwargs ):
224
+ nonlocal query_rewrites
225
+ query_rewrites = kwargs .get ("query_rewrites" )
226
+ return mock_search (* args , ** kwargs )
227
+
228
+ monkeypatch .setattr (SearchClient , "search" , validate_qr_and_mock_search )
229
+
230
+ results = await chat_approach .search (
231
+ top = 10 ,
232
+ query_text = "test query" ,
233
+ filter = None ,
234
+ vectors = [],
235
+ use_text_search = True ,
236
+ use_vector_search = True ,
237
+ use_semantic_ranker = True ,
238
+ use_semantic_captions = True ,
239
+ use_query_rewrites = True )
240
+ assert len (results ) == 1
241
+ assert query_rewrites == "generative"
0 commit comments