refac
This commit is contained in:
@@ -489,6 +489,13 @@ class ModelsConfigForm(BaseModel):
|
|||||||
DEFAULT_MODEL_PARAMS: Optional[dict] = None
|
DEFAULT_MODEL_PARAMS: Optional[dict] = None
|
||||||
|
|
||||||
|
|
||||||
|
@router.get('/models/defaults')
|
||||||
|
async def get_models_defaults(request: Request, user=Depends(get_verified_user)):
|
||||||
|
return {
|
||||||
|
'DEFAULT_MODEL_METADATA': request.app.state.config.DEFAULT_MODEL_METADATA,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@router.get('/models', response_model=ModelsConfigForm)
|
@router.get('/models', response_model=ModelsConfigForm)
|
||||||
async def get_models_config(request: Request, user=Depends(get_admin_user)):
|
async def get_models_config(request: Request, user=Depends(get_admin_user)):
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -442,6 +442,33 @@ export const setCodeExecutionConfig = async (token: string, config: object) => {
|
|||||||
return res;
|
return res;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const getModelsDefaults = async (token: string) => {
|
||||||
|
let error = null;
|
||||||
|
|
||||||
|
const res = await fetch(`${WEBUI_API_BASE_URL}/configs/models/defaults`, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
Authorization: `Bearer ${token}`
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
if (!res.ok) throw await res.json();
|
||||||
|
return res.json();
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.error(err);
|
||||||
|
error = err.detail;
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (error) {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
};
|
||||||
|
|
||||||
export const getModelsConfig = async (token: string) => {
|
export const getModelsConfig = async (token: string) => {
|
||||||
let error = null;
|
let error = null;
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
import { getTools } from '$lib/apis/tools';
|
import { getTools } from '$lib/apis/tools';
|
||||||
import { getFunctions } from '$lib/apis/functions';
|
import { getFunctions } from '$lib/apis/functions';
|
||||||
|
import { getModelsDefaults } from '$lib/apis/configs';
|
||||||
|
|
||||||
import AdvancedParams from '$lib/components/chat/Settings/Advanced/AdvancedParams.svelte';
|
import AdvancedParams from '$lib/components/chat/Settings/Advanced/AdvancedParams.svelte';
|
||||||
import Tags from '$lib/components/common/Tags.svelte';
|
import Tags from '$lib/components/common/Tags.svelte';
|
||||||
@@ -239,6 +240,16 @@
|
|||||||
await tools.set(await getTools(localStorage.token));
|
await tools.set(await getTools(localStorage.token));
|
||||||
await functions.set(await getFunctions(localStorage.token));
|
await functions.set(await getFunctions(localStorage.token));
|
||||||
|
|
||||||
|
// Fetch admin-configured default model metadata so the editor
|
||||||
|
// reflects the actual defaults rather than hardcoded values
|
||||||
|
const modelsConfig = await getModelsDefaults(localStorage.token).catch(() => null);
|
||||||
|
const defaultMeta = modelsConfig?.DEFAULT_MODEL_METADATA ?? {};
|
||||||
|
|
||||||
|
// Use admin defaults as base, falling back to hardcoded defaults
|
||||||
|
capabilities = { ...DEFAULT_CAPABILITIES, ...(defaultMeta.capabilities ?? {}) };
|
||||||
|
defaultFeatureIds = defaultMeta.defaultFeatureIds ?? [];
|
||||||
|
builtinTools = defaultMeta.builtinTools ?? {};
|
||||||
|
|
||||||
// Scroll to top 'workspace-container' element
|
// Scroll to top 'workspace-container' element
|
||||||
const workspaceContainer = document.getElementById('workspace-container');
|
const workspaceContainer = document.getElementById('workspace-container');
|
||||||
if (workspaceContainer) {
|
if (workspaceContainer) {
|
||||||
@@ -301,9 +312,10 @@
|
|||||||
defaultFilterIds = model?.meta?.defaultFilterIds ?? [];
|
defaultFilterIds = model?.meta?.defaultFilterIds ?? [];
|
||||||
actionIds = model?.meta?.actionIds ?? [];
|
actionIds = model?.meta?.actionIds ?? [];
|
||||||
|
|
||||||
|
// Per-model overrides take precedence over admin defaults
|
||||||
capabilities = { ...capabilities, ...(model?.meta?.capabilities ?? {}) };
|
capabilities = { ...capabilities, ...(model?.meta?.capabilities ?? {}) };
|
||||||
defaultFeatureIds = model?.meta?.defaultFeatureIds ?? [];
|
defaultFeatureIds = model?.meta?.defaultFeatureIds ?? defaultFeatureIds;
|
||||||
builtinTools = model?.meta?.builtinTools ?? {};
|
builtinTools = model?.meta?.builtinTools ?? builtinTools;
|
||||||
tts = { voice: model?.meta?.tts?.voice ?? '' };
|
tts = { voice: model?.meta?.tts?.voice ?? '' };
|
||||||
|
|
||||||
accessGrants = model?.access_grants ?? [];
|
accessGrants = model?.access_grants ?? [];
|
||||||
|
|||||||
Reference in New Issue
Block a user