Skip to content

Commit 016563e

Browse files
committed
[Log] Add setLogLevel to Engine Interface
1 parent b4bc112 commit 016563e

File tree

6 files changed

+44
-21
lines changed

6 files changed

+44
-21
lines changed

src/engine.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ export async function CreateMLCEngine(
6363
modelId: string,
6464
engineConfig?: MLCEngineConfig,
6565
): Promise<MLCEngine> {
66-
log.setLevel(engineConfig?.logLevel || DefaultLogLevel);
6766
const engine = new MLCEngine();
67+
engine.setLogLevel(engineConfig?.logLevel || DefaultLogLevel);
6868
engine.setInitProgressCallback(engineConfig?.initProgressCallback);
6969
engine.setLogitProcessorRegistry(engineConfig?.logitProcessorRegistry);
7070
await engine.reload(modelId, engineConfig?.chatOpts, engineConfig?.appConfig);
@@ -640,6 +640,15 @@ export class MLCEngine implements MLCEngineInterface {
640640
return this.getPipeline().getMessage();
641641
}
642642

643+
/**
644+
* Set MLCEngine logging output level
645+
*
646+
* @param logLevel The new log level
647+
*/
648+
setLogLevel(logLevel: LogLevel) {
649+
log.setLevel(logLevel);
650+
}
651+
643652
/**
644653
* Get a new Conversation object based on the chat completion request.
645654
*

src/extension_service_worker.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,10 @@ export async function CreateServiceWorkerMLCEngine(
140140
engineConfig?: MLCEngineConfig,
141141
keepAliveMs = 10000,
142142
): Promise<ServiceWorkerMLCEngine> {
143-
const serviceWorkerMLCEngine = new ServiceWorkerMLCEngine(
144-
keepAliveMs,
145-
engineConfig?.logLevel,
146-
);
143+
const serviceWorkerMLCEngine = new ServiceWorkerMLCEngine(keepAliveMs);
144+
if (engineConfig?.logLevel) {
145+
serviceWorkerMLCEngine.setLogLevel(engineConfig.logLevel);
146+
}
147147
serviceWorkerMLCEngine.setInitProgressCallback(
148148
engineConfig?.initProgressCallback,
149149
);
@@ -192,10 +192,10 @@ class PortAdapter implements ChatWorker {
192192
export class ServiceWorkerMLCEngine extends WebWorkerMLCEngine {
193193
port: chrome.runtime.Port;
194194

195-
constructor(keepAliveMs = 10000, logLevel: LogLevel = "WARN") {
195+
constructor(keepAliveMs = 10000) {
196196
const port = chrome.runtime.connect({ name: "web_llm_service_worker" });
197197
const chatWorker = new PortAdapter(port);
198-
super(chatWorker, logLevel);
198+
super(chatWorker);
199199
this.port = port;
200200
setInterval(() => {
201201
this.keepAlive();

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export {
1414
InitProgressReport,
1515
MLCEngineInterface,
1616
LogitProcessor,
17+
LogLevel,
1718
} from "./types";
1819

1920
export { MLCEngine, CreateMLCEngine } from "./engine";

src/service_worker.ts

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -206,11 +206,10 @@ export async function CreateServiceWorkerMLCEngine(
206206
"Please refresh the page to retry initializing the service worker.",
207207
);
208208
}
209-
const serviceWorkerMLCEngine = new ServiceWorkerMLCEngine(
210-
serviceWorker,
211-
undefined,
212-
engineConfig?.logLevel,
213-
);
209+
const serviceWorkerMLCEngine = new ServiceWorkerMLCEngine(serviceWorker);
210+
if (engineConfig?.logLevel) {
211+
serviceWorkerMLCEngine.setLogLevel(engineConfig.logLevel);
212+
}
214213
serviceWorkerMLCEngine.setInitProgressCallback(
215214
engineConfig?.initProgressCallback,
216215
);
@@ -228,15 +227,11 @@ export async function CreateServiceWorkerMLCEngine(
228227
export class ServiceWorkerMLCEngine extends WebWorkerMLCEngine {
229228
missedHeatbeat = 0;
230229

231-
constructor(
232-
worker: IServiceWorker,
233-
keepAliveMs = 10000,
234-
logLevel: LogLevel = "WARN",
235-
) {
230+
constructor(worker: IServiceWorker, keepAliveMs = 10000) {
236231
if (!("serviceWorker" in navigator)) {
237232
throw new Error("Service worker API is not available");
238233
}
239-
super(new ServiceWorker(worker), logLevel);
234+
super(new ServiceWorker(worker));
240235
const onmessage = this.onmessage.bind(this);
241236

242237
(navigator.serviceWorker as ServiceWorkerContainer).addEventListener(

src/types.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,21 @@ export interface MLCEngineInterface {
194194
inputIds: Array<number>,
195195
isPrefill: boolean,
196196
): Promise<number>;
197+
198+
/**
199+
* Set MLCEngine logging output level
200+
*
201+
* @param logLevel The new log level
202+
*/
203+
setLogLevel(logLevel: LogLevel): void;
197204
}
198205

199-
export type LogLevel = "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR" | "SILENT";
206+
export const LOG_LEVELS = {
207+
TRACE: 0,
208+
DEBUG: 1,
209+
INFO: 2,
210+
WARN: 3,
211+
ERROR: 4,
212+
SILENT: 5,
213+
};
214+
export type LogLevel = keyof typeof LOG_LEVELS;

src/web_worker.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -350,8 +350,7 @@ export class WebWorkerMLCEngine implements MLCEngineInterface {
350350
>();
351351
private pendingPromise = new Map<string, (msg: WorkerResponse) => void>();
352352

353-
constructor(worker: ChatWorker, logLevel: LogLevel = "WARN") {
354-
log.setLevel(logLevel);
353+
constructor(worker: ChatWorker) {
355354
this.worker = worker;
356355
worker.onmessage = (event: any) => {
357356
this.onmessage.bind(this)(event);
@@ -627,4 +626,8 @@ export class WebWorkerMLCEngine implements MLCEngineInterface {
627626
}
628627
}
629628
}
629+
630+
setLogLevel(logLevel: LogLevel) {
631+
log.setLevel(logLevel);
632+
}
630633
}

0 commit comments

Comments
 (0)