modelfusion 0.132.0 → 0.133.0

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.
Files changed (27) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/model-function/embed/EmbeddingModel.d.ts +1 -1
  3. package/model-provider/cohere/CohereTextEmbeddingModel.cjs +9 -10
  4. package/model-provider/cohere/CohereTextEmbeddingModel.d.ts +8 -8
  5. package/model-provider/cohere/CohereTextEmbeddingModel.js +9 -10
  6. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.cjs +3 -3
  7. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.d.ts +2 -2
  8. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.js +3 -3
  9. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.cjs +3 -3
  10. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.d.ts +2 -2
  11. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.js +3 -3
  12. package/model-provider/mistral/MistralTextEmbeddingModel.cjs +1 -1
  13. package/model-provider/mistral/MistralTextEmbeddingModel.d.ts +1 -1
  14. package/model-provider/mistral/MistralTextEmbeddingModel.js +1 -1
  15. package/model-provider/ollama/OllamaTextEmbeddingModel.cjs +3 -3
  16. package/model-provider/ollama/OllamaTextEmbeddingModel.d.ts +2 -2
  17. package/model-provider/ollama/OllamaTextEmbeddingModel.js +3 -3
  18. package/model-provider/openai/AbstractOpenAITextEmbeddingModel.cjs +1 -0
  19. package/model-provider/openai/AbstractOpenAITextEmbeddingModel.d.ts +1 -0
  20. package/model-provider/openai/AbstractOpenAITextEmbeddingModel.js +1 -0
  21. package/model-provider/openai/OpenAITextEmbeddingModel.cjs +7 -6
  22. package/model-provider/openai/OpenAITextEmbeddingModel.d.ts +4 -4
  23. package/model-provider/openai/OpenAITextEmbeddingModel.js +7 -6
  24. package/model-provider/openai-compatible/OpenAICompatibleTextEmbeddingModel.cjs +3 -3
  25. package/model-provider/openai-compatible/OpenAICompatibleTextEmbeddingModel.d.ts +2 -2
  26. package/model-provider/openai-compatible/OpenAICompatibleTextEmbeddingModel.js +3 -3
  27. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  # Changelog
2
2
 
3
- ## v0.132.0 - 2024-02-15
3
+ ## v0.133.0 - 2024-01-26
4
+
5
+ ### Added
6
+
7
+ - Support for OpenAI embedding custom dimensions.
8
+
9
+ ### Changed
10
+
11
+ - **breaking change**: renamed `embeddingDimensions` setting to `dimensions`
12
+
13
+ ## v0.132.0 - 2024-01-25
4
14
 
5
15
  ### Added
6
16
 
@@ -7,7 +7,7 @@ export interface EmbeddingModel<VALUE, SETTINGS extends EmbeddingModelSettings =
7
7
  /**
8
8
  * The size of the embedding vector.
9
9
  */
10
- readonly embeddingDimensions: number | undefined;
10
+ readonly dimensions: number | undefined;
11
11
  /**
12
12
  * Limit of how many values can be sent in a single API call.
13
13
  */
@@ -12,31 +12,31 @@ const CohereTokenizer_js_1 = require("./CohereTokenizer.cjs");
12
12
  exports.COHERE_TEXT_EMBEDDING_MODELS = {
13
13
  "embed-english-light-v2.0": {
14
14
  contextWindowSize: 512,
15
- embeddingDimensions: 1024,
15
+ dimensions: 1024,
16
16
  },
17
17
  "embed-english-v2.0": {
18
18
  contextWindowSize: 512,
19
- embeddingDimensions: 4096,
19
+ dimensions: 4096,
20
20
  },
21
21
  "embed-multilingual-v2.0": {
22
22
  contextWindowSize: 256,
23
- embeddingDimensions: 768,
23
+ dimensions: 768,
24
24
  },
25
25
  "embed-english-v3.0": {
26
26
  contextWindowSize: 512,
27
- embeddingDimensions: 1024,
27
+ dimensions: 1024,
28
28
  },
29
29
  "embed-english-light-v3.0": {
30
30
  contextWindowSize: 512,
31
- embeddingDimensions: 384,
31
+ dimensions: 384,
32
32
  },
33
33
  "embed-multilingual-v3.0": {
34
34
  contextWindowSize: 512,
35
- embeddingDimensions: 1024,
35
+ dimensions: 1024,
36
36
  },
37
37
  "embed-multilingual-light-v3.0": {
38
38
  contextWindowSize: 512,
39
- embeddingDimensions: 384,
39
+ dimensions: 384,
40
40
  },
41
41
  };
42
42
  /**
@@ -74,7 +74,7 @@ class CohereTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
74
74
  writable: true,
75
75
  value: true
76
76
  });
77
- Object.defineProperty(this, "embeddingDimensions", {
77
+ Object.defineProperty(this, "dimensions", {
78
78
  enumerable: true,
79
79
  configurable: true,
80
80
  writable: true,
@@ -98,8 +98,7 @@ class CohereTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
98
98
  api: this.settings.api,
99
99
  model: this.settings.model,
100
100
  });
101
- this.embeddingDimensions =
102
- exports.COHERE_TEXT_EMBEDDING_MODELS[this.modelName].embeddingDimensions;
101
+ this.dimensions = exports.COHERE_TEXT_EMBEDDING_MODELS[this.modelName].dimensions;
103
102
  }
104
103
  get modelName() {
105
104
  return this.settings.model;
@@ -7,31 +7,31 @@ import { FullTokenizer } from "../../model-function/tokenize-text/Tokenizer.js";
7
7
  export declare const COHERE_TEXT_EMBEDDING_MODELS: {
8
8
  "embed-english-light-v2.0": {
9
9
  contextWindowSize: number;
10
- embeddingDimensions: number;
10
+ dimensions: number;
11
11
  };
12
12
  "embed-english-v2.0": {
13
13
  contextWindowSize: number;
14
- embeddingDimensions: number;
14
+ dimensions: number;
15
15
  };
16
16
  "embed-multilingual-v2.0": {
17
17
  contextWindowSize: number;
18
- embeddingDimensions: number;
18
+ dimensions: number;
19
19
  };
20
20
  "embed-english-v3.0": {
21
21
  contextWindowSize: number;
22
- embeddingDimensions: number;
22
+ dimensions: number;
23
23
  };
24
24
  "embed-english-light-v3.0": {
25
25
  contextWindowSize: number;
26
- embeddingDimensions: number;
26
+ dimensions: number;
27
27
  };
28
28
  "embed-multilingual-v3.0": {
29
29
  contextWindowSize: number;
30
- embeddingDimensions: number;
30
+ dimensions: number;
31
31
  };
32
32
  "embed-multilingual-light-v3.0": {
33
33
  contextWindowSize: number;
34
- embeddingDimensions: number;
34
+ dimensions: number;
35
35
  };
36
36
  };
37
37
  export type CohereTextEmbeddingModelType = keyof typeof COHERE_TEXT_EMBEDDING_MODELS;
@@ -61,7 +61,7 @@ export declare class CohereTextEmbeddingModel extends AbstractModel<CohereTextEm
61
61
  get modelName(): "embed-english-light-v2.0" | "embed-english-v2.0" | "embed-multilingual-v2.0" | "embed-english-v3.0" | "embed-english-light-v3.0" | "embed-multilingual-v3.0" | "embed-multilingual-light-v3.0";
62
62
  readonly maxValuesPerCall = 96;
63
63
  readonly isParallelizable = true;
64
- readonly embeddingDimensions: number;
64
+ readonly dimensions: number;
65
65
  readonly contextWindowSize: number;
66
66
  private readonly tokenizer;
67
67
  tokenize(text: string): Promise<number[]>;
@@ -9,31 +9,31 @@ import { CohereTokenizer } from "./CohereTokenizer.js";
9
9
  export const COHERE_TEXT_EMBEDDING_MODELS = {
10
10
  "embed-english-light-v2.0": {
11
11
  contextWindowSize: 512,
12
- embeddingDimensions: 1024,
12
+ dimensions: 1024,
13
13
  },
14
14
  "embed-english-v2.0": {
15
15
  contextWindowSize: 512,
16
- embeddingDimensions: 4096,
16
+ dimensions: 4096,
17
17
  },
18
18
  "embed-multilingual-v2.0": {
19
19
  contextWindowSize: 256,
20
- embeddingDimensions: 768,
20
+ dimensions: 768,
21
21
  },
22
22
  "embed-english-v3.0": {
23
23
  contextWindowSize: 512,
24
- embeddingDimensions: 1024,
24
+ dimensions: 1024,
25
25
  },
26
26
  "embed-english-light-v3.0": {
27
27
  contextWindowSize: 512,
28
- embeddingDimensions: 384,
28
+ dimensions: 384,
29
29
  },
30
30
  "embed-multilingual-v3.0": {
31
31
  contextWindowSize: 512,
32
- embeddingDimensions: 1024,
32
+ dimensions: 1024,
33
33
  },
34
34
  "embed-multilingual-light-v3.0": {
35
35
  contextWindowSize: 512,
36
- embeddingDimensions: 384,
36
+ dimensions: 384,
37
37
  },
38
38
  };
39
39
  /**
@@ -71,7 +71,7 @@ export class CohereTextEmbeddingModel extends AbstractModel {
71
71
  writable: true,
72
72
  value: true
73
73
  });
74
- Object.defineProperty(this, "embeddingDimensions", {
74
+ Object.defineProperty(this, "dimensions", {
75
75
  enumerable: true,
76
76
  configurable: true,
77
77
  writable: true,
@@ -95,8 +95,7 @@ export class CohereTextEmbeddingModel extends AbstractModel {
95
95
  api: this.settings.api,
96
96
  model: this.settings.model,
97
97
  });
98
- this.embeddingDimensions =
99
- COHERE_TEXT_EMBEDDING_MODELS[this.modelName].embeddingDimensions;
98
+ this.dimensions = COHERE_TEXT_EMBEDDING_MODELS[this.modelName].dimensions;
100
99
  }
101
100
  get modelName() {
102
101
  return this.settings.model;
@@ -55,7 +55,7 @@ class HuggingFaceTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
55
55
  writable: true,
56
56
  value: undefined
57
57
  });
58
- Object.defineProperty(this, "embeddingDimensions", {
58
+ Object.defineProperty(this, "dimensions", {
59
59
  enumerable: true,
60
60
  configurable: true,
61
61
  writable: true,
@@ -75,7 +75,7 @@ class HuggingFaceTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
75
75
  });
76
76
  // There is no limit documented in the HuggingFace API. Use 1024 as a reasonable default.
77
77
  this.maxValuesPerCall = settings.maxValuesPerCall ?? 1024;
78
- this.embeddingDimensions = settings.embeddingDimensions;
78
+ this.dimensions = settings.dimensions;
79
79
  }
80
80
  get modelName() {
81
81
  return this.settings.model;
@@ -112,7 +112,7 @@ class HuggingFaceTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
112
112
  }
113
113
  get settingsForEvent() {
114
114
  return {
115
- embeddingDimensions: this.settings.embeddingDimensions,
115
+ dimensions: this.settings.dimensions,
116
116
  options: this.settings.options,
117
117
  };
118
118
  }
@@ -7,7 +7,7 @@ export interface HuggingFaceTextEmbeddingModelSettings extends EmbeddingModelSet
7
7
  api?: ApiConfiguration;
8
8
  model: string;
9
9
  maxValuesPerCall?: number;
10
- embeddingDimensions?: number;
10
+ dimensions?: number;
11
11
  options?: {
12
12
  useCache?: boolean;
13
13
  waitForModel?: boolean;
@@ -40,7 +40,7 @@ export declare class HuggingFaceTextEmbeddingModel extends AbstractModel<Hugging
40
40
  readonly maxValuesPerCall: number;
41
41
  readonly isParallelizable = true;
42
42
  readonly contextWindowSize: undefined;
43
- readonly embeddingDimensions: number | undefined;
43
+ readonly dimensions: number | undefined;
44
44
  readonly tokenizer: undefined;
45
45
  callAPI(texts: Array<string>, callOptions: FunctionCallOptions): Promise<HuggingFaceTextEmbeddingResponse>;
46
46
  get settingsForEvent(): Partial<HuggingFaceTextEmbeddingModelSettings>;
@@ -52,7 +52,7 @@ export class HuggingFaceTextEmbeddingModel extends AbstractModel {
52
52
  writable: true,
53
53
  value: undefined
54
54
  });
55
- Object.defineProperty(this, "embeddingDimensions", {
55
+ Object.defineProperty(this, "dimensions", {
56
56
  enumerable: true,
57
57
  configurable: true,
58
58
  writable: true,
@@ -72,7 +72,7 @@ export class HuggingFaceTextEmbeddingModel extends AbstractModel {
72
72
  });
73
73
  // There is no limit documented in the HuggingFace API. Use 1024 as a reasonable default.
74
74
  this.maxValuesPerCall = settings.maxValuesPerCall ?? 1024;
75
- this.embeddingDimensions = settings.embeddingDimensions;
75
+ this.dimensions = settings.dimensions;
76
76
  }
77
77
  get modelName() {
78
78
  return this.settings.model;
@@ -109,7 +109,7 @@ export class HuggingFaceTextEmbeddingModel extends AbstractModel {
109
109
  }
110
110
  get settingsForEvent() {
111
111
  return {
112
- embeddingDimensions: this.settings.embeddingDimensions,
112
+ dimensions: this.settings.dimensions,
113
113
  options: this.settings.options,
114
114
  };
115
115
  }
@@ -44,8 +44,8 @@ class LlamaCppTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
44
44
  get isParallelizable() {
45
45
  return this.settings.isParallelizable ?? false;
46
46
  }
47
- get embeddingDimensions() {
48
- return this.settings.embeddingDimensions;
47
+ get dimensions() {
48
+ return this.settings.dimensions;
49
49
  }
50
50
  async tokenize(text) {
51
51
  return this.tokenizer.tokenize(text);
@@ -76,7 +76,7 @@ class LlamaCppTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
76
76
  }
77
77
  get settingsForEvent() {
78
78
  return {
79
- embeddingDimensions: this.settings.embeddingDimensions,
79
+ dimensions: this.settings.dimensions,
80
80
  };
81
81
  }
82
82
  async doEmbedValues(texts, options) {
@@ -5,7 +5,7 @@ import { AbstractModel } from "../../model-function/AbstractModel.js";
5
5
  import { EmbeddingModel, EmbeddingModelSettings } from "../../model-function/embed/EmbeddingModel.js";
6
6
  export interface LlamaCppTextEmbeddingModelSettings extends EmbeddingModelSettings {
7
7
  api?: ApiConfiguration;
8
- embeddingDimensions?: number;
8
+ dimensions?: number;
9
9
  isParallelizable?: boolean;
10
10
  }
11
11
  export declare class LlamaCppTextEmbeddingModel extends AbstractModel<LlamaCppTextEmbeddingModelSettings> implements EmbeddingModel<string, LlamaCppTextEmbeddingModelSettings> {
@@ -15,7 +15,7 @@ export declare class LlamaCppTextEmbeddingModel extends AbstractModel<LlamaCppTe
15
15
  readonly maxValuesPerCall = 1;
16
16
  get isParallelizable(): boolean;
17
17
  readonly contextWindowSize: undefined;
18
- get embeddingDimensions(): number | undefined;
18
+ get dimensions(): number | undefined;
19
19
  private readonly tokenizer;
20
20
  tokenize(text: string): Promise<number[]>;
21
21
  callAPI(texts: Array<string>, callOptions: FunctionCallOptions): Promise<LlamaCppTextEmbeddingResponse>;
@@ -41,8 +41,8 @@ export class LlamaCppTextEmbeddingModel extends AbstractModel {
41
41
  get isParallelizable() {
42
42
  return this.settings.isParallelizable ?? false;
43
43
  }
44
- get embeddingDimensions() {
45
- return this.settings.embeddingDimensions;
44
+ get dimensions() {
45
+ return this.settings.dimensions;
46
46
  }
47
47
  async tokenize(text) {
48
48
  return this.tokenizer.tokenize(text);
@@ -73,7 +73,7 @@ export class LlamaCppTextEmbeddingModel extends AbstractModel {
73
73
  }
74
74
  get settingsForEvent() {
75
75
  return {
76
- embeddingDimensions: this.settings.embeddingDimensions,
76
+ dimensions: this.settings.dimensions,
77
77
  };
78
78
  }
79
79
  async doEmbedValues(texts, options) {
@@ -33,7 +33,7 @@ class MistralTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
33
33
  writable: true,
34
34
  value: false
35
35
  });
36
- Object.defineProperty(this, "embeddingDimensions", {
36
+ Object.defineProperty(this, "dimensions", {
37
37
  enumerable: true,
38
38
  configurable: true,
39
39
  writable: true,
@@ -26,7 +26,7 @@ export declare class MistralTextEmbeddingModel extends AbstractModel<MistralText
26
26
  * them for now.
27
27
  */
28
28
  readonly isParallelizable = false;
29
- readonly embeddingDimensions = 1024;
29
+ readonly dimensions = 1024;
30
30
  callAPI(texts: Array<string>, callOptions: FunctionCallOptions): Promise<MistralTextEmbeddingResponse>;
31
31
  get settingsForEvent(): Partial<MistralTextEmbeddingModelSettings>;
32
32
  doEmbedValues(texts: string[], options: FunctionCallOptions): Promise<{
@@ -30,7 +30,7 @@ export class MistralTextEmbeddingModel extends AbstractModel {
30
30
  writable: true,
31
31
  value: false
32
32
  });
33
- Object.defineProperty(this, "embeddingDimensions", {
33
+ Object.defineProperty(this, "dimensions", {
34
34
  enumerable: true,
35
35
  configurable: true,
36
36
  writable: true,
@@ -30,8 +30,8 @@ class OllamaTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
30
30
  get isParallelizable() {
31
31
  return this.settings.isParallelizable ?? false;
32
32
  }
33
- get embeddingDimensions() {
34
- return this.settings.embeddingDimensions;
33
+ get dimensions() {
34
+ return this.settings.dimensions;
35
35
  }
36
36
  async callAPI(texts, callOptions) {
37
37
  if (texts.length > this.maxValuesPerCall) {
@@ -62,7 +62,7 @@ class OllamaTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
62
62
  }
63
63
  get settingsForEvent() {
64
64
  return {
65
- embeddingDimensions: this.settings.embeddingDimensions,
65
+ dimensions: this.settings.dimensions,
66
66
  };
67
67
  }
68
68
  async doEmbedValues(texts, options) {
@@ -6,7 +6,7 @@ import { EmbeddingModel, EmbeddingModelSettings } from "../../model-function/emb
6
6
  export interface OllamaTextEmbeddingModelSettings extends EmbeddingModelSettings {
7
7
  api?: ApiConfiguration;
8
8
  model: string;
9
- embeddingDimensions?: number;
9
+ dimensions?: number;
10
10
  isParallelizable?: boolean;
11
11
  }
12
12
  export declare class OllamaTextEmbeddingModel extends AbstractModel<OllamaTextEmbeddingModelSettings> implements EmbeddingModel<string, OllamaTextEmbeddingModelSettings> {
@@ -15,7 +15,7 @@ export declare class OllamaTextEmbeddingModel extends AbstractModel<OllamaTextEm
15
15
  get modelName(): null;
16
16
  readonly maxValuesPerCall = 1;
17
17
  get isParallelizable(): boolean;
18
- get embeddingDimensions(): number | undefined;
18
+ get dimensions(): number | undefined;
19
19
  callAPI(texts: Array<string>, callOptions: FunctionCallOptions): Promise<OllamaTextEmbeddingResponse>;
20
20
  get settingsForEvent(): Partial<OllamaTextEmbeddingModelSettings>;
21
21
  doEmbedValues(texts: string[], options: FunctionCallOptions): Promise<{
@@ -27,8 +27,8 @@ export class OllamaTextEmbeddingModel extends AbstractModel {
27
27
  get isParallelizable() {
28
28
  return this.settings.isParallelizable ?? false;
29
29
  }
30
- get embeddingDimensions() {
31
- return this.settings.embeddingDimensions;
30
+ get dimensions() {
31
+ return this.settings.dimensions;
32
32
  }
33
33
  async callAPI(texts, callOptions) {
34
34
  if (texts.length > this.maxValuesPerCall) {
@@ -59,7 +59,7 @@ export class OllamaTextEmbeddingModel extends AbstractModel {
59
59
  }
60
60
  get settingsForEvent() {
61
61
  return {
62
- embeddingDimensions: this.settings.embeddingDimensions,
62
+ dimensions: this.settings.dimensions,
63
63
  };
64
64
  }
65
65
  async doEmbedValues(texts, options) {
@@ -43,6 +43,7 @@ class AbstractOpenAITextEmbeddingModel extends AbstractModel_js_1.AbstractModel
43
43
  body: {
44
44
  model: this.modelName,
45
45
  input: texts,
46
+ dimensions: this.settings.dimensions,
46
47
  user: this.settings.isUserIdForwardingEnabled
47
48
  ? callOptions.run?.userId
48
49
  : undefined,
@@ -6,6 +6,7 @@ import { EmbeddingModelSettings } from "../../model-function/embed/EmbeddingMode
6
6
  export interface AbstractOpenAITextEmbeddingModelSettings extends EmbeddingModelSettings {
7
7
  api?: ApiConfiguration;
8
8
  model: string;
9
+ dimensions?: number;
9
10
  maxValuesPerCall?: number | undefined;
10
11
  isUserIdForwardingEnabled?: boolean;
11
12
  }
@@ -40,6 +40,7 @@ export class AbstractOpenAITextEmbeddingModel extends AbstractModel {
40
40
  body: {
41
41
  model: this.modelName,
42
42
  input: texts,
43
+ dimensions: this.settings.dimensions,
43
44
  user: this.settings.isUserIdForwardingEnabled
44
45
  ? callOptions.run?.userId
45
46
  : undefined,
@@ -7,17 +7,17 @@ const TikTokenTokenizer_js_1 = require("./TikTokenTokenizer.cjs");
7
7
  exports.OPENAI_TEXT_EMBEDDING_MODELS = {
8
8
  "text-embedding-3-small": {
9
9
  contextWindowSize: 8192,
10
- embeddingDimensions: 1536,
10
+ dimensions: 1536,
11
11
  tokenCostInMillicents: 0.002,
12
12
  },
13
13
  "text-embedding-3-large": {
14
14
  contextWindowSize: 8192,
15
- embeddingDimensions: 3072,
15
+ dimensions: 3072,
16
16
  tokenCostInMillicents: 0.013,
17
17
  },
18
18
  "text-embedding-ada-002": {
19
19
  contextWindowSize: 8192,
20
- embeddingDimensions: 1536,
20
+ dimensions: 1536,
21
21
  tokenCostInMillicents: 0.01,
22
22
  },
23
23
  };
@@ -56,7 +56,7 @@ class OpenAITextEmbeddingModel extends AbstractOpenAITextEmbeddingModel_js_1.Abs
56
56
  writable: true,
57
57
  value: "openai"
58
58
  });
59
- Object.defineProperty(this, "embeddingDimensions", {
59
+ Object.defineProperty(this, "dimensions", {
60
60
  enumerable: true,
61
61
  configurable: true,
62
62
  writable: true,
@@ -77,8 +77,9 @@ class OpenAITextEmbeddingModel extends AbstractOpenAITextEmbeddingModel_js_1.Abs
77
77
  this.tokenizer = new TikTokenTokenizer_js_1.TikTokenTokenizer({ model: this.modelName });
78
78
  this.contextWindowSize =
79
79
  exports.OPENAI_TEXT_EMBEDDING_MODELS[this.modelName].contextWindowSize;
80
- this.embeddingDimensions =
81
- exports.OPENAI_TEXT_EMBEDDING_MODELS[this.modelName].embeddingDimensions;
80
+ this.dimensions =
81
+ this.settings.dimensions ??
82
+ exports.OPENAI_TEXT_EMBEDDING_MODELS[this.modelName].dimensions;
82
83
  }
83
84
  get modelName() {
84
85
  return this.settings.model;
@@ -4,17 +4,17 @@ import { TikTokenTokenizer } from "./TikTokenTokenizer.js";
4
4
  export declare const OPENAI_TEXT_EMBEDDING_MODELS: {
5
5
  "text-embedding-3-small": {
6
6
  contextWindowSize: number;
7
- embeddingDimensions: number;
7
+ dimensions: number;
8
8
  tokenCostInMillicents: number;
9
9
  };
10
10
  "text-embedding-3-large": {
11
11
  contextWindowSize: number;
12
- embeddingDimensions: number;
12
+ dimensions: number;
13
13
  tokenCostInMillicents: number;
14
14
  };
15
15
  "text-embedding-ada-002": {
16
16
  contextWindowSize: number;
17
- embeddingDimensions: number;
17
+ dimensions: number;
18
18
  tokenCostInMillicents: number;
19
19
  };
20
20
  };
@@ -45,7 +45,7 @@ export declare class OpenAITextEmbeddingModel extends AbstractOpenAITextEmbeddin
45
45
  constructor(settings: OpenAITextEmbeddingModelSettings);
46
46
  readonly provider: "openai";
47
47
  get modelName(): "text-embedding-3-small" | "text-embedding-3-large" | "text-embedding-ada-002";
48
- readonly embeddingDimensions: number;
48
+ readonly dimensions: number;
49
49
  readonly tokenizer: TikTokenTokenizer;
50
50
  readonly contextWindowSize: number;
51
51
  countTokens(input: string): Promise<number>;
@@ -4,17 +4,17 @@ import { TikTokenTokenizer } from "./TikTokenTokenizer.js";
4
4
  export const OPENAI_TEXT_EMBEDDING_MODELS = {
5
5
  "text-embedding-3-small": {
6
6
  contextWindowSize: 8192,
7
- embeddingDimensions: 1536,
7
+ dimensions: 1536,
8
8
  tokenCostInMillicents: 0.002,
9
9
  },
10
10
  "text-embedding-3-large": {
11
11
  contextWindowSize: 8192,
12
- embeddingDimensions: 3072,
12
+ dimensions: 3072,
13
13
  tokenCostInMillicents: 0.013,
14
14
  },
15
15
  "text-embedding-ada-002": {
16
16
  contextWindowSize: 8192,
17
- embeddingDimensions: 1536,
17
+ dimensions: 1536,
18
18
  tokenCostInMillicents: 0.01,
19
19
  },
20
20
  };
@@ -51,7 +51,7 @@ export class OpenAITextEmbeddingModel extends AbstractOpenAITextEmbeddingModel {
51
51
  writable: true,
52
52
  value: "openai"
53
53
  });
54
- Object.defineProperty(this, "embeddingDimensions", {
54
+ Object.defineProperty(this, "dimensions", {
55
55
  enumerable: true,
56
56
  configurable: true,
57
57
  writable: true,
@@ -72,8 +72,9 @@ export class OpenAITextEmbeddingModel extends AbstractOpenAITextEmbeddingModel {
72
72
  this.tokenizer = new TikTokenTokenizer({ model: this.modelName });
73
73
  this.contextWindowSize =
74
74
  OPENAI_TEXT_EMBEDDING_MODELS[this.modelName].contextWindowSize;
75
- this.embeddingDimensions =
76
- OPENAI_TEXT_EMBEDDING_MODELS[this.modelName].embeddingDimensions;
75
+ this.dimensions =
76
+ this.settings.dimensions ??
77
+ OPENAI_TEXT_EMBEDDING_MODELS[this.modelName].dimensions;
77
78
  }
78
79
  get modelName() {
79
80
  return this.settings.model;
@@ -12,12 +12,12 @@ class OpenAICompatibleTextEmbeddingModel extends AbstractOpenAITextEmbeddingMode
12
12
  get modelName() {
13
13
  return this.settings.model;
14
14
  }
15
- get embeddingDimensions() {
16
- return this.settings.embeddingDimensions;
15
+ get dimensions() {
16
+ return this.settings.dimensions;
17
17
  }
18
18
  get settingsForEvent() {
19
19
  return {
20
- embeddingDimensions: this.settings.embeddingDimensions,
20
+ dimensions: this.settings.dimensions,
21
21
  };
22
22
  }
23
23
  withSettings(additionalSettings) {
@@ -5,13 +5,13 @@ export interface OpenAICompatibleTextEmbeddingModelSettings extends AbstractOpen
5
5
  api: OpenAICompatibleApiConfiguration;
6
6
  provider?: OpenAICompatibleProviderName;
7
7
  model: string;
8
- embeddingDimensions?: number;
8
+ dimensions?: number;
9
9
  }
10
10
  export declare class OpenAICompatibleTextEmbeddingModel extends AbstractOpenAITextEmbeddingModel<OpenAICompatibleTextEmbeddingModelSettings> implements EmbeddingModel<string, OpenAICompatibleTextEmbeddingModelSettings> {
11
11
  constructor(settings: OpenAICompatibleTextEmbeddingModelSettings);
12
12
  get provider(): OpenAICompatibleProviderName;
13
13
  get modelName(): string;
14
- get embeddingDimensions(): number | undefined;
14
+ get dimensions(): number | undefined;
15
15
  get settingsForEvent(): Partial<OpenAICompatibleTextEmbeddingModelSettings>;
16
16
  withSettings(additionalSettings: OpenAICompatibleTextEmbeddingModelSettings): this;
17
17
  }
@@ -9,12 +9,12 @@ export class OpenAICompatibleTextEmbeddingModel extends AbstractOpenAITextEmbedd
9
9
  get modelName() {
10
10
  return this.settings.model;
11
11
  }
12
- get embeddingDimensions() {
13
- return this.settings.embeddingDimensions;
12
+ get dimensions() {
13
+ return this.settings.dimensions;
14
14
  }
15
15
  get settingsForEvent() {
16
16
  return {
17
- embeddingDimensions: this.settings.embeddingDimensions,
17
+ dimensions: this.settings.dimensions,
18
18
  };
19
19
  }
20
20
  withSettings(additionalSettings) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "modelfusion",
3
3
  "description": "The TypeScript library for building AI applications.",
4
- "version": "0.132.0",
4
+ "version": "0.133.0",
5
5
  "author": "Lars Grammel",
6
6
  "license": "MIT",
7
7
  "keywords": [