@anvia/transformers 1.0.0-rc.2 → 1.0.0-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -102,13 +102,19 @@ async function loadTransformersEmbeddingModel(options) {
102
102
  const normalized = normalizeRuntimeOptions(options);
103
103
  let runtime;
104
104
  try {
105
- runtime = await transformersPipeline("feature-extraction", normalized.modelId, {
106
- ...options.device === void 0 ? {} : { device: options.device },
107
- ...options.dtype === void 0 ? {} : { dtype: options.dtype },
108
- ...options.cacheDir === void 0 ? {} : { cache_dir: options.cacheDir },
109
- ...options.localFilesOnly === void 0 ? {} : { local_files_only: options.localFilesOnly },
110
- ...options.revision === void 0 ? {} : { revision: options.revision }
111
- });
105
+ const runtimeOptions = {};
106
+ if (options.device !== void 0) runtimeOptions.device = options.device;
107
+ if (options.dtype !== void 0) runtimeOptions.dtype = options.dtype;
108
+ if (options.cacheDir !== void 0) runtimeOptions.cache_dir = options.cacheDir;
109
+ if (options.localFilesOnly !== void 0) {
110
+ runtimeOptions.local_files_only = options.localFilesOnly;
111
+ }
112
+ if (options.revision !== void 0) runtimeOptions.revision = options.revision;
113
+ runtime = await transformersPipeline(
114
+ "feature-extraction",
115
+ normalized.modelId,
116
+ runtimeOptions
117
+ );
112
118
  return new OwnedTransformersEmbeddingModel(runtime, normalized);
113
119
  } catch (error) {
114
120
  await runtime?.dispose();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/model.ts","../src/helpers.ts"],"sourcesContent":["import type { Embedding, EmbeddingModel, ModelCallOptions } from \"@anvia/core/embeddings\";\nimport { pipeline as transformersPipeline } from \"@huggingface/transformers\";\nimport { parseVectors } from \"./helpers.js\";\nimport type {\n AdaptTransformersEmbeddingModelOptions,\n LoadedTransformersEmbeddingModel,\n LoadTransformersEmbeddingModelOptions,\n TransformersEmbeddingModelHandle,\n TransformersFeatureExtractionPipeline,\n TransformersPooling,\n TransformersTensor,\n} from \"./types.js\";\n\nexport const DEFAULT_TRANSFORMERS_EMBEDDING_MODEL = \"Xenova/all-MiniLM-L6-v2\";\n\nclass TransformersEmbeddingModel implements EmbeddingModel {\n readonly provider = \"transformers\";\n readonly modelId: string;\n readonly maxBatchSize: number;\n\n private readonly pooling: TransformersPooling;\n private readonly normalize: boolean;\n\n constructor(\n protected readonly runtime: TransformersFeatureExtractionPipeline,\n options: {\n modelId: string;\n pooling?: TransformersPooling | undefined;\n normalize?: boolean | undefined;\n maxBatchSize?: number | undefined;\n },\n ) {\n this.modelId = requireModelId(options.modelId);\n this.pooling = options.pooling ?? \"mean\";\n this.normalize = options.normalize ?? true;\n this.maxBatchSize = positiveSafeInteger(options.maxBatchSize ?? 16, \"maxBatchSize\");\n }\n\n protected beginCall(): void {}\n protected endCall(): void {}\n\n async embedTexts(texts: string[], options?: ModelCallOptions): Promise<Embedding[]> {\n this.beginCall();\n let output: TransformersTensor | undefined;\n try {\n throwIfAborted(options?.abortSignal);\n if (texts.length === 0) {\n return [];\n }\n\n output = await this.runtime(texts, {\n pooling: this.pooling,\n normalize: this.normalize,\n });\n throwIfAborted(options?.abortSignal);\n const vectors = parseVectors(output.tolist(), texts.length);\n\n return texts.map((document, index) => ({\n document,\n vector: vectors[index] as number[],\n }));\n } finally {\n try {\n output?.dispose();\n } finally {\n this.endCall();\n }\n }\n }\n}\n\nclass OwnedTransformersEmbeddingModel\n extends TransformersEmbeddingModel\n implements LoadedTransformersEmbeddingModel\n{\n private closed = false;\n private activeCalls = 0;\n private readonly idleWaiters = new Set<() => void>();\n private closePromise: Promise<void> | undefined;\n\n protected override beginCall(): void {\n if (this.closed) {\n throw new Error(\"Transformers embedding model is closed.\");\n }\n this.activeCalls += 1;\n }\n\n protected override endCall(): void {\n this.activeCalls -= 1;\n if (this.activeCalls === 0) {\n for (const resolve of this.idleWaiters) resolve();\n this.idleWaiters.clear();\n }\n }\n\n close(): Promise<void> {\n if (this.closePromise !== undefined) {\n return this.closePromise;\n }\n this.closed = true;\n this.closePromise = (async () => {\n if (this.activeCalls > 0) {\n await new Promise<void>((resolve) => this.idleWaiters.add(resolve));\n }\n await this.runtime.dispose();\n })();\n return this.closePromise;\n }\n\n async [Symbol.asyncDispose](): Promise<void> {\n await this.close();\n }\n}\n\nexport async function loadTransformersEmbeddingModel(\n options: LoadTransformersEmbeddingModelOptions,\n): Promise<LoadedTransformersEmbeddingModel> {\n const normalized = normalizeRuntimeOptions(options);\n let runtime: TransformersFeatureExtractionPipeline | undefined;\n try {\n runtime = (await transformersPipeline(\"feature-extraction\", normalized.modelId, {\n ...(options.device === undefined ? {} : { device: options.device }),\n ...(options.dtype === undefined ? {} : { dtype: options.dtype }),\n ...(options.cacheDir === undefined ? {} : { cache_dir: options.cacheDir }),\n ...(options.localFilesOnly === undefined ? {} : { local_files_only: options.localFilesOnly }),\n ...(options.revision === undefined ? {} : { revision: options.revision }),\n } as never)) as TransformersFeatureExtractionPipeline;\n return new OwnedTransformersEmbeddingModel(runtime, normalized);\n } catch (error) {\n await runtime?.dispose();\n throw error;\n }\n}\n\nexport function adaptTransformersEmbeddingModel(\n options: AdaptTransformersEmbeddingModelOptions,\n): TransformersEmbeddingModelHandle {\n return new TransformersEmbeddingModel(options.runtime, normalizeRuntimeOptions(options));\n}\n\nfunction normalizeRuntimeOptions(options: {\n modelId: string;\n pooling?: TransformersPooling | undefined;\n normalize?: boolean | undefined;\n maxBatchSize?: number | undefined;\n}) {\n return {\n modelId: requireModelId(options.modelId),\n pooling: options.pooling,\n normalize: options.normalize,\n maxBatchSize: positiveSafeInteger(options.maxBatchSize ?? 16, \"maxBatchSize\"),\n };\n}\n\nfunction requireModelId(modelId: string): string {\n if (modelId.trim().length === 0) {\n throw new TypeError(\"modelId must be a non-empty string\");\n }\n return modelId;\n}\n\nfunction positiveSafeInteger(value: number, name: string): number {\n if (!Number.isSafeInteger(value) || value <= 0) {\n throw new TypeError(`${name} must be a positive safe integer`);\n }\n return value;\n}\n\nfunction throwIfAborted(signal: AbortSignal | undefined): void {\n if (signal?.aborted) {\n const error = new Error(\"The operation was aborted.\");\n error.name = \"AbortError\";\n throw error;\n }\n}\n","export function parseVectors(value: unknown, expectedLength: number): number[][] {\n if (!Array.isArray(value) || value.length !== expectedLength) {\n throw new Error(\n `Transformers embedding model returned ${Array.isArray(value) ? value.length : 0} embeddings for ${expectedLength} texts`,\n );\n }\n\n return value.map((vector, index) => {\n if (!Array.isArray(vector) || !vector.every((item) => typeof item === \"number\")) {\n throw new Error(`Transformers embedding model returned an invalid vector at index ${index}`);\n }\n return vector;\n });\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/model.ts","../src/helpers.ts"],"sourcesContent":["import type { Embedding, EmbeddingModel, ModelCallOptions } from \"@anvia/core/embeddings\";\nimport { pipeline as transformersPipeline } from \"@huggingface/transformers\";\nimport { parseVectors } from \"./helpers.js\";\nimport type {\n AdaptTransformersEmbeddingModelOptions,\n LoadedTransformersEmbeddingModel,\n LoadTransformersEmbeddingModelOptions,\n TransformersEmbeddingModelHandle,\n TransformersFeatureExtractionPipeline,\n TransformersPooling,\n TransformersTensor,\n} from \"./types.js\";\n\nexport const DEFAULT_TRANSFORMERS_EMBEDDING_MODEL = \"Xenova/all-MiniLM-L6-v2\";\n\nclass TransformersEmbeddingModel implements EmbeddingModel {\n readonly provider = \"transformers\";\n readonly modelId: string;\n readonly maxBatchSize: number;\n\n private readonly pooling: TransformersPooling;\n private readonly normalize: boolean;\n\n constructor(\n protected readonly runtime: TransformersFeatureExtractionPipeline,\n options: {\n modelId: string;\n pooling?: TransformersPooling | undefined;\n normalize?: boolean | undefined;\n maxBatchSize?: number | undefined;\n },\n ) {\n this.modelId = requireModelId(options.modelId);\n this.pooling = options.pooling ?? \"mean\";\n this.normalize = options.normalize ?? true;\n this.maxBatchSize = positiveSafeInteger(options.maxBatchSize ?? 16, \"maxBatchSize\");\n }\n\n protected beginCall(): void {}\n protected endCall(): void {}\n\n async embedTexts(texts: string[], options?: ModelCallOptions): Promise<Embedding[]> {\n this.beginCall();\n let output: TransformersTensor | undefined;\n try {\n throwIfAborted(options?.abortSignal);\n if (texts.length === 0) {\n return [];\n }\n\n output = await this.runtime(texts, {\n pooling: this.pooling,\n normalize: this.normalize,\n });\n throwIfAborted(options?.abortSignal);\n const vectors = parseVectors(output.tolist(), texts.length);\n\n return texts.map((document, index) => ({\n document,\n vector: vectors[index] as number[],\n }));\n } finally {\n try {\n output?.dispose();\n } finally {\n this.endCall();\n }\n }\n }\n}\n\nclass OwnedTransformersEmbeddingModel\n extends TransformersEmbeddingModel\n implements LoadedTransformersEmbeddingModel\n{\n private closed = false;\n private activeCalls = 0;\n private readonly idleWaiters = new Set<() => void>();\n private closePromise: Promise<void> | undefined;\n\n protected override beginCall(): void {\n if (this.closed) {\n throw new Error(\"Transformers embedding model is closed.\");\n }\n this.activeCalls += 1;\n }\n\n protected override endCall(): void {\n this.activeCalls -= 1;\n if (this.activeCalls === 0) {\n for (const resolve of this.idleWaiters) resolve();\n this.idleWaiters.clear();\n }\n }\n\n close(): Promise<void> {\n if (this.closePromise !== undefined) {\n return this.closePromise;\n }\n this.closed = true;\n this.closePromise = (async () => {\n if (this.activeCalls > 0) {\n await new Promise<void>((resolve) => this.idleWaiters.add(resolve));\n }\n await this.runtime.dispose();\n })();\n return this.closePromise;\n }\n\n async [Symbol.asyncDispose](): Promise<void> {\n await this.close();\n }\n}\n\nexport async function loadTransformersEmbeddingModel(\n options: LoadTransformersEmbeddingModelOptions,\n): Promise<LoadedTransformersEmbeddingModel> {\n const normalized = normalizeRuntimeOptions(options);\n let runtime: TransformersFeatureExtractionPipeline | undefined;\n try {\n const runtimeOptions: Record<string, unknown> = {};\n if (options.device !== undefined) runtimeOptions.device = options.device;\n if (options.dtype !== undefined) runtimeOptions.dtype = options.dtype;\n if (options.cacheDir !== undefined) runtimeOptions.cache_dir = options.cacheDir;\n if (options.localFilesOnly !== undefined) {\n runtimeOptions.local_files_only = options.localFilesOnly;\n }\n if (options.revision !== undefined) runtimeOptions.revision = options.revision;\n runtime = (await transformersPipeline(\n \"feature-extraction\",\n normalized.modelId,\n runtimeOptions as never,\n )) as TransformersFeatureExtractionPipeline;\n return new OwnedTransformersEmbeddingModel(runtime, normalized);\n } catch (error) {\n await runtime?.dispose();\n throw error;\n }\n}\n\nexport function adaptTransformersEmbeddingModel(\n options: AdaptTransformersEmbeddingModelOptions,\n): TransformersEmbeddingModelHandle {\n return new TransformersEmbeddingModel(options.runtime, normalizeRuntimeOptions(options));\n}\n\nfunction normalizeRuntimeOptions(options: {\n modelId: string;\n pooling?: TransformersPooling | undefined;\n normalize?: boolean | undefined;\n maxBatchSize?: number | undefined;\n}) {\n return {\n modelId: requireModelId(options.modelId),\n pooling: options.pooling,\n normalize: options.normalize,\n maxBatchSize: positiveSafeInteger(options.maxBatchSize ?? 16, \"maxBatchSize\"),\n };\n}\n\nfunction requireModelId(modelId: string): string {\n if (modelId.trim().length === 0) {\n throw new TypeError(\"modelId must be a non-empty string\");\n }\n return modelId;\n}\n\nfunction positiveSafeInteger(value: number, name: string): number {\n if (!Number.isSafeInteger(value) || value <= 0) {\n throw new TypeError(`${name} must be a positive safe integer`);\n }\n return value;\n}\n\nfunction throwIfAborted(signal: AbortSignal | undefined): void {\n if (signal?.aborted) {\n const error = new Error(\"The operation was aborted.\");\n error.name = \"AbortError\";\n throw error;\n }\n}\n","export function parseVectors(value: unknown, expectedLength: number): number[][] {\n if (!Array.isArray(value) || value.length !== expectedLength) {\n throw new Error(\n `Transformers embedding model returned ${Array.isArray(value) ? value.length : 0} embeddings for ${expectedLength} texts`,\n );\n }\n\n return value.map((vector, index) => {\n if (!Array.isArray(vector) || !vector.every((item) => typeof item === \"number\")) {\n throw new Error(`Transformers embedding model returned an invalid vector at index ${index}`);\n }\n return vector;\n });\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anvia/transformers",
3
- "version": "1.0.0-rc.2",
3
+ "version": "1.0.0-rc.4",
4
4
  "description": "Transformers.js embedding model adapter for Anvia.",
5
5
  "author": "anvia",
6
6
  "maintainer": "Indra Zulfi",
@@ -33,10 +33,10 @@
33
33
  "tsup": "^8.5.0",
34
34
  "typescript": "^5.9.3",
35
35
  "vitest": "^4.0.8",
36
- "@anvia/core": "1.0.0-rc.2"
36
+ "@anvia/core": "1.0.0-rc.4"
37
37
  },
38
38
  "peerDependencies": {
39
- "@anvia/core": "1.0.0-rc.2"
39
+ "@anvia/core": "1.0.0-rc.4"
40
40
  },
41
41
  "scripts": {
42
42
  "build": "tsup src/index.ts --format esm --dts --sourcemap --clean",