@vivantel/virage-embedder-openai 0.2.2 → 0.2.3

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/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/@vivantel/virage-embedder-openai.svg)](https://www.npmjs.com/package/@vivantel/virage-embedder-openai)
4
4
 
5
- OpenAI-compatible embedding provider for `@vivantel/virage-core`. Works with OpenAI, Azure OpenAI, GitHub Models, Ollama, LM Studio, and any OpenAI-compatible endpoint.
5
+ OpenAI-compatible embedding provider for `@vivantel/virage-core`. Works with OpenAI, Azure OpenAI, Ollama, LM Studio, GitHub Models, and any OpenAI-compatible endpoint.
6
6
 
7
7
  ## Installation
8
8
 
@@ -24,14 +24,16 @@ const embedder = new OpenAICompatibleEmbedder({
24
24
  });
25
25
  ```
26
26
 
27
- ### GitHub Models (preset)
27
+ ### GitHub Models (via generic OpenAI-compatible endpoint)
28
28
 
29
29
  ```typescript
30
- import { createGitHubModelsEmbedder } from "@vivantel/virage-embedder-openai";
30
+ import { OpenAICompatibleEmbedder } from "@vivantel/virage-embedder-openai";
31
31
 
32
- const embedder = createGitHubModelsEmbedder({
33
- token: process.env.GITHUB_TOKEN!,
34
- model: "openai/text-embedding-3-small", // optional, this is the default
32
+ const embedder = new OpenAICompatibleEmbedder({
33
+ apiKey: process.env.GITHUB_TOKEN!,
34
+ baseURL: "https://models.github.ai/inference",
35
+ model: "openai/text-embedding-3-small",
36
+ dimensions: 1536,
35
37
  });
36
38
  ```
37
39
 
@@ -66,15 +68,16 @@ const embedder = createOllamaEmbedder({
66
68
  "embedder": {
67
69
  "package": "@vivantel/virage-embedder-openai",
68
70
  "config": {
69
- "apiKey": "${GITHUB_TOKEN}",
70
- "baseURL": "https://models.github.ai/inference",
71
- "model": "openai/text-embedding-3-small",
71
+ "apiKey": "${OPENAI_API_KEY}",
72
+ "model": "text-embedding-3-small",
72
73
  "dimensions": 1536
73
74
  }
74
75
  }
75
76
  }
76
77
  ```
77
78
 
79
+ Any OpenAI-compatible endpoint (including GitHub Models, Azure OpenAI, Ollama) can be used by adding a `baseURL` field to the config.
80
+
78
81
  ## Options
79
82
 
80
83
  | Option | Type | Required | Description |
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ export { OpenAICompatibleEmbedder, type OpenAICompatibleEmbedderOptions, } from
2
2
  export { computeEmbeddingMetrics, cosineSimilarity, computeIntrinsicDimension, computeAvgCosineSimRandomPairs, detectOutliers, } from "./embedding-metrics.js";
3
3
  export { OpenAIJudge, type OpenAIJudgeOptions } from "./judge.js";
4
4
  export { SemanticCache, type SemanticCacheConfig } from "./semantic-cache.js";
5
- export { createGitHubModelsEmbedder, createAzureOpenAIEmbedder, createOllamaEmbedder, type GitHubModelsPresetOptions, type AzureOpenAIPresetOptions, type OllamaPresetOptions, } from "./presets.js";
5
+ export { createAzureOpenAIEmbedder, createOllamaEmbedder, type AzureOpenAIPresetOptions, type OllamaPresetOptions, } from "./presets.js";
6
6
  import type { EmbeddingProvider } from "@vivantel/virage-core";
7
7
  /** Factory used by the JSON config loader. */
8
8
  export declare function createEmbedder(config: Record<string, unknown>): EmbeddingProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,KAAK,+BAA+B,GACrC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,yBAAyB,EACzB,8BAA8B,EAC9B,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAM/D,8CAA8C;AAC9C,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,iBAAiB,CA6BnB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,KAAK,+BAA+B,GACrC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,yBAAyB,EACzB,8BAA8B,EAC9B,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAM/D,8CAA8C;AAC9C,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,iBAAiB,CA6BnB"}
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ export { OpenAICompatibleEmbedder, } from "./embedder.js";
2
2
  export { computeEmbeddingMetrics, cosineSimilarity, computeIntrinsicDimension, computeAvgCosineSimRandomPairs, detectOutliers, } from "./embedding-metrics.js";
3
3
  export { OpenAIJudge } from "./judge.js";
4
4
  export { SemanticCache } from "./semantic-cache.js";
5
- export { createGitHubModelsEmbedder, createAzureOpenAIEmbedder, createOllamaEmbedder, } from "./presets.js";
5
+ export { createAzureOpenAIEmbedder, createOllamaEmbedder, } from "./presets.js";
6
6
  import { OpenAICompatibleEmbedder, } from "./embedder.js";
7
7
  /** Factory used by the JSON config loader. */
8
8
  export function createEmbedder(config) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAEzB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,yBAAyB,EACzB,8BAA8B,EAC9B,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAA2B,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,aAAa,EAA4B,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,GAIrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,wBAAwB,GAEzB,MAAM,eAAe,CAAC;AAEvB,8CAA8C;AAC9C,MAAM,UAAU,cAAc,CAC5B,MAA+B;IAE/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAoC;QAC5C,MAAM;QACN,KAAK;QACL,UAAU,EACR,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACvE,OAAO,EAAE,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACxE,cAAc,EACZ,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ;YACvC,CAAC,CAAC,MAAM,CAAC,cAAc;YACvB,CAAC,CAAC,SAAS;QACf,UAAU,EACR,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;KACxE,CAAC;IAEF,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAEzB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,yBAAyB,EACzB,8BAA8B,EAC9B,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAA2B,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,aAAa,EAA4B,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GAGrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,wBAAwB,GAEzB,MAAM,eAAe,CAAC;AAEvB,8CAA8C;AAC9C,MAAM,UAAU,cAAc,CAC5B,MAA+B;IAE/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAoC;QAC5C,MAAM;QACN,KAAK;QACL,UAAU,EACR,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACvE,OAAO,EAAE,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACxE,cAAc,EACZ,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ;YACvC,CAAC,CAAC,MAAM,CAAC,cAAc;YACvB,CAAC,CAAC,SAAS;QACf,UAAU,EACR,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;KACxE,CAAC;IAEF,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC"}
package/dist/presets.d.ts CHANGED
@@ -1,9 +1,4 @@
1
1
  import { OpenAICompatibleEmbedder } from "./embedder.js";
2
- export interface GitHubModelsPresetOptions {
3
- token: string;
4
- model?: string;
5
- dimensions?: number;
6
- }
7
2
  export interface AzureOpenAIPresetOptions {
8
3
  apiKey: string;
9
4
  endpoint: string;
@@ -15,8 +10,6 @@ export interface OllamaPresetOptions {
15
10
  dimensions: number;
16
11
  baseURL?: string;
17
12
  }
18
- /** Pre-configured embedder for GitHub Models (OpenAI-compatible endpoint). */
19
- export declare function createGitHubModelsEmbedder(options: GitHubModelsPresetOptions): OpenAICompatibleEmbedder;
20
13
  /** Pre-configured embedder for Azure OpenAI. */
21
14
  export declare function createAzureOpenAIEmbedder(options: AzureOpenAIPresetOptions): OpenAICompatibleEmbedder;
22
15
  /** Pre-configured embedder for a local Ollama server. */
@@ -1 +1 @@
1
- {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAEzB,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,8EAA8E;AAC9E,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,yBAAyB,GACjC,wBAAwB,CAO1B;AAED,gDAAgD;AAChD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,wBAAwB,GAChC,wBAAwB,CAO1B;AAED,yDAAyD;AACzD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,mBAAmB,GAC3B,wBAAwB,CAO1B"}
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAEzB,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,gDAAgD;AAChD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,wBAAwB,GAChC,wBAAwB,CAO1B;AAED,yDAAyD;AACzD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,mBAAmB,GAC3B,wBAAwB,CAO1B"}
package/dist/presets.js CHANGED
@@ -1,13 +1,4 @@
1
1
  import { OpenAICompatibleEmbedder, } from "./embedder.js";
2
- /** Pre-configured embedder for GitHub Models (OpenAI-compatible endpoint). */
3
- export function createGitHubModelsEmbedder(options) {
4
- return new OpenAICompatibleEmbedder({
5
- apiKey: options.token,
6
- baseURL: "https://models.github.ai/inference",
7
- model: options.model ?? "openai/text-embedding-3-small",
8
- dimensions: options.dimensions ?? 1536,
9
- });
10
- }
11
2
  /** Pre-configured embedder for Azure OpenAI. */
12
3
  export function createAzureOpenAIEmbedder(options) {
13
4
  return new OpenAICompatibleEmbedder({
@@ -1 +1 @@
1
- {"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAEzB,MAAM,eAAe,CAAC;AAqBvB,8EAA8E;AAC9E,MAAM,UAAU,0BAA0B,CACxC,OAAkC;IAElC,OAAO,IAAI,wBAAwB,CAAC;QAClC,MAAM,EAAE,OAAO,CAAC,KAAK;QACrB,OAAO,EAAE,oCAAoC;QAC7C,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,+BAA+B;QACvD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;KACvC,CAAC,CAAC;AACL,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,yBAAyB,CACvC,OAAiC;IAEjC,OAAO,IAAI,wBAAwB,CAAC;QAClC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS;QACxD,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,wBAAwB;QAChD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;KACvC,CAAC,CAAC;AACL,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,oBAAoB,CAClC,OAA4B;IAE5B,OAAO,IAAI,wBAAwB,CAAC;QAClC,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,wBAAwB,CAAC,GAAG,KAAK;QAC9D,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;KACI,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAEzB,MAAM,eAAe,CAAC;AAevB,gDAAgD;AAChD,MAAM,UAAU,yBAAyB,CACvC,OAAiC;IAEjC,OAAO,IAAI,wBAAwB,CAAC;QAClC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS;QACxD,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,wBAAwB;QAChD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;KACvC,CAAC,CAAC;AACL,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,oBAAoB,CAClC,OAA4B;IAE5B,OAAO,IAAI,wBAAwB,CAAC;QAClC,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,wBAAwB,CAAC,GAAG,KAAK;QAC9D,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;KACI,CAAC,CAAC;AACxC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vivantel/virage-embedder-openai",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "OpenAI-compatible embedding provider for @vivantel/rag-core",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -33,8 +33,7 @@
33
33
  "rag",
34
34
  "embeddings",
35
35
  "openai",
36
- "azure",
37
- "github-models"
36
+ "azure"
38
37
  ],
39
38
  "author": "Vivantel",
40
39
  "license": "MIT",
@@ -50,7 +49,7 @@
50
49
  "@vivantel/virage-core": "*"
51
50
  },
52
51
  "devDependencies": {
53
- "@vivantel/virage-core": "0.2.2",
52
+ "@vivantel/virage-core": "0.2.3",
54
53
  "@types/node": "^25.9.1",
55
54
  "typescript": "^6.0.3",
56
55
  "vitest": "^4.1.8"