Spaces:
Running
Running
| import { env, pipeline } from "https://cdn.jsdelivr.net/npm/@huggingface/transformers@4.2.0"; | |
| const MODEL_ID = "GoktugD/DUSUNEN-Pusula-118M-v1"; | |
| env.allowLocalModels = false; | |
| env.useBrowserCache = true; | |
| let extractorPromise; | |
| function getExtractor() { | |
| if (!extractorPromise) { | |
| extractorPromise = pipeline("feature-extraction", MODEL_ID, { | |
| dtype: "q8", | |
| progress_callback: (event) => self.postMessage({ type: "progress", event }), | |
| }); | |
| } | |
| return extractorPromise; | |
| } | |
| self.onmessage = async ({ data }) => { | |
| if (data.type !== "encode") return; | |
| try { | |
| const extractor = await getExtractor(); | |
| const started = performance.now(); | |
| const output = await extractor(data.query.trim(), { pooling: "mean", normalize: true }); | |
| self.postMessage({ | |
| type: "result", | |
| requestId: data.requestId, | |
| embedding: Array.from(output.data), | |
| inferenceMs: performance.now() - started, | |
| }); | |
| } catch (error) { | |
| extractorPromise = undefined; | |
| self.postMessage({ type: "error", message: error?.message || String(error) }); | |
| } | |
| }; | |