Skip to content

Commit 2b57049

Browse files
committed
update
1 parent 79cb03d commit 2b57049

File tree

8 files changed

+48
-2
lines changed

8 files changed

+48
-2
lines changed

app/backend/approaches/approach.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ async def search(
149149
use_semantic_captions: bool,
150150
minimum_search_score: Optional[float],
151151
minimum_reranker_score: Optional[float],
152-
use_query_rewriting: Optional[bool]
152+
use_query_rewriting: Optional[bool] = None
153153
) -> List[Document]:
154154
search_text = query_text if use_text_search else ""
155155
search_vectors = vectors if use_vector_search else []

app/backend/approaches/chatreadretrieveread.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ async def run_until_final_call(
192192
{
193193
"use_semantic_captions": use_semantic_captions,
194194
"use_semantic_ranker": use_semantic_ranker,
195+
"use_query_rewriting": use_query_rewriting,
195196
"top": top,
196197
"filter": filter,
197198
"use_vector_search": use_vector_search,

app/backend/approaches/chatreadretrievereadvision.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ async def run_until_final_call(
209209
{
210210
"use_semantic_captions": use_semantic_captions,
211211
"use_semantic_ranker": use_semantic_ranker,
212+
"use_query_rewriting": use_query_rewriting,
212213
"top": top,
213214
"filter": filter,
214215
"vector_fields": vector_fields,

app/backend/approaches/retrievethenread.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ async def run(
120120
{
121121
"use_semantic_captions": use_semantic_captions,
122122
"use_semantic_ranker": use_semantic_ranker,
123+
"use_query_rewriting": use_query_rewriting,
123124
"top": top,
124125
"filter": filter,
125126
"use_vector_search": use_vector_search,

app/backend/approaches/retrievethenreadvision.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ async def run(
147147
{
148148
"use_semantic_captions": use_semantic_captions,
149149
"use_semantic_ranker": use_semantic_ranker,
150+
"use_query_rewriting": use_query_rewriting,
150151
"top": top,
151152
"filter": filter,
152153
"vector_fields": vector_fields,

infra/main.bicep

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ param searchServiceSemanticRankerLevel string // Set in main.parameters.json
3030
var actualSearchServiceSemanticRankerLevel = (searchServiceSkuName == 'free')
3131
? 'disabled'
3232
: searchServiceSemanticRankerLevel
33-
33+
param searchServiceQueryRewriting string // Set in main.parameters.json
3434
param storageAccountName string = '' // Set in main.parameters.json
3535
param storageResourceGroupName string = '' // Set in main.parameters.json
3636
param storageResourceGroupLocation string = location
@@ -375,6 +375,7 @@ var appEnvVariables = {
375375
AZURE_SEARCH_INDEX: searchIndexName
376376
AZURE_SEARCH_SERVICE: searchService.outputs.name
377377
AZURE_SEARCH_SEMANTIC_RANKER: actualSearchServiceSemanticRankerLevel
378+
AZURE_SEARCH_QUERY_REWRITING: searchServiceQueryRewriting
378379
AZURE_VISION_ENDPOINT: useGPT4V ? computerVision.outputs.endpoint : ''
379380
AZURE_SEARCH_QUERY_LANGUAGE: searchQueryLanguage
380381
AZURE_SEARCH_QUERY_SPELLER: searchQuerySpeller

infra/main.parameters.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@
8080
"searchServiceSemanticRankerLevel": {
8181
"value": "${AZURE_SEARCH_SEMANTIC_RANKER=free}"
8282
},
83+
"searchServiceQueryRewriting": {
84+
"value": "${AZURE_SEARCH_QUERY_REWRITING}"
85+
},
8386
"storageAccountName": {
8487
"value": "${AZURE_STORAGE_ACCOUNT}"
8588
},

tests/test_chatapproach.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,3 +201,41 @@ async def test_search_results_filtering_by_scores(
201201
assert (
202202
len(filtered_results) == expected_result_count
203203
), 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

Comments
 (0)