Skip to content

Commit 5656e4c

Browse files
committed
update
1 parent 5491c1d commit 5656e4c

File tree

7 files changed

+42
-2
lines changed

7 files changed

+42
-2
lines changed

app/backend/approaches/chatreadretrieveread.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ async def run_agentic_retrieval_approach(
234234
minimum_reranker_score = overrides.get("minimum_reranker_score", 0)
235235
search_index_filter = self.build_filter(overrides, auth_claims)
236236
top = overrides.get("top", 3)
237-
max_subqueries = overrides.get("max_subqueries", 3)
237+
max_subqueries = overrides.get("max_subqueries", 10)
238238
# 50 is the amount of documents that the reranker can process per query
239239
max_docs_for_reranker = max_subqueries * 50
240240

app/backend/approaches/retrievethenread.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ async def run_agentic_retrieval_approach(
185185
minimum_reranker_score = overrides.get("minimum_reranker_score", 0)
186186
search_index_filter = self.build_filter(overrides, auth_claims)
187187
top = overrides.get("top", 3)
188-
max_subqueries = overrides.get("max_subqueries", 3)
188+
max_subqueries = overrides.get("max_subqueries", 10)
189189
# 50 is the amount of documents that the reranker can process per query
190190
max_docs_for_reranker = max_subqueries * 50
191191

app/frontend/src/api/models.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export type ChatAppRequestOverrides = {
2626
exclude_category?: string;
2727
seed?: number;
2828
top?: number;
29+
max_subqueries?: number;
2930
temperature?: number;
3031
minimum_search_score?: number;
3132
minimum_reranker_score?: number;

app/frontend/src/components/Settings/Settings.tsx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export interface SettingsProps {
1414
promptTemplate: string;
1515
temperature: number;
1616
retrieveCount: number;
17+
maxSubqueryCount: number;
1718
seed: number | null;
1819
minimumSearchScore: number;
1920
minimumRerankerScore: number;
@@ -53,6 +54,7 @@ export const Settings = ({
5354
promptTemplate,
5455
temperature,
5556
retrieveCount,
57+
maxSubqueryCount,
5658
seed,
5759
minimumSearchScore,
5860
minimumRerankerScore,
@@ -104,6 +106,8 @@ export const Settings = ({
104106
const rerankerScoreFieldId = useId("rerankerScoreField");
105107
const retrieveCountId = useId("retrieveCount");
106108
const retrieveCountFieldId = useId("retrieveCountField");
109+
const maxSubqueryCountId = useId("maxSubqueryCount");
110+
const maxSubqueryCountFieldId = useId("maxSubqueryCountField");
107111
const includeCategoryId = useId("includeCategory");
108112
const includeCategoryFieldId = useId("includeCategoryField");
109113
const excludeCategoryId = useId("excludeCategory");
@@ -208,6 +212,21 @@ export const Settings = ({
208212
/>
209213
)}
210214

215+
{showAgenticRetrievalOption && useAgenticRetrieval && (
216+
<TextField
217+
id={maxSubqueryCountFieldId}
218+
className={styles.settingsSeparator}
219+
label={t("labels.maxSubqueryCount")}
220+
type="number"
221+
min={1}
222+
max={20}
223+
defaultValue={maxSubqueryCount.toString()}
224+
onChange={(_ev, val) => onChange("maxSubqueryCount", parseInt(val || "10"))}
225+
aria-labelledby={maxSubqueryCountId}
226+
onRenderLabel={props => renderLabel(props, maxSubqueryCountId, maxSubqueryCountFieldId, t("helpTexts.maxSubqueryCount"))}
227+
/>
228+
)}
229+
211230
<TextField
212231
id={retrieveCountFieldId}
213232
className={styles.settingsSeparator}

app/frontend/src/locales/en/translation.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
"minimumSearchScore": "Minimum search score",
8484
"minimumRerankerScore": "Minimum reranker score",
8585
"retrieveCount": "Retrieve this many search results:",
86+
"maxSubqueryCount": "Max subqueries",
8687
"includeCategory": "Include category",
8788
"includeCategoryOptions": {
8889
"all": "All"
@@ -141,6 +142,8 @@
141142
"Sets a minimum score for search results coming back from the semantic reranker. The score always ranges between 0-4. The higher the score, the more semantically relevant the result is to the question.",
142143
"retrieveNumber":
143144
"Sets the number of search results to retrieve from Azure AI search. More results may increase the likelihood of finding the correct answer, but may lead to the model getting 'lost in the middle'.",
145+
"maxSubqueryCount":
146+
"Sets the maximum number of subqueries to use for the agentic retrieval query plan.",
144147
"includeCategory":
145148
"Specifies a category to include in the search results. There are no categories used in the default data set.",
146149
"excludeCategory":

app/frontend/src/pages/ask/Ask.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export function Component(): JSX.Element {
3030
const [minimumSearchScore, setMinimumSearchScore] = useState<number>(0);
3131
const [retrievalMode, setRetrievalMode] = useState<RetrievalMode>(RetrievalMode.Hybrid);
3232
const [retrieveCount, setRetrieveCount] = useState<number>(3);
33+
const [maxSubqueryCount, setMaxSubqueryCount] = useState<number>(10);
3334
const [useSemanticRanker, setUseSemanticRanker] = useState<boolean>(true);
3435
const [useSemanticCaptions, setUseSemanticCaptions] = useState<boolean>(false);
3536
const [useQueryRewriting, setUseQueryRewriting] = useState<boolean>(false);
@@ -101,6 +102,9 @@ export function Component(): JSX.Element {
101102
setShowSpeechOutputAzure(config.showSpeechOutputAzure);
102103
setShowAgenticRetrievalOption(config.showAgenticRetrievalOption);
103104
setUseAgenticRetrieval(config.showAgenticRetrievalOption);
105+
if (config.showAgenticRetrievalOption) {
106+
setRetrieveCount(25);
107+
}
104108
});
105109
};
106110

@@ -134,6 +138,7 @@ export function Component(): JSX.Element {
134138
include_category: includeCategory.length === 0 ? undefined : includeCategory,
135139
exclude_category: excludeCategory.length === 0 ? undefined : excludeCategory,
136140
top: retrieveCount,
141+
max_subqueries: maxSubqueryCount,
137142
temperature: temperature,
138143
minimum_reranker_score: minimumRerankerScore,
139144
minimum_search_score: minimumSearchScore,
@@ -191,6 +196,9 @@ export function Component(): JSX.Element {
191196
case "retrieveCount":
192197
setRetrieveCount(value);
193198
break;
199+
case "maxSubqueryCount":
200+
setMaxSubqueryCount(value);
201+
break;
194202
case "useSemanticRanker":
195203
setUseSemanticRanker(value);
196204
break;
@@ -341,6 +349,7 @@ export function Component(): JSX.Element {
341349
promptTemplateSuffix={promptTemplateSuffix}
342350
temperature={temperature}
343351
retrieveCount={retrieveCount}
352+
maxSubqueryCount={maxSubqueryCount}
344353
seed={seed}
345354
minimumSearchScore={minimumSearchScore}
346355
minimumRerankerScore={minimumRerankerScore}

app/frontend/src/pages/chat/Chat.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ const Chat = () => {
4646
const [minimumRerankerScore, setMinimumRerankerScore] = useState<number>(0);
4747
const [minimumSearchScore, setMinimumSearchScore] = useState<number>(0);
4848
const [retrieveCount, setRetrieveCount] = useState<number>(3);
49+
const [maxSubqueryCount, setMaxSubqueryCount] = useState<number>(10);
4950
const [retrievalMode, setRetrievalMode] = useState<RetrievalMode>(RetrievalMode.Hybrid);
5051
const [useSemanticRanker, setUseSemanticRanker] = useState<boolean>(true);
5152
const [useQueryRewriting, setUseQueryRewriting] = useState<boolean>(false);
@@ -134,6 +135,9 @@ const Chat = () => {
134135
setShowChatHistoryCosmos(config.showChatHistoryCosmos);
135136
setShowAgenticRetrievalOption(config.showAgenticRetrievalOption);
136137
setUseAgenticRetrieval(config.showAgenticRetrievalOption);
138+
if (config.showAgenticRetrievalOption) {
139+
setRetrieveCount(25);
140+
}
137141
});
138142
};
139143

@@ -308,6 +312,9 @@ const Chat = () => {
308312
case "retrieveCount":
309313
setRetrieveCount(value);
310314
break;
315+
case "maxSubqueryCount":
316+
setMaxSubqueryCount(value);
317+
break;
311318
case "useSemanticRanker":
312319
setUseSemanticRanker(value);
313320
break;
@@ -529,6 +536,7 @@ const Chat = () => {
529536
promptTemplate={promptTemplate}
530537
temperature={temperature}
531538
retrieveCount={retrieveCount}
539+
maxSubqueryCount={maxSubqueryCount}
532540
seed={seed}
533541
minimumSearchScore={minimumSearchScore}
534542
minimumRerankerScore={minimumRerankerScore}

0 commit comments

Comments
 (0)