File size: 1,088 Bytes
2f35054 e7ba29d 2f35054 e7ba29d 5541427 2f35054 e7ba29d 5541427 2f35054 5541427 2f35054 22f8eb7 5541427 22f8eb7 046ca57 5541427 046ca57 25647ae e7ba29d 2f35054 e7ba29d 2f35054 e7ba29d 2f35054 e7ba29d 2f35054 e7ba29d 2f35054 e7ba29d 2f35054 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
const workers: Record<string, Worker | null> = {}
export const getWorker = (pipeline: string) => {
if (!workers[pipeline]) {
let workerUrl: string
switch (pipeline) {
case 'text-classification':
workerUrl = `/workers/text-classification.js`
break
case 'zero-shot-classification':
workerUrl = `/workers/zero-shot-classification.js`
break
case 'text-generation':
workerUrl = `/workers/text-generation.js`
break
case 'feature-extraction':
workerUrl = `/workers/feature-extraction.js`
break
case 'image-classification':
workerUrl = `/workers/image-classification.js`
break
case 'text-to-speech':
workerUrl = `/workers/text-to-speech.js`
break
default:
return null
}
workers[pipeline] = new Worker(workerUrl, { type: 'module' })
}
return workers[pipeline]
}
export const terminateWorker = (pipeline: string) => {
const worker = workers[pipeline]
if (worker) {
worker.terminate()
delete workers[pipeline]
}
}
|