feat: add ai overview minimum number of search results configuration (#625)

* feat: add ai overview minimum number of search results configuration

* docs: update changelog

* style: remove unless code
This commit is contained in:
ayangweb
2025-06-06 17:05:20 +08:00
committed by GitHub
parent 9eac8f8a8e
commit eddf9075bb
5 changed files with 29 additions and 1 deletions

View File

@@ -17,6 +17,7 @@ Information about release notes of Coco Server is provided here.
- feat: add key monitoring during reset #615 - feat: add key monitoring during reset #615
- feat: calculator extension add description #623 - feat: calculator extension add description #623
- feat: support right-click actions after text selection #624 - feat: support right-click actions after text selection #624
- feat: add ai overview minimum number of search results configuration #625
### 🐛 Bug fix ### 🐛 Bug fix

View File

@@ -27,6 +27,12 @@ const AiOverview = () => {
const setAiOverviewDelay = useExtensionsStore((state) => { const setAiOverviewDelay = useExtensionsStore((state) => {
return state.setAiOverviewDelay; return state.setAiOverviewDelay;
}); });
const aiOverviewMinQuantity = useExtensionsStore((state) => {
return state.aiOverviewMinQuantity;
});
const setAiOverviewMinQuantity = useExtensionsStore((state) => {
return state.setAiOverviewMinQuantity;
});
const inputList = [ const inputList = [
{ {
@@ -39,6 +45,11 @@ const AiOverview = () => {
value: aiOverviewDelay, value: aiOverviewDelay,
onChange: setAiOverviewDelay, onChange: setAiOverviewDelay,
}, },
{
label: "Minimum Number of Search Results",
value: aiOverviewMinQuantity,
onChange: setAiOverviewMinQuantity,
},
]; ];
return ( return (

View File

@@ -47,6 +47,9 @@ export function useSearch() {
const aiOverviewDelay = useExtensionsStore((state) => { const aiOverviewDelay = useExtensionsStore((state) => {
return state.aiOverviewDelay; return state.aiOverviewDelay;
}); });
const aiOverviewMinQuantity = useExtensionsStore((state) => {
return state.aiOverviewMinQuantity;
});
const { querySourceTimeout } = useConnectStore(); const { querySourceTimeout } = useConnectStore();
@@ -106,7 +109,7 @@ export function useSearch() {
enabledAiOverview && enabledAiOverview &&
aiOverviewServer && aiOverviewServer &&
aiOverviewAssistant && aiOverviewAssistant &&
filteredData.length > 5 && filteredData.length >= aiOverviewMinQuantity &&
!disabledExtensions.includes("AIOverview") !disabledExtensions.includes("AIOverview")
) { ) {
timerRef.current = setTimeout(() => { timerRef.current = setTimeout(() => {
@@ -210,6 +213,7 @@ export function useSearch() {
disabledExtensions, disabledExtensions,
aiOverviewCharLen, aiOverviewCharLen,
aiOverviewDelay, aiOverviewDelay,
aiOverviewMinQuantity,
] ]
); );

View File

@@ -109,6 +109,9 @@ export const useSyncStore = () => {
return state.setAiOverviewDelay; return state.setAiOverviewDelay;
}); });
const setAiOverview = useShortcutsStore((state) => state.setAiOverview); const setAiOverview = useShortcutsStore((state) => state.setAiOverview);
const setAiOverviewMinQuantity = useExtensionsStore((state) => {
return state.setAiOverviewMinQuantity;
});
useEffect(() => { useEffect(() => {
if (!resetFixedWindow) { if (!resetFixedWindow) {
@@ -201,6 +204,7 @@ export const useSyncStore = () => {
disabledExtensions, disabledExtensions,
aiOverviewCharLen, aiOverviewCharLen,
aiOverviewDelay, aiOverviewDelay,
aiOverviewMinQuantity,
} = payload; } = payload;
setQuickAiAccessServer(quickAiAccessServer); setQuickAiAccessServer(quickAiAccessServer);
@@ -210,6 +214,7 @@ export const useSyncStore = () => {
setDisabledExtensions(disabledExtensions); setDisabledExtensions(disabledExtensions);
setAiOverviewCharLen(aiOverviewCharLen); setAiOverviewCharLen(aiOverviewCharLen);
setAiOverviewDelay(aiOverviewDelay); setAiOverviewDelay(aiOverviewDelay);
setAiOverviewMinQuantity(aiOverviewMinQuantity);
}), }),
]); ]);

View File

@@ -17,6 +17,8 @@ export type IExtensionsStore = {
setAiOverviewCharLen: (aiOverviewCharLen: number) => void; setAiOverviewCharLen: (aiOverviewCharLen: number) => void;
aiOverviewDelay: number; aiOverviewDelay: number;
setAiOverviewDelay: (aiOverviewDelay: number) => void; setAiOverviewDelay: (aiOverviewDelay: number) => void;
aiOverviewMinQuantity: number;
setAiOverviewMinQuantity: (aiOverviewMinQuantity: number) => void;
}; };
export const useExtensionsStore = create<IExtensionsStore>()( export const useExtensionsStore = create<IExtensionsStore>()(
@@ -47,6 +49,10 @@ export const useExtensionsStore = create<IExtensionsStore>()(
setAiOverviewDelay(aiOverviewDelay) { setAiOverviewDelay(aiOverviewDelay) {
return set({ aiOverviewDelay }); return set({ aiOverviewDelay });
}, },
aiOverviewMinQuantity: 5,
setAiOverviewMinQuantity(aiOverviewMinQuantity) {
return set({ aiOverviewMinQuantity });
},
}), }),
{ {
name: "extensions-store", name: "extensions-store",
@@ -57,6 +63,7 @@ export const useExtensionsStore = create<IExtensionsStore>()(
aiOverviewAssistant: state.aiOverviewAssistant, aiOverviewAssistant: state.aiOverviewAssistant,
aiOverviewCharLen: state.aiOverviewCharLen, aiOverviewCharLen: state.aiOverviewCharLen,
aiOverviewDelay: state.aiOverviewDelay, aiOverviewDelay: state.aiOverviewDelay,
aiOverviewMinQuantity: state.aiOverviewMinQuantity,
}), }),
} }
) )