mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-07-01 18:13:03 +08:00
fix: reconcile provider effort after model changes
This commit is contained in:
@@ -312,22 +312,29 @@ export function useChatProviderState({ selectedSession, selectedProject: _select
|
||||
return definition.OPTIONS.find((option) => option.value === model) ?? null;
|
||||
}, [providerModelCatalog]);
|
||||
|
||||
const getAllowedEffortValues = useCallback((
|
||||
const getEffortOptionsForModel = useCallback((
|
||||
targetProvider: LLMProvider,
|
||||
model: string,
|
||||
): string[] => {
|
||||
): NonNullable<ProviderModelOption['effort']>['values'] => {
|
||||
if (!getSupportsEffortForProvider(targetProvider)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const option = getModelOption(targetProvider, model);
|
||||
if (option) {
|
||||
return option.effort?.values.map((value) => value.value) ?? [];
|
||||
return option.effort?.values ?? [];
|
||||
}
|
||||
|
||||
return [...(FALLBACK_PROVIDER_EFFORT_VALUES[targetProvider] ?? [])];
|
||||
return toProviderEffortOptions(FALLBACK_PROVIDER_EFFORT_VALUES[targetProvider] ?? []);
|
||||
}, [getModelOption, getSupportsEffortForProvider]);
|
||||
|
||||
const getAllowedEffortValues = useCallback((
|
||||
targetProvider: LLMProvider,
|
||||
model: string,
|
||||
): string[] => (
|
||||
getEffortOptionsForModel(targetProvider, model).map((value) => value.value)
|
||||
), [getEffortOptionsForModel]);
|
||||
|
||||
const reconcileStoredEffort = useCallback((
|
||||
targetProvider: LLMProvider,
|
||||
model: string,
|
||||
@@ -554,19 +561,16 @@ export function useChatProviderState({ selectedSession, selectedProject: _select
|
||||
};
|
||||
}, [setStoredProviderModel]);
|
||||
|
||||
const currentProviderEffort = providerEfforts[provider] ?? DEFAULT_EFFORT_VALUE;
|
||||
const currentProviderEffortOptions = useMemo(() => {
|
||||
if (!getSupportsEffortForProvider(provider)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const option = getModelOption(provider, providerModels[provider]);
|
||||
if (option) {
|
||||
return option.effort?.values ?? [];
|
||||
}
|
||||
|
||||
return toProviderEffortOptions(FALLBACK_PROVIDER_EFFORT_VALUES[provider] ?? []);
|
||||
}, [getModelOption, getSupportsEffortForProvider, provider, providerModels]);
|
||||
return getEffortOptionsForModel(provider, providerModels[provider]);
|
||||
}, [getEffortOptionsForModel, provider, providerModels]);
|
||||
const currentProviderEffort = useMemo(() => {
|
||||
return reconcileStoredEffort(
|
||||
provider,
|
||||
providerModels[provider],
|
||||
providerEfforts[provider] ?? DEFAULT_EFFORT_VALUE,
|
||||
);
|
||||
}, [provider, providerEfforts, providerModels, reconcileStoredEffort]);
|
||||
|
||||
return {
|
||||
provider,
|
||||
|
||||
Reference in New Issue
Block a user