40 lines
1.8 KiB
TypeScript
40 lines
1.8 KiB
TypeScript
|
|
/**
|
||
|
|
* @module embeddings/deterministicEmbedMode
|
||
|
|
* @description Single source of truth for "use deterministic test embeddings".
|
||
|
|
*
|
||
|
|
* Brainy's embedding model is a real WASM transformer — correct, but slow on CPU
|
||
|
|
* (a forward pass per text). For TEST tiers that exercise database *logic* (HNSW
|
||
|
|
* build + search, graph traversal, metadata filtering, transactions, storage,
|
||
|
|
* VFS, find composition), the embedding's semantic *quality* is irrelevant; only
|
||
|
|
* a deterministic, content-derived vector is needed. Switching the embedder to a
|
||
|
|
* deterministic stand-in keeps every other code path real while turning a
|
||
|
|
* multi-hour suite into a sub-minute, gateable one. Semantic quality and the
|
||
|
|
* real embedding pipeline are covered separately by the real-model test tier.
|
||
|
|
*
|
||
|
|
* This flag is honored ONLY outside production: {@link EmbeddingManager} throws
|
||
|
|
* if it is set while `NODE_ENV=production` (mock vectors in prod is a security
|
||
|
|
* risk). Enabled by env var or global so test setup files can opt in per tier.
|
||
|
|
*/
|
||
|
|
|
||
|
|
interface DeterministicEmbedGlobals {
|
||
|
|
__BRAINY_DETERMINISTIC_EMBED__?: boolean
|
||
|
|
/** Legacy alias — the original unit-test-only spelling. */
|
||
|
|
__BRAINY_UNIT_TEST__?: boolean
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @description Whether the deterministic test embedder should be used instead of
|
||
|
|
* the real WASM model. True when `BRAINY_DETERMINISTIC_EMBEDDINGS=true` or the
|
||
|
|
* legacy `BRAINY_UNIT_TEST=true` env var is set, or the matching global is set.
|
||
|
|
* @returns `true` to use deterministic embeddings, `false` for the real model.
|
||
|
|
*/
|
||
|
|
export function isDeterministicEmbedMode(): boolean {
|
||
|
|
const g = globalThis as DeterministicEmbedGlobals
|
||
|
|
return (
|
||
|
|
process.env.BRAINY_DETERMINISTIC_EMBEDDINGS === 'true' ||
|
||
|
|
process.env.BRAINY_UNIT_TEST === 'true' ||
|
||
|
|
g.__BRAINY_DETERMINISTIC_EMBED__ === true ||
|
||
|
|
g.__BRAINY_UNIT_TEST__ === true
|
||
|
|
)
|
||
|
|
}
|