feat: add visionModelPreview to control default visibility of vision models

This commit is contained in:
mingholy.lmh
2025-09-17 20:58:54 +08:00
parent caedd8338f
commit a8ca4ebf89
7 changed files with 91 additions and 13 deletions

View File

@@ -63,12 +63,18 @@ export function shouldOfferVisionSwitch(
parts: PartListUnion,
authType: AuthType,
currentModel: string,
visionModelPreviewEnabled: boolean = false,
): boolean {
// Only trigger for qwen-oauth
if (authType !== AuthType.QWEN_OAUTH) {
return false;
}
// If vision model preview is disabled, never offer vision switch
if (!visionModelPreviewEnabled) {
return false;
}
// If current model is already a vision model, no need to switch
if (isVisionModel(currentModel)) {
return false;
@@ -134,6 +140,7 @@ export interface VisionSwitchHandlingResult {
export function useVisionAutoSwitch(
config: Config,
addItem: UseHistoryManagerReturn['addItem'],
visionModelPreviewEnabled: boolean = false,
onVisionSwitchRequired?: (query: PartListUnion) => Promise<{
modelOverride?: string;
persistSessionModel?: string;
@@ -166,6 +173,7 @@ export function useVisionAutoSwitch(
query,
contentGeneratorConfig.authType,
config.getModel(),
visionModelPreviewEnabled,
)
) {
return { shouldProceed: true };
@@ -206,7 +214,7 @@ export function useVisionAutoSwitch(
return { shouldProceed: false };
}
},
[config, addItem, onVisionSwitchRequired],
[config, addItem, visionModelPreviewEnabled, onVisionSwitchRequired],
);
const restoreOriginalModel = useCallback(() => {