MCPcopy Create free account
hub / github.com/garrytan/gstack / loadDeberta

Function loadDeberta

browse/src/security-classifier.ts:334–365  ·  view source on GitHub ↗
(onProgress?: (msg: string) => void)

Source from the content-addressed store, hash-verified

332
333let debertaLoadPromise: Promise<void> | null = null;
334export function loadDeberta(onProgress?: (msg: string) => void): Promise<void> {
335 if (process.env.GSTACK_SECURITY_OFF === '1') return Promise.resolve();
336 if (!isDebertaEnabled()) return Promise.resolve();
337 if (debertaState === 'loaded') return Promise.resolve();
338 if (debertaLoadPromise) return debertaLoadPromise;
339 debertaState = 'loading';
340 debertaLoadPromise = (async () => {
341 try {
342 await ensureDebertaStaged(onProgress);
343 onProgress?.('deberta: initializing classifier');
344 const { pipeline, env } = await import('@huggingface/transformers');
345 env.allowLocalModels = true;
346 env.allowRemoteModels = false;
347 env.localModelPath = MODELS_DIR;
348 debertaClassifier = await pipeline(
349 'text-classification',
350 'deberta-v3-injection',
351 { dtype: 'fp32' },
352 );
353 const tok = debertaClassifier?.tokenizer as any;
354 if (tok?._tokenizerConfig) {
355 tok._tokenizerConfig.model_max_length = 512;
356 }
357 debertaState = 'loaded';
358 } catch (err: any) {
359 debertaState = 'failed';
360 debertaLoadError = err?.message ?? String(err);
361 console.error('[security-classifier] Failed to load DeBERTa-v3:', debertaLoadError);
362 }
363 })();
364 return debertaLoadPromise;
365}
366
367/**
368 * Scan text with the DeBERTa-v3 ensemble classifier. Returns a LayerSignal

Callers

nothing calls this directly

Calls 2

isDebertaEnabledFunction · 0.85
ensureDebertaStagedFunction · 0.85

Tested by

no test coverage detected