mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-07-02 02:22:55 +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;
|
return definition.OPTIONS.find((option) => option.value === model) ?? null;
|
||||||
}, [providerModelCatalog]);
|
}, [providerModelCatalog]);
|
||||||
|
|
||||||
const getAllowedEffortValues = useCallback((
|
const getEffortOptionsForModel = useCallback((
|
||||||
targetProvider: LLMProvider,
|
targetProvider: LLMProvider,
|
||||||
model: string,
|
model: string,
|
||||||
): string[] => {
|
): NonNullable<ProviderModelOption['effort']>['values'] => {
|
||||||
if (!getSupportsEffortForProvider(targetProvider)) {
|
if (!getSupportsEffortForProvider(targetProvider)) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
const option = getModelOption(targetProvider, model);
|
const option = getModelOption(targetProvider, model);
|
||||||
if (option) {
|
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]);
|
}, [getModelOption, getSupportsEffortForProvider]);
|
||||||
|
|
||||||
|
const getAllowedEffortValues = useCallback((
|
||||||
|
targetProvider: LLMProvider,
|
||||||
|
model: string,
|
||||||
|
): string[] => (
|
||||||
|
getEffortOptionsForModel(targetProvider, model).map((value) => value.value)
|
||||||
|
), [getEffortOptionsForModel]);
|
||||||
|
|
||||||
const reconcileStoredEffort = useCallback((
|
const reconcileStoredEffort = useCallback((
|
||||||
targetProvider: LLMProvider,
|
targetProvider: LLMProvider,
|
||||||
model: string,
|
model: string,
|
||||||
@@ -554,19 +561,16 @@ export function useChatProviderState({ selectedSession, selectedProject: _select
|
|||||||
};
|
};
|
||||||
}, [setStoredProviderModel]);
|
}, [setStoredProviderModel]);
|
||||||
|
|
||||||
const currentProviderEffort = providerEfforts[provider] ?? DEFAULT_EFFORT_VALUE;
|
|
||||||
const currentProviderEffortOptions = useMemo(() => {
|
const currentProviderEffortOptions = useMemo(() => {
|
||||||
if (!getSupportsEffortForProvider(provider)) {
|
return getEffortOptionsForModel(provider, providerModels[provider]);
|
||||||
return [];
|
}, [getEffortOptionsForModel, provider, providerModels]);
|
||||||
}
|
const currentProviderEffort = useMemo(() => {
|
||||||
|
return reconcileStoredEffort(
|
||||||
const option = getModelOption(provider, providerModels[provider]);
|
provider,
|
||||||
if (option) {
|
providerModels[provider],
|
||||||
return option.effort?.values ?? [];
|
providerEfforts[provider] ?? DEFAULT_EFFORT_VALUE,
|
||||||
}
|
);
|
||||||
|
}, [provider, providerEfforts, providerModels, reconcileStoredEffort]);
|
||||||
return toProviderEffortOptions(FALLBACK_PROVIDER_EFFORT_VALUES[provider] ?? []);
|
|
||||||
}, [getModelOption, getSupportsEffortForProvider, provider, providerModels]);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
provider,
|
provider,
|
||||||
|
|||||||
Reference in New Issue
Block a user