modelfusion 0.113.0 → 0.114.1

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 (149) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/README.md +89 -89
  3. package/core/FunctionOptions.d.ts +14 -0
  4. package/core/api/AbstractApiConfiguration.cjs +16 -1
  5. package/core/api/AbstractApiConfiguration.d.ts +7 -3
  6. package/core/api/AbstractApiConfiguration.js +16 -1
  7. package/core/api/ApiConfiguration.d.ts +10 -1
  8. package/core/api/BaseUrlApiConfiguration.cjs +9 -5
  9. package/core/api/BaseUrlApiConfiguration.d.ts +7 -7
  10. package/core/api/BaseUrlApiConfiguration.js +9 -5
  11. package/core/api/CustomHeaderProvider.cjs +2 -0
  12. package/core/api/CustomHeaderProvider.d.ts +2 -0
  13. package/core/api/CustomHeaderProvider.js +1 -0
  14. package/core/api/index.cjs +1 -0
  15. package/core/api/index.d.ts +1 -0
  16. package/core/api/index.js +1 -0
  17. package/core/cache/Cache.cjs +2 -0
  18. package/core/cache/Cache.d.ts +12 -0
  19. package/core/cache/Cache.js +1 -0
  20. package/core/cache/MemoryCache.cjs +23 -0
  21. package/core/cache/MemoryCache.d.ts +15 -0
  22. package/core/cache/MemoryCache.js +19 -0
  23. package/core/cache/index.cjs +18 -0
  24. package/core/cache/index.d.ts +2 -0
  25. package/core/cache/index.js +2 -0
  26. package/core/index.cjs +1 -0
  27. package/core/index.d.ts +1 -0
  28. package/core/index.js +1 -0
  29. package/core/schema/TypeValidationError.cjs +36 -0
  30. package/core/schema/TypeValidationError.d.ts +15 -0
  31. package/core/schema/TypeValidationError.js +32 -0
  32. package/core/schema/index.cjs +2 -0
  33. package/core/schema/index.d.ts +2 -0
  34. package/core/schema/index.js +2 -0
  35. package/core/schema/parseJSON.cjs +6 -14
  36. package/core/schema/parseJSON.d.ts +3 -2
  37. package/core/schema/parseJSON.js +6 -14
  38. package/core/schema/validateTypes.cjs +65 -0
  39. package/core/schema/validateTypes.d.ts +34 -0
  40. package/core/schema/validateTypes.js +60 -0
  41. package/model-function/embed/EmbeddingModel.d.ts +2 -2
  42. package/model-function/executeStandardCall.cjs +3 -1
  43. package/model-function/executeStandardCall.d.ts +2 -2
  44. package/model-function/executeStandardCall.js +3 -1
  45. package/model-function/executeStreamCall.cjs +2 -1
  46. package/model-function/executeStreamCall.d.ts +2 -2
  47. package/model-function/executeStreamCall.js +2 -1
  48. package/model-function/generate-image/ImageGenerationModel.d.ts +2 -2
  49. package/model-function/generate-image/PromptTemplateImageGenerationModel.d.ts +2 -2
  50. package/model-function/generate-speech/SpeechGenerationModel.d.ts +3 -3
  51. package/model-function/generate-structure/generateStructure.cjs +4 -1
  52. package/model-function/generate-structure/generateStructure.js +4 -1
  53. package/model-function/generate-structure/streamStructure.cjs +4 -1
  54. package/model-function/generate-structure/streamStructure.js +4 -1
  55. package/model-function/generate-text/PromptTemplateTextGenerationModel.cjs +3 -0
  56. package/model-function/generate-text/PromptTemplateTextGenerationModel.d.ts +11 -2
  57. package/model-function/generate-text/PromptTemplateTextGenerationModel.js +3 -0
  58. package/model-function/generate-text/PromptTemplateTextStreamingModel.d.ts +2 -2
  59. package/model-function/generate-text/TextGenerationModel.d.ts +12 -3
  60. package/model-function/generate-text/generateText.cjs +43 -1
  61. package/model-function/generate-text/generateText.js +43 -1
  62. package/model-function/generate-transcription/TranscriptionModel.d.ts +2 -2
  63. package/model-provider/anthropic/AnthropicTextGenerationModel.cjs +20 -8
  64. package/model-provider/anthropic/AnthropicTextGenerationModel.d.ts +27 -5
  65. package/model-provider/anthropic/AnthropicTextGenerationModel.js +20 -8
  66. package/model-provider/automatic1111/Automatic1111ImageGenerationModel.cjs +8 -3
  67. package/model-provider/automatic1111/Automatic1111ImageGenerationModel.d.ts +3 -3
  68. package/model-provider/automatic1111/Automatic1111ImageGenerationModel.js +8 -3
  69. package/model-provider/cohere/CohereTextEmbeddingModel.cjs +8 -3
  70. package/model-provider/cohere/CohereTextEmbeddingModel.d.ts +3 -3
  71. package/model-provider/cohere/CohereTextEmbeddingModel.js +8 -3
  72. package/model-provider/cohere/CohereTextGenerationModel.cjs +20 -8
  73. package/model-provider/cohere/CohereTextGenerationModel.d.ts +45 -5
  74. package/model-provider/cohere/CohereTextGenerationModel.js +20 -8
  75. package/model-provider/cohere/CohereTokenizer.cjs +16 -6
  76. package/model-provider/cohere/CohereTokenizer.d.ts +3 -3
  77. package/model-provider/cohere/CohereTokenizer.js +16 -6
  78. package/model-provider/elevenlabs/ElevenLabsApiConfiguration.cjs +1 -1
  79. package/model-provider/elevenlabs/ElevenLabsApiConfiguration.js +1 -1
  80. package/model-provider/elevenlabs/ElevenLabsSpeechModel.cjs +8 -3
  81. package/model-provider/elevenlabs/ElevenLabsSpeechModel.d.ts +2 -2
  82. package/model-provider/elevenlabs/ElevenLabsSpeechModel.js +8 -3
  83. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.cjs +8 -3
  84. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.d.ts +3 -3
  85. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.js +8 -3
  86. package/model-provider/huggingface/HuggingFaceTextGenerationModel.cjs +18 -4
  87. package/model-provider/huggingface/HuggingFaceTextGenerationModel.d.ts +21 -3
  88. package/model-provider/huggingface/HuggingFaceTextGenerationModel.js +18 -4
  89. package/model-provider/llamacpp/LlamaCppCompletionModel.cjs +20 -8
  90. package/model-provider/llamacpp/LlamaCppCompletionModel.d.ts +125 -5
  91. package/model-provider/llamacpp/LlamaCppCompletionModel.js +20 -8
  92. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.cjs +8 -3
  93. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.d.ts +3 -3
  94. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.js +8 -3
  95. package/model-provider/llamacpp/LlamaCppTokenizer.cjs +8 -3
  96. package/model-provider/llamacpp/LlamaCppTokenizer.d.ts +2 -2
  97. package/model-provider/llamacpp/LlamaCppTokenizer.js +8 -3
  98. package/model-provider/lmnt/LmntSpeechModel.cjs +8 -3
  99. package/model-provider/lmnt/LmntSpeechModel.d.ts +2 -2
  100. package/model-provider/lmnt/LmntSpeechModel.js +8 -3
  101. package/model-provider/mistral/MistralChatModel.cjs +20 -8
  102. package/model-provider/mistral/MistralChatModel.d.ts +55 -5
  103. package/model-provider/mistral/MistralChatModel.js +20 -8
  104. package/model-provider/mistral/MistralTextEmbeddingModel.cjs +8 -3
  105. package/model-provider/mistral/MistralTextEmbeddingModel.d.ts +3 -3
  106. package/model-provider/mistral/MistralTextEmbeddingModel.js +8 -3
  107. package/model-provider/ollama/OllamaChatModel.cjs +20 -8
  108. package/model-provider/ollama/OllamaChatModel.d.ts +27 -5
  109. package/model-provider/ollama/OllamaChatModel.js +20 -8
  110. package/model-provider/ollama/OllamaCompletionModel.cjs +20 -7
  111. package/model-provider/ollama/OllamaCompletionModel.d.ts +43 -5
  112. package/model-provider/ollama/OllamaCompletionModel.js +20 -7
  113. package/model-provider/ollama/OllamaTextEmbeddingModel.cjs +8 -3
  114. package/model-provider/ollama/OllamaTextEmbeddingModel.d.ts +3 -3
  115. package/model-provider/ollama/OllamaTextEmbeddingModel.js +8 -3
  116. package/model-provider/openai/AbstractOpenAIChatModel.cjs +25 -15
  117. package/model-provider/openai/AbstractOpenAIChatModel.d.ts +108 -21
  118. package/model-provider/openai/AbstractOpenAIChatModel.js +25 -15
  119. package/model-provider/openai/AbstractOpenAICompletionModel.cjs +21 -9
  120. package/model-provider/openai/AbstractOpenAICompletionModel.d.ts +35 -5
  121. package/model-provider/openai/AbstractOpenAICompletionModel.js +21 -9
  122. package/model-provider/openai/AzureOpenAIApiConfiguration.cjs +5 -2
  123. package/model-provider/openai/AzureOpenAIApiConfiguration.d.ts +2 -1
  124. package/model-provider/openai/AzureOpenAIApiConfiguration.js +5 -2
  125. package/model-provider/openai/OpenAIChatFunctionCallStructureGenerationModel.cjs +12 -6
  126. package/model-provider/openai/OpenAIChatFunctionCallStructureGenerationModel.d.ts +91 -7
  127. package/model-provider/openai/OpenAIChatFunctionCallStructureGenerationModel.js +12 -6
  128. package/model-provider/openai/OpenAIImageGenerationModel.cjs +10 -6
  129. package/model-provider/openai/OpenAIImageGenerationModel.d.ts +4 -4
  130. package/model-provider/openai/OpenAIImageGenerationModel.js +10 -6
  131. package/model-provider/openai/OpenAISpeechModel.cjs +9 -4
  132. package/model-provider/openai/OpenAISpeechModel.d.ts +3 -3
  133. package/model-provider/openai/OpenAISpeechModel.js +9 -4
  134. package/model-provider/openai/OpenAITextEmbeddingModel.cjs +11 -6
  135. package/model-provider/openai/OpenAITextEmbeddingModel.d.ts +3 -3
  136. package/model-provider/openai/OpenAITextEmbeddingModel.js +11 -6
  137. package/model-provider/openai/OpenAITranscriptionModel.cjs +9 -6
  138. package/model-provider/openai/OpenAITranscriptionModel.d.ts +4 -4
  139. package/model-provider/openai/OpenAITranscriptionModel.js +9 -6
  140. package/model-provider/stability/StabilityImageGenerationModel.cjs +10 -5
  141. package/model-provider/stability/StabilityImageGenerationModel.d.ts +3 -3
  142. package/model-provider/stability/StabilityImageGenerationModel.js +10 -5
  143. package/model-provider/whispercpp/WhisperCppTranscriptionModel.cjs +9 -7
  144. package/model-provider/whispercpp/WhisperCppTranscriptionModel.d.ts +3 -3
  145. package/model-provider/whispercpp/WhisperCppTranscriptionModel.js +9 -7
  146. package/observability/helicone/HeliconeOpenAIApiConfiguration.cjs +2 -1
  147. package/observability/helicone/HeliconeOpenAIApiConfiguration.d.ts +3 -1
  148. package/observability/helicone/HeliconeOpenAIApiConfiguration.js +2 -1
  149. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { FunctionOptions } from "../../core/FunctionOptions.js";
2
+ import { FunctionCallOptions } from "../../core/FunctionOptions.js";
3
3
  import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
4
4
  import { AbstractModel } from "../../model-function/AbstractModel.js";
5
5
  import { PromptTemplate } from "../../model-function/PromptTemplate.js";
@@ -64,9 +64,9 @@ export declare class StabilityImageGenerationModel extends AbstractModel<Stabili
64
64
  constructor(settings: StabilityImageGenerationSettings);
65
65
  readonly provider: "stability";
66
66
  get modelName(): StabilityImageGenerationModelType;
67
- callAPI(input: StabilityImageGenerationPrompt, options?: FunctionOptions): Promise<StabilityImageGenerationResponse>;
67
+ callAPI(input: StabilityImageGenerationPrompt, callOptions: FunctionCallOptions): Promise<StabilityImageGenerationResponse>;
68
68
  get settingsForEvent(): Partial<StabilityImageGenerationSettings>;
69
- doGenerateImages(prompt: StabilityImageGenerationPrompt, options?: FunctionOptions): Promise<{
69
+ doGenerateImages(prompt: StabilityImageGenerationPrompt, callOptions: FunctionCallOptions): Promise<{
70
70
  response: {
71
71
  artifacts: {
72
72
  base64: string;
@@ -45,15 +45,20 @@ export class StabilityImageGenerationModel extends AbstractModel {
45
45
  get modelName() {
46
46
  return this.settings.model;
47
47
  }
48
- async callAPI(input, options) {
48
+ async callAPI(input, callOptions) {
49
49
  const api = this.settings.api ?? new StabilityApiConfiguration();
50
- const abortSignal = options?.run?.abortSignal;
50
+ const abortSignal = callOptions.run?.abortSignal;
51
51
  return callWithRetryAndThrottle({
52
52
  retry: this.settings.api?.retry,
53
53
  throttle: this.settings.api?.throttle,
54
54
  call: async () => postJsonToApi({
55
55
  url: api.assembleUrl(`/generation/${this.settings.model}/text-to-image`),
56
- headers: api.headers,
56
+ headers: api.headers({
57
+ functionType: callOptions.functionType,
58
+ functionId: callOptions.functionId,
59
+ run: callOptions.run,
60
+ callId: callOptions.callId,
61
+ }),
57
62
  body: {
58
63
  height: this.settings.height,
59
64
  width: this.settings.width,
@@ -85,8 +90,8 @@ export class StabilityImageGenerationModel extends AbstractModel {
85
90
  stylePreset: this.settings.stylePreset,
86
91
  };
87
92
  }
88
- async doGenerateImages(prompt, options) {
89
- const response = await this.callAPI(prompt, options);
93
+ async doGenerateImages(prompt, callOptions) {
94
+ const response = await this.callAPI(prompt, callOptions);
90
95
  return {
91
96
  response,
92
97
  base64Images: response.artifacts.map((artifact) => artifact.base64),
@@ -26,19 +26,16 @@ class WhisperCppTranscriptionModel extends AbstractModel_js_1.AbstractModel {
26
26
  });
27
27
  }
28
28
  async doTranscribe(data, options) {
29
- const response = await this.callAPI(data, {
30
- functionId: options?.functionId,
31
- run: options?.run,
32
- });
29
+ const response = await this.callAPI(data, options);
33
30
  return {
34
31
  response,
35
32
  transcription: response.text,
36
33
  };
37
34
  }
38
- async callAPI(data, options) {
35
+ async callAPI(data, callOptions) {
39
36
  const { temperature } = this.settings;
40
37
  const api = this.settings.api ?? new WhisperCppApiConfiguration_js_1.WhisperCppApiConfiguration();
41
- const abortSignal = options.run?.abortSignal;
38
+ const abortSignal = callOptions.run?.abortSignal;
42
39
  return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
43
40
  retry: api.retry,
44
41
  throttle: api.throttle,
@@ -51,7 +48,12 @@ class WhisperCppTranscriptionModel extends AbstractModel_js_1.AbstractModel {
51
48
  }
52
49
  return (0, postToApi_js_1.postToApi)({
53
50
  url: api.assembleUrl("/inference"),
54
- headers: api.headers,
51
+ headers: api.headers({
52
+ functionType: callOptions.functionType,
53
+ functionId: callOptions.functionId,
54
+ run: callOptions.run,
55
+ callId: callOptions.callId,
56
+ }),
55
57
  body: {
56
58
  content: formData,
57
59
  values: { temperature },
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { FunctionOptions } from "../../core/FunctionOptions.js";
2
+ import { FunctionCallOptions } from "../../core/FunctionOptions.js";
3
3
  import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
4
4
  import { AbstractModel } from "../../model-function/AbstractModel.js";
5
5
  import { TranscriptionModel, TranscriptionModelSettings } from "../../model-function/generate-transcription/TranscriptionModel.js";
@@ -15,13 +15,13 @@ export declare class WhisperCppTranscriptionModel extends AbstractModel<WhisperC
15
15
  constructor(settings: WhisperCppTranscriptionModelSettings);
16
16
  readonly provider: "whispercpp";
17
17
  readonly modelName: null;
18
- doTranscribe(data: WhisperCppTranscriptionInput, options?: FunctionOptions): Promise<{
18
+ doTranscribe(data: WhisperCppTranscriptionInput, options: FunctionCallOptions): Promise<{
19
19
  response: {
20
20
  text: string;
21
21
  };
22
22
  transcription: string;
23
23
  }>;
24
- callAPI(data: WhisperCppTranscriptionInput, options: FunctionOptions): Promise<{
24
+ callAPI(data: WhisperCppTranscriptionInput, callOptions: FunctionCallOptions): Promise<{
25
25
  text: string;
26
26
  }>;
27
27
  get settingsForEvent(): Partial<WhisperCppTranscriptionModelSettings>;
@@ -23,19 +23,16 @@ export class WhisperCppTranscriptionModel extends AbstractModel {
23
23
  });
24
24
  }
25
25
  async doTranscribe(data, options) {
26
- const response = await this.callAPI(data, {
27
- functionId: options?.functionId,
28
- run: options?.run,
29
- });
26
+ const response = await this.callAPI(data, options);
30
27
  return {
31
28
  response,
32
29
  transcription: response.text,
33
30
  };
34
31
  }
35
- async callAPI(data, options) {
32
+ async callAPI(data, callOptions) {
36
33
  const { temperature } = this.settings;
37
34
  const api = this.settings.api ?? new WhisperCppApiConfiguration();
38
- const abortSignal = options.run?.abortSignal;
35
+ const abortSignal = callOptions.run?.abortSignal;
39
36
  return callWithRetryAndThrottle({
40
37
  retry: api.retry,
41
38
  throttle: api.throttle,
@@ -48,7 +45,12 @@ export class WhisperCppTranscriptionModel extends AbstractModel {
48
45
  }
49
46
  return postToApi({
50
47
  url: api.assembleUrl("/inference"),
51
- headers: api.headers,
48
+ headers: api.headers({
49
+ functionType: callOptions.functionType,
50
+ functionId: callOptions.functionId,
51
+ run: callOptions.run,
52
+ callId: callOptions.callId,
53
+ }),
52
54
  body: {
53
55
  content: formData,
54
56
  values: { temperature },
@@ -4,7 +4,7 @@ exports.HeliconeOpenAIApiConfiguration = void 0;
4
4
  const BaseUrlApiConfiguration_js_1 = require("../../core/api/BaseUrlApiConfiguration.cjs");
5
5
  const loadApiKey_js_1 = require("../../core/api/loadApiKey.cjs");
6
6
  class HeliconeOpenAIApiConfiguration extends BaseUrlApiConfiguration_js_1.BaseUrlApiConfiguration {
7
- constructor({ baseUrl = "https://oai.hconeai.com/v1", openAIApiKey, heliconeApiKey, retry, throttle, } = {}) {
7
+ constructor({ baseUrl = "https://oai.hconeai.com/v1", openAIApiKey, heliconeApiKey, retry, throttle, customCallHeaders, } = {}) {
8
8
  super({
9
9
  baseUrl,
10
10
  headers: {
@@ -23,6 +23,7 @@ class HeliconeOpenAIApiConfiguration extends BaseUrlApiConfiguration_js_1.BaseUr
23
23
  },
24
24
  retry,
25
25
  throttle,
26
+ customCallHeaders,
26
27
  });
27
28
  }
28
29
  }
@@ -1,12 +1,14 @@
1
1
  import { BaseUrlApiConfiguration } from "../../core/api/BaseUrlApiConfiguration.js";
2
+ import { CustomHeaderProvider } from "../../core/api/CustomHeaderProvider.js";
2
3
  import { RetryFunction } from "../../core/api/RetryFunction.js";
3
4
  import { ThrottleFunction } from "../../core/api/ThrottleFunction.js";
4
5
  export declare class HeliconeOpenAIApiConfiguration extends BaseUrlApiConfiguration {
5
- constructor({ baseUrl, openAIApiKey, heliconeApiKey, retry, throttle, }?: {
6
+ constructor({ baseUrl, openAIApiKey, heliconeApiKey, retry, throttle, customCallHeaders, }?: {
6
7
  baseUrl?: string;
7
8
  openAIApiKey?: string;
8
9
  heliconeApiKey?: string;
9
10
  retry?: RetryFunction;
10
11
  throttle?: ThrottleFunction;
12
+ customCallHeaders?: CustomHeaderProvider;
11
13
  });
12
14
  }
@@ -1,7 +1,7 @@
1
1
  import { BaseUrlApiConfiguration } from "../../core/api/BaseUrlApiConfiguration.js";
2
2
  import { loadApiKey } from "../../core/api/loadApiKey.js";
3
3
  export class HeliconeOpenAIApiConfiguration extends BaseUrlApiConfiguration {
4
- constructor({ baseUrl = "https://oai.hconeai.com/v1", openAIApiKey, heliconeApiKey, retry, throttle, } = {}) {
4
+ constructor({ baseUrl = "https://oai.hconeai.com/v1", openAIApiKey, heliconeApiKey, retry, throttle, customCallHeaders, } = {}) {
5
5
  super({
6
6
  baseUrl,
7
7
  headers: {
@@ -20,6 +20,7 @@ export class HeliconeOpenAIApiConfiguration extends BaseUrlApiConfiguration {
20
20
  },
21
21
  retry,
22
22
  throttle,
23
+ customCallHeaders,
23
24
  });
24
25
  }
25
26
  }
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.113.0",
4
+ "version": "0.114.1",
5
5
  "author": "Lars Grammel",
6
6
  "license": "MIT",
7
7
  "keywords": [