File tree Expand file tree Collapse file tree 6 files changed +44
-21
lines changed Expand file tree Collapse file tree 6 files changed +44
-21
lines changed Original file line number Diff line number Diff line change @@ -63,8 +63,8 @@ export async function CreateMLCEngine(
63
63
modelId : string ,
64
64
engineConfig ?: MLCEngineConfig ,
65
65
) : Promise < MLCEngine > {
66
- log . setLevel ( engineConfig ?. logLevel || DefaultLogLevel ) ;
67
66
const engine = new MLCEngine ( ) ;
67
+ engine . setLogLevel ( engineConfig ?. logLevel || DefaultLogLevel ) ;
68
68
engine . setInitProgressCallback ( engineConfig ?. initProgressCallback ) ;
69
69
engine . setLogitProcessorRegistry ( engineConfig ?. logitProcessorRegistry ) ;
70
70
await engine . reload ( modelId , engineConfig ?. chatOpts , engineConfig ?. appConfig ) ;
@@ -640,6 +640,15 @@ export class MLCEngine implements MLCEngineInterface {
640
640
return this . getPipeline ( ) . getMessage ( ) ;
641
641
}
642
642
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
+
643
652
/**
644
653
* Get a new Conversation object based on the chat completion request.
645
654
*
Original file line number Diff line number Diff line change @@ -140,10 +140,10 @@ export async function CreateServiceWorkerMLCEngine(
140
140
engineConfig ?: MLCEngineConfig ,
141
141
keepAliveMs = 10000 ,
142
142
) : 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
+ }
147
147
serviceWorkerMLCEngine . setInitProgressCallback (
148
148
engineConfig ?. initProgressCallback ,
149
149
) ;
@@ -192,10 +192,10 @@ class PortAdapter implements ChatWorker {
192
192
export class ServiceWorkerMLCEngine extends WebWorkerMLCEngine {
193
193
port : chrome . runtime . Port ;
194
194
195
- constructor ( keepAliveMs = 10000 , logLevel : LogLevel = "WARN" ) {
195
+ constructor ( keepAliveMs = 10000 ) {
196
196
const port = chrome . runtime . connect ( { name : "web_llm_service_worker" } ) ;
197
197
const chatWorker = new PortAdapter ( port ) ;
198
- super ( chatWorker , logLevel ) ;
198
+ super ( chatWorker ) ;
199
199
this . port = port ;
200
200
setInterval ( ( ) => {
201
201
this . keepAlive ( ) ;
Original file line number Diff line number Diff line change @@ -14,6 +14,7 @@ export {
14
14
InitProgressReport ,
15
15
MLCEngineInterface ,
16
16
LogitProcessor ,
17
+ LogLevel ,
17
18
} from "./types" ;
18
19
19
20
export { MLCEngine , CreateMLCEngine } from "./engine" ;
Original file line number Diff line number Diff line change @@ -206,11 +206,10 @@ export async function CreateServiceWorkerMLCEngine(
206
206
"Please refresh the page to retry initializing the service worker." ,
207
207
) ;
208
208
}
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
+ }
214
213
serviceWorkerMLCEngine . setInitProgressCallback (
215
214
engineConfig ?. initProgressCallback ,
216
215
) ;
@@ -228,15 +227,11 @@ export async function CreateServiceWorkerMLCEngine(
228
227
export class ServiceWorkerMLCEngine extends WebWorkerMLCEngine {
229
228
missedHeatbeat = 0 ;
230
229
231
- constructor (
232
- worker : IServiceWorker ,
233
- keepAliveMs = 10000 ,
234
- logLevel : LogLevel = "WARN" ,
235
- ) {
230
+ constructor ( worker : IServiceWorker , keepAliveMs = 10000 ) {
236
231
if ( ! ( "serviceWorker" in navigator ) ) {
237
232
throw new Error ( "Service worker API is not available" ) ;
238
233
}
239
- super ( new ServiceWorker ( worker ) , logLevel ) ;
234
+ super ( new ServiceWorker ( worker ) ) ;
240
235
const onmessage = this . onmessage . bind ( this ) ;
241
236
242
237
( navigator . serviceWorker as ServiceWorkerContainer ) . addEventListener (
Original file line number Diff line number Diff line change @@ -194,6 +194,21 @@ export interface MLCEngineInterface {
194
194
inputIds : Array < number > ,
195
195
isPrefill : boolean ,
196
196
) : Promise < number > ;
197
+
198
+ /**
199
+ * Set MLCEngine logging output level
200
+ *
201
+ * @param logLevel The new log level
202
+ */
203
+ setLogLevel ( logLevel : LogLevel ) : void ;
197
204
}
198
205
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 ;
Original file line number Diff line number Diff line change @@ -350,8 +350,7 @@ export class WebWorkerMLCEngine implements MLCEngineInterface {
350
350
> ( ) ;
351
351
private pendingPromise = new Map < string , ( msg : WorkerResponse ) => void > ( ) ;
352
352
353
- constructor ( worker : ChatWorker , logLevel : LogLevel = "WARN" ) {
354
- log . setLevel ( logLevel ) ;
353
+ constructor ( worker : ChatWorker ) {
355
354
this . worker = worker ;
356
355
worker . onmessage = ( event : any ) => {
357
356
this . onmessage . bind ( this ) ( event ) ;
@@ -627,4 +626,8 @@ export class WebWorkerMLCEngine implements MLCEngineInterface {
627
626
}
628
627
}
629
628
}
629
+
630
+ setLogLevel ( logLevel : LogLevel ) {
631
+ log . setLevel ( logLevel ) ;
632
+ }
630
633
}
You can’t perform that action at this time.
0 commit comments