diff --git a/backend/apps/web/internal/migrations/010_migrate_modelfiles_to_models.py b/backend/apps/web/internal/migrations/010_migrate_modelfiles_to_models.py index 54dd00740..2ef814c06 100644 --- a/backend/apps/web/internal/migrations/010_migrate_modelfiles_to_models.py +++ b/backend/apps/web/internal/migrations/010_migrate_modelfiles_to_models.py @@ -70,7 +70,7 @@ def migrate_modelfile_to_model(migrator: Migrator, database: pw.Database): # Insert the processed data into the 'model' table Model.create( - id=modelfile.tag_name, + id=f"ollama-{modelfile.tag_name}", user_id=modelfile.user_id, base_model_id=info.get("base_model_id"), name=modelfile.modelfile.get("title"), diff --git a/backend/main.py b/backend/main.py index dca90fc09..aa3004865 100644 --- a/backend/main.py +++ b/backend/main.py @@ -314,10 +314,12 @@ async def get_all_models(): model["name"] = custom_model.name model["info"] = custom_model.model_dump() else: - owned_by = "openai" for model in models: - if custom_model.base_model_id == model["id"]: + if ( + custom_model.base_model_id == model["id"] + or custom_model.base_model_id == model["id"].split(":")[0] + ): owned_by = model["owned_by"] break @@ -329,6 +331,7 @@ async def get_all_models(): "created": custom_model.created_at, "owned_by": owned_by, "info": custom_model.model_dump(), + "preset": True, } ) diff --git a/src/lib/apis/index.ts b/src/lib/apis/index.ts index 6a122f4dc..88c1db3cd 100644 --- a/src/lib/apis/index.ts +++ b/src/lib/apis/index.ts @@ -27,7 +27,23 @@ export const getModels = async (token: string = '') => { let models = res?.data ?? []; - models = models.filter((models) => models).sort((a, b) => (a.name > b.name ? 1 : -1)); + models = models + .filter((models) => models) + .sort((a, b) => { + // Compare case-insensitively + const lowerA = a.name.toLowerCase(); + const lowerB = b.name.toLowerCase(); + + if (lowerA < lowerB) return -1; + if (lowerA > lowerB) return 1; + + // If same case-insensitively, sort by original strings, + // lowercase will come before uppercase due to ASCII values + if (a < b) return -1; + if (a > b) return 1; + + return 0; // They are equal + }); console.log(models); return models; diff --git a/src/lib/components/chat/Settings/Advanced.svelte b/src/lib/components/chat/Settings/Advanced.svelte index 4e0a1ca56..e13a8babc 100644 --- a/src/lib/components/chat/Settings/Advanced.svelte +++ b/src/lib/components/chat/Settings/Advanced.svelte @@ -11,7 +11,7 @@ let requestFormat = ''; let keepAlive = null; - let options = { + let params = { // Advanced seed: 0, temperature: '', @@ -44,14 +44,14 @@ requestFormat = settings.requestFormat ?? ''; keepAlive = settings.keepAlive ?? null; - options.seed = settings.seed ?? 0; - options.temperature = settings.temperature ?? ''; - options.repeat_penalty = settings.repeat_penalty ?? ''; - options.top_k = settings.top_k ?? ''; - options.top_p = settings.top_p ?? ''; - options.num_ctx = settings.num_ctx ?? ''; - options = { ...options, ...settings.options }; - options.stop = (settings?.options?.stop ?? []).join(','); + params.seed = settings.seed ?? 0; + params.temperature = settings.temperature ?? ''; + params.repeat_penalty = settings.repeat_penalty ?? ''; + params.top_k = settings.top_k ?? ''; + params.top_p = settings.top_p ?? ''; + params.num_ctx = settings.num_ctx ?? ''; + params = { ...params, ...settings.params }; + params.stop = (settings?.params?.stop ?? []).join(','); }); @@ -59,7 +59,7 @@