Spaces:
Running
Running
File size: 1,232 Bytes
621d8d2 136e519 621d8d2 | 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 | import { env, pipeline } from "https://cdn.jsdelivr.net/npm/@huggingface/transformers@4.2.0";
const MODEL_ID = "GoktugD/DUSUNEN-Rota-270M-v1";
const TASK = "Given a Turkish web search query, retrieve relevant passages that answer the query";
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 !== "search") return;
try {
const extractor = await getExtractor();
const query = `Instruct: ${TASK}\nQuery: ${data.query.trim()}`;
const started = performance.now();
const output = await extractor(query, { pooling: "last_token", normalize: true });
self.postMessage({
type: "result",
requestId: data.requestId,
embedding: Array.from(output.data),
inferenceMs: performance.now() - started,
});
} catch (error) {
self.postMessage({ type: "error", message: error?.message || String(error) });
extractorPromise = undefined;
}
};
|