From 07d76dc8719e422c428e9f2ada70f9db18e09c97 Mon Sep 17 00:00:00 2001 From: Akarshan Biswas Date: Thu, 29 May 2025 19:53:02 +0530 Subject: [PATCH] feat: Allow specifying mmproj path during model loading The `loadOptions` interface in `AIEngine.ts` now includes an optional `mmprojPath` property. This allows users to provide a path to their MMProject file when loading a model, which is required for certain model types. The `llamacpp-extension/src/index.ts` has been updated to pass this option to the llamacpp server if provided. --- core/src/browser/extensions/engines/AIEngine.ts | 3 ++- extensions/llamacpp-extension/src/index.ts | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/core/src/browser/extensions/engines/AIEngine.ts b/core/src/browser/extensions/engines/AIEngine.ts index d957e8f41..4259074f7 100644 --- a/core/src/browser/extensions/engines/AIEngine.ts +++ b/core/src/browser/extensions/engines/AIEngine.ts @@ -103,6 +103,7 @@ export type listResult = modelInfo[] export interface loadOptions { modelId: string modelPath: string + mmprojPath?: string port?: number } @@ -181,7 +182,7 @@ export abstract class AIEngine extends BaseExtension { /** * Unloads a model from memory */ - abstract unload(opts: unloadOptions): Promise + abstract unload(sessionId: string): Promise /** * Sends a chat request to the model diff --git a/extensions/llamacpp-extension/src/index.ts b/extensions/llamacpp-extension/src/index.ts index 5d23f0e93..9c17ee4f1 100644 --- a/extensions/llamacpp-extension/src/index.ts +++ b/extensions/llamacpp-extension/src/index.ts @@ -343,6 +343,9 @@ export default class llamacpp_extension extends AIEngine { args.push('-m', opts.modelPath) args.push('-a', opts.modelId) args.push('--port', String(opts.port || 8080)) // Default port if not specified + if (opts.mmprojPath) { + args.push('--mmproj', opts.mmprojPath) + } if (cfg.ctx_size !== undefined) { args.push('-c', String(cfg.ctx_size))