modelfusion 0.40.0 → 0.41.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 (146) hide show
  1. package/README.md +14 -7
  2. package/composed-function/summarize/summarizeRecursivelyWithTextGenerationAndTokenSplitting.d.ts +3 -3
  3. package/core/FunctionEvent.d.ts +1 -1
  4. package/model-function/AsyncIterableResultPromise.d.ts +1 -1
  5. package/model-function/Delta.d.ts +8 -0
  6. package/model-function/ModelCallEvent.d.ts +1 -1
  7. package/model-function/ModelCallMetadata.d.ts +13 -0
  8. package/model-function/describe-image/ImageDescriptionEvent.d.ts +1 -1
  9. package/model-function/describe-image/ImageDescriptionModel.d.ts +6 -4
  10. package/model-function/describe-image/describeImage.cjs +7 -2
  11. package/model-function/describe-image/describeImage.d.ts +2 -2
  12. package/model-function/describe-image/describeImage.js +7 -2
  13. package/model-function/embed/EmbeddingEvent.d.ts +1 -1
  14. package/model-function/embed/EmbeddingModel.d.ts +6 -4
  15. package/model-function/embed/embed.cjs +16 -11
  16. package/model-function/embed/embed.d.ts +3 -3
  17. package/model-function/embed/embed.js +16 -11
  18. package/model-function/executeCall.cjs +26 -30
  19. package/model-function/executeCall.d.ts +19 -28
  20. package/model-function/executeCall.js +26 -30
  21. package/model-function/generate-image/ImageGenerationEvent.d.ts +1 -1
  22. package/model-function/generate-image/ImageGenerationModel.d.ts +6 -4
  23. package/model-function/generate-image/generateImage.cjs +7 -2
  24. package/model-function/generate-image/generateImage.d.ts +2 -2
  25. package/model-function/generate-image/generateImage.js +7 -2
  26. package/model-function/generate-structure/StructureFromTextGenerationModel.cjs +6 -5
  27. package/model-function/generate-structure/StructureFromTextGenerationModel.d.ts +7 -5
  28. package/model-function/generate-structure/StructureFromTextGenerationModel.js +6 -5
  29. package/model-function/generate-structure/StructureGenerationEvent.d.ts +1 -1
  30. package/model-function/generate-structure/StructureGenerationModel.d.ts +15 -18
  31. package/model-function/generate-structure/StructureOrTextGenerationModel.d.ts +19 -17
  32. package/model-function/generate-structure/generateStructure.cjs +10 -8
  33. package/model-function/generate-structure/generateStructure.d.ts +2 -2
  34. package/model-function/generate-structure/generateStructure.js +10 -8
  35. package/model-function/generate-structure/generateStructureOrText.cjs +15 -8
  36. package/model-function/generate-structure/generateStructureOrText.d.ts +4 -4
  37. package/model-function/generate-structure/generateStructureOrText.js +15 -8
  38. package/model-function/generate-structure/streamStructure.cjs +4 -16
  39. package/model-function/generate-structure/streamStructure.d.ts +3 -7
  40. package/model-function/generate-structure/streamStructure.js +4 -16
  41. package/model-function/generate-text/TextGenerationEvent.d.ts +1 -1
  42. package/model-function/generate-text/TextGenerationModel.d.ts +18 -19
  43. package/model-function/generate-text/generateText.cjs +8 -9
  44. package/model-function/generate-text/generateText.d.ts +2 -2
  45. package/model-function/generate-text/generateText.js +8 -9
  46. package/model-function/generate-text/streamText.cjs +8 -21
  47. package/model-function/generate-text/streamText.d.ts +3 -7
  48. package/model-function/generate-text/streamText.js +8 -21
  49. package/model-function/index.cjs +2 -2
  50. package/model-function/index.d.ts +2 -2
  51. package/model-function/index.js +2 -2
  52. package/model-function/synthesize-speech/SpeechSynthesisEvent.d.ts +1 -1
  53. package/model-function/synthesize-speech/SpeechSynthesisModel.d.ts +3 -3
  54. package/model-function/synthesize-speech/synthesizeSpeech.cjs +7 -2
  55. package/model-function/synthesize-speech/synthesizeSpeech.d.ts +2 -2
  56. package/model-function/synthesize-speech/synthesizeSpeech.js +7 -2
  57. package/model-function/transcribe-speech/TranscriptionEvent.d.ts +1 -1
  58. package/model-function/transcribe-speech/TranscriptionModel.d.ts +6 -4
  59. package/model-function/transcribe-speech/transcribe.cjs +7 -2
  60. package/model-function/transcribe-speech/transcribe.d.ts +2 -2
  61. package/model-function/transcribe-speech/transcribe.js +7 -2
  62. package/model-provider/automatic1111/Automatic1111ImageGenerationModel.cjs +14 -18
  63. package/model-provider/automatic1111/Automatic1111ImageGenerationModel.d.ts +11 -9
  64. package/model-provider/automatic1111/Automatic1111ImageGenerationModel.js +14 -18
  65. package/model-provider/cohere/CohereTextEmbeddingModel.cjs +13 -16
  66. package/model-provider/cohere/CohereTextEmbeddingModel.d.ts +12 -10
  67. package/model-provider/cohere/CohereTextEmbeddingModel.js +13 -16
  68. package/model-provider/cohere/CohereTextGenerationModel.cjs +29 -29
  69. package/model-provider/cohere/CohereTextGenerationModel.d.ts +24 -22
  70. package/model-provider/cohere/CohereTextGenerationModel.js +29 -29
  71. package/model-provider/elevenlabs/ElevenLabsSpeechSynthesisModel.cjs +10 -17
  72. package/model-provider/elevenlabs/ElevenLabsSpeechSynthesisModel.d.ts +2 -2
  73. package/model-provider/elevenlabs/ElevenLabsSpeechSynthesisModel.js +10 -17
  74. package/model-provider/huggingface/HuggingFaceImageDescriptionModel.cjs +13 -16
  75. package/model-provider/huggingface/HuggingFaceImageDescriptionModel.d.ts +9 -7
  76. package/model-provider/huggingface/HuggingFaceImageDescriptionModel.js +13 -16
  77. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.cjs +19 -25
  78. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.d.ts +8 -6
  79. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.js +19 -25
  80. package/model-provider/huggingface/HuggingFaceTextGenerationModel.cjs +18 -24
  81. package/model-provider/huggingface/HuggingFaceTextGenerationModel.d.ts +10 -8
  82. package/model-provider/huggingface/HuggingFaceTextGenerationModel.js +18 -24
  83. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.cjs +13 -16
  84. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.d.ts +8 -6
  85. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.js +13 -16
  86. package/model-provider/llamacpp/LlamaCppTextGenerationModel.cjs +31 -34
  87. package/model-provider/llamacpp/LlamaCppTextGenerationModel.d.ts +62 -60
  88. package/model-provider/llamacpp/LlamaCppTextGenerationModel.js +31 -34
  89. package/model-provider/lmnt/LmntSpeechSynthesisModel.cjs +7 -12
  90. package/model-provider/lmnt/LmntSpeechSynthesisModel.d.ts +2 -2
  91. package/model-provider/lmnt/LmntSpeechSynthesisModel.js +7 -12
  92. package/model-provider/openai/OpenAIImageGenerationModel.cjs +8 -16
  93. package/model-provider/openai/OpenAIImageGenerationModel.d.ts +11 -11
  94. package/model-provider/openai/OpenAIImageGenerationModel.js +8 -16
  95. package/model-provider/openai/OpenAITextEmbeddingModel.cjs +18 -24
  96. package/model-provider/openai/OpenAITextEmbeddingModel.d.ts +18 -16
  97. package/model-provider/openai/OpenAITextEmbeddingModel.js +18 -24
  98. package/model-provider/openai/OpenAITextGenerationModel.cjs +23 -27
  99. package/model-provider/openai/OpenAITextGenerationModel.d.ts +31 -33
  100. package/model-provider/openai/OpenAITextGenerationModel.js +23 -27
  101. package/model-provider/openai/OpenAITranscriptionModel.cjs +19 -28
  102. package/model-provider/openai/OpenAITranscriptionModel.d.ts +27 -7
  103. package/model-provider/openai/OpenAITranscriptionModel.js +19 -28
  104. package/model-provider/openai/chat/OpenAIChatModel.cjs +82 -86
  105. package/model-provider/openai/chat/OpenAIChatModel.d.ts +127 -50
  106. package/model-provider/openai/chat/OpenAIChatModel.js +83 -87
  107. package/model-provider/openai/chat/OpenAIChatStreamIterable.cjs +4 -3
  108. package/model-provider/openai/chat/OpenAIChatStreamIterable.d.ts +2 -2
  109. package/model-provider/openai/chat/OpenAIChatStreamIterable.js +2 -1
  110. package/model-provider/stability/StabilityImageGenerationModel.cjs +16 -21
  111. package/model-provider/stability/StabilityImageGenerationModel.d.ts +13 -11
  112. package/model-provider/stability/StabilityImageGenerationModel.js +16 -21
  113. package/package.json +1 -1
  114. package/prompt/PromptFormatTextGenerationModel.cjs +6 -19
  115. package/prompt/PromptFormatTextGenerationModel.d.ts +14 -10
  116. package/prompt/PromptFormatTextGenerationModel.js +6 -19
  117. package/prompt/PromptFormatTextStreamingModel.cjs +31 -0
  118. package/prompt/PromptFormatTextStreamingModel.d.ts +13 -0
  119. package/prompt/PromptFormatTextStreamingModel.js +27 -0
  120. package/prompt/chat/trimChatPrompt.d.ts +2 -2
  121. package/prompt/index.cjs +1 -0
  122. package/prompt/index.d.ts +1 -0
  123. package/prompt/index.js +1 -0
  124. package/retriever/Retriever.d.ts +3 -6
  125. package/retriever/retrieve.cjs +2 -2
  126. package/retriever/retrieve.d.ts +3 -3
  127. package/retriever/retrieve.js +2 -2
  128. package/tool/executeTool.cjs +2 -2
  129. package/tool/executeTool.js +2 -2
  130. package/tool/useTool.cjs +2 -4
  131. package/tool/useTool.d.ts +2 -2
  132. package/tool/useTool.js +2 -4
  133. package/tool/useToolOrGenerateText.d.ts +2 -2
  134. package/util/SafeResult.d.ts +1 -1
  135. package/util/runSafe.cjs +1 -1
  136. package/util/runSafe.js +1 -1
  137. package/vector-index/VectorIndexRetriever.cjs +0 -7
  138. package/vector-index/VectorIndexRetriever.d.ts +5 -5
  139. package/vector-index/VectorIndexRetriever.js +0 -7
  140. package/vector-index/upsertIntoVectorIndex.d.ts +4 -4
  141. package/model-function/DeltaEvent.d.ts +0 -7
  142. package/model-function/ModelFunctionOptions.d.ts +0 -4
  143. /package/model-function/{DeltaEvent.cjs → Delta.cjs} +0 -0
  144. /package/model-function/{DeltaEvent.js → Delta.js} +0 -0
  145. /package/model-function/{ModelFunctionOptions.cjs → ModelCallMetadata.cjs} +0 -0
  146. /package/model-function/{ModelFunctionOptions.js → ModelCallMetadata.js} +0 -0
@@ -5,11 +5,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.HuggingFaceTextEmbeddingModel = void 0;
7
7
  const zod_1 = __importDefault(require("zod"));
8
- const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
9
8
  const callWithRetryAndThrottle_js_1 = require("../../core/api/callWithRetryAndThrottle.cjs");
10
9
  const postToApi_js_1 = require("../../core/api/postToApi.cjs");
11
- const HuggingFaceError_js_1 = require("./HuggingFaceError.cjs");
10
+ const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
12
11
  const HuggingFaceApiConfiguration_js_1 = require("./HuggingFaceApiConfiguration.cjs");
12
+ const HuggingFaceError_js_1 = require("./HuggingFaceError.cjs");
13
13
  /**
14
14
  * Create a text embedding model that calls a Hugging Face Inference API Feature Extraction Task.
15
15
  *
@@ -80,25 +80,18 @@ class HuggingFaceTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
80
80
  if (texts.length > this.maxValuesPerCall) {
81
81
  throw new Error(`The HuggingFace feature extraction API is configured to only support ${this.maxValuesPerCall} texts per API call.`);
82
82
  }
83
- const run = options?.run;
84
- const settings = options?.settings;
85
- const combinedSettings = {
86
- ...this.settings,
87
- ...settings,
88
- };
89
- const callSettings = {
90
- options: {
91
- useCache: true,
92
- waitForModel: true,
93
- },
94
- ...combinedSettings,
95
- abortSignal: run?.abortSignal,
96
- inputs: texts,
97
- };
98
83
  return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
99
- retry: callSettings.api?.retry,
100
- throttle: callSettings.api?.throttle,
101
- call: async () => callHuggingFaceTextGenerationAPI(callSettings),
84
+ retry: this.settings.api?.retry,
85
+ throttle: this.settings.api?.throttle,
86
+ call: async () => callHuggingFaceTextGenerationAPI({
87
+ options: {
88
+ useCache: true,
89
+ waitForModel: true,
90
+ },
91
+ ...this.settings,
92
+ abortSignal: options?.run?.abortSignal,
93
+ inputs: texts,
94
+ }),
102
95
  });
103
96
  }
104
97
  get settingsForEvent() {
@@ -107,11 +100,12 @@ class HuggingFaceTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
107
100
  options: this.settings.options,
108
101
  };
109
102
  }
110
- generateEmbeddingResponse(texts, options) {
111
- return this.callAPI(texts, options);
112
- }
113
- extractEmbeddings(response) {
114
- return response;
103
+ async doEmbedValues(texts, options) {
104
+ const response = await this.callAPI(texts, options);
105
+ return {
106
+ response,
107
+ embeddings: response,
108
+ };
115
109
  }
116
110
  withSettings(additionalSettings) {
117
111
  return new HuggingFaceTextEmbeddingModel(Object.assign({}, this.settings, additionalSettings));
@@ -1,7 +1,7 @@
1
1
  import z from "zod";
2
- import { AbstractModel } from "../../model-function/AbstractModel.js";
2
+ import { FunctionOptions } from "../../core/FunctionOptions.js";
3
3
  import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
4
- import { ModelFunctionOptions } from "../../model-function/ModelFunctionOptions.js";
4
+ import { AbstractModel } from "../../model-function/AbstractModel.js";
5
5
  import { EmbeddingModel, EmbeddingModelSettings } from "../../model-function/embed/EmbeddingModel.js";
6
6
  export interface HuggingFaceTextEmbeddingModelSettings extends EmbeddingModelSettings {
7
7
  api?: ApiConfiguration;
@@ -33,7 +33,7 @@ export interface HuggingFaceTextEmbeddingModelSettings extends EmbeddingModelSet
33
33
  * ]
34
34
  * );
35
35
  */
36
- export declare class HuggingFaceTextEmbeddingModel extends AbstractModel<HuggingFaceTextEmbeddingModelSettings> implements EmbeddingModel<string, HuggingFaceTextEmbeddingResponse, HuggingFaceTextEmbeddingModelSettings> {
36
+ export declare class HuggingFaceTextEmbeddingModel extends AbstractModel<HuggingFaceTextEmbeddingModelSettings> implements EmbeddingModel<string, HuggingFaceTextEmbeddingModelSettings> {
37
37
  constructor(settings: HuggingFaceTextEmbeddingModelSettings);
38
38
  readonly provider = "huggingface";
39
39
  get modelName(): string;
@@ -41,11 +41,13 @@ export declare class HuggingFaceTextEmbeddingModel extends AbstractModel<Hugging
41
41
  readonly contextWindowSize: undefined;
42
42
  readonly embeddingDimensions: number | undefined;
43
43
  readonly tokenizer: undefined;
44
- callAPI(texts: Array<string>, options?: ModelFunctionOptions<HuggingFaceTextEmbeddingModelSettings>): Promise<HuggingFaceTextEmbeddingResponse>;
44
+ callAPI(texts: Array<string>, options?: FunctionOptions): Promise<HuggingFaceTextEmbeddingResponse>;
45
45
  get settingsForEvent(): Partial<HuggingFaceTextEmbeddingModelSettings>;
46
46
  readonly countPromptTokens: undefined;
47
- generateEmbeddingResponse(texts: string[], options?: ModelFunctionOptions<HuggingFaceTextEmbeddingModelSettings>): Promise<number[][]>;
48
- extractEmbeddings(response: HuggingFaceTextEmbeddingResponse): number[][];
47
+ doEmbedValues(texts: string[], options?: FunctionOptions): Promise<{
48
+ response: number[][];
49
+ embeddings: number[][];
50
+ }>;
49
51
  withSettings(additionalSettings: Partial<HuggingFaceTextEmbeddingModelSettings>): this;
50
52
  }
51
53
  declare const huggingFaceTextEmbeddingResponseSchema: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
@@ -1,9 +1,9 @@
1
1
  import z from "zod";
2
- import { AbstractModel } from "../../model-function/AbstractModel.js";
3
2
  import { callWithRetryAndThrottle } from "../../core/api/callWithRetryAndThrottle.js";
4
3
  import { createJsonResponseHandler, postJsonToApi, } from "../../core/api/postToApi.js";
5
- import { failedHuggingFaceCallResponseHandler } from "./HuggingFaceError.js";
4
+ import { AbstractModel } from "../../model-function/AbstractModel.js";
6
5
  import { HuggingFaceApiConfiguration } from "./HuggingFaceApiConfiguration.js";
6
+ import { failedHuggingFaceCallResponseHandler } from "./HuggingFaceError.js";
7
7
  /**
8
8
  * Create a text embedding model that calls a Hugging Face Inference API Feature Extraction Task.
9
9
  *
@@ -74,25 +74,18 @@ export class HuggingFaceTextEmbeddingModel extends AbstractModel {
74
74
  if (texts.length > this.maxValuesPerCall) {
75
75
  throw new Error(`The HuggingFace feature extraction API is configured to only support ${this.maxValuesPerCall} texts per API call.`);
76
76
  }
77
- const run = options?.run;
78
- const settings = options?.settings;
79
- const combinedSettings = {
80
- ...this.settings,
81
- ...settings,
82
- };
83
- const callSettings = {
84
- options: {
85
- useCache: true,
86
- waitForModel: true,
87
- },
88
- ...combinedSettings,
89
- abortSignal: run?.abortSignal,
90
- inputs: texts,
91
- };
92
77
  return callWithRetryAndThrottle({
93
- retry: callSettings.api?.retry,
94
- throttle: callSettings.api?.throttle,
95
- call: async () => callHuggingFaceTextGenerationAPI(callSettings),
78
+ retry: this.settings.api?.retry,
79
+ throttle: this.settings.api?.throttle,
80
+ call: async () => callHuggingFaceTextGenerationAPI({
81
+ options: {
82
+ useCache: true,
83
+ waitForModel: true,
84
+ },
85
+ ...this.settings,
86
+ abortSignal: options?.run?.abortSignal,
87
+ inputs: texts,
88
+ }),
96
89
  });
97
90
  }
98
91
  get settingsForEvent() {
@@ -101,11 +94,12 @@ export class HuggingFaceTextEmbeddingModel extends AbstractModel {
101
94
  options: this.settings.options,
102
95
  };
103
96
  }
104
- generateEmbeddingResponse(texts, options) {
105
- return this.callAPI(texts, options);
106
- }
107
- extractEmbeddings(response) {
108
- return response;
97
+ async doEmbedValues(texts, options) {
98
+ const response = await this.callAPI(texts, options);
99
+ return {
100
+ response,
101
+ embeddings: response,
102
+ };
109
103
  }
110
104
  withSettings(additionalSettings) {
111
105
  return new HuggingFaceTextEmbeddingModel(Object.assign({}, this.settings, additionalSettings));
@@ -61,26 +61,19 @@ class HuggingFaceTextGenerationModel extends AbstractModel_js_1.AbstractModel {
61
61
  return this.settings.model;
62
62
  }
63
63
  async callAPI(prompt, options) {
64
- const run = options?.run;
65
- const settings = options?.settings;
66
- const combinedSettings = {
67
- ...this.settings,
68
- ...settings,
69
- };
70
- const callSettings = {
71
- options: {
72
- useCache: true,
73
- waitForModel: true,
74
- },
75
- ...combinedSettings,
76
- maxNewTokens: combinedSettings.maxCompletionTokens,
77
- abortSignal: run?.abortSignal,
78
- inputs: prompt,
79
- };
80
64
  return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
81
- retry: callSettings.api?.retry,
82
- throttle: callSettings.api?.throttle,
83
- call: async () => callHuggingFaceTextGenerationAPI(callSettings),
65
+ retry: this.settings.api?.retry,
66
+ throttle: this.settings.api?.throttle,
67
+ call: async () => callHuggingFaceTextGenerationAPI({
68
+ options: {
69
+ useCache: true,
70
+ waitForModel: true,
71
+ },
72
+ ...this.settings,
73
+ maxNewTokens: this.settings.maxCompletionTokens,
74
+ abortSignal: options?.run?.abortSignal,
75
+ inputs: prompt,
76
+ }),
84
77
  });
85
78
  }
86
79
  get settingsForEvent() {
@@ -98,11 +91,12 @@ class HuggingFaceTextGenerationModel extends AbstractModel_js_1.AbstractModel {
98
91
  ];
99
92
  return Object.fromEntries(Object.entries(this.settings).filter(([key]) => eventSettingProperties.includes(key)));
100
93
  }
101
- generateTextResponse(prompt, options) {
102
- return this.callAPI(prompt, options);
103
- }
104
- extractText(response) {
105
- return response[0].generated_text;
94
+ async doGenerateText(prompt, options) {
95
+ const response = await this.callAPI(prompt, options);
96
+ return {
97
+ response,
98
+ text: response[0].generated_text,
99
+ };
106
100
  }
107
101
  withPromptFormat(promptFormat) {
108
102
  return new PromptFormatTextGenerationModel_js_1.PromptFormatTextGenerationModel({
@@ -1,7 +1,7 @@
1
1
  import z from "zod";
2
2
  import { AbstractModel } from "../../model-function/AbstractModel.js";
3
3
  import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
4
- import { ModelFunctionOptions } from "../../model-function/ModelFunctionOptions.js";
4
+ import { FunctionOptions } from "../../core/FunctionOptions.js";
5
5
  import { TextGenerationModel, TextGenerationModelSettings } from "../../model-function/generate-text/TextGenerationModel.js";
6
6
  import { PromptFormat } from "../../prompt/PromptFormat.js";
7
7
  import { PromptFormatTextGenerationModel } from "../../prompt/PromptFormatTextGenerationModel.js";
@@ -38,20 +38,22 @@ export interface HuggingFaceTextGenerationModelSettings extends TextGenerationMo
38
38
  * "Write a short story about a robot learning to love:\n\n"
39
39
  * );
40
40
  */
41
- export declare class HuggingFaceTextGenerationModel extends AbstractModel<HuggingFaceTextGenerationModelSettings> implements TextGenerationModel<string, HuggingFaceTextGenerationResponse, undefined, HuggingFaceTextGenerationModelSettings> {
41
+ export declare class HuggingFaceTextGenerationModel extends AbstractModel<HuggingFaceTextGenerationModelSettings> implements TextGenerationModel<string, HuggingFaceTextGenerationModelSettings> {
42
42
  constructor(settings: HuggingFaceTextGenerationModelSettings);
43
43
  readonly provider = "huggingface";
44
44
  get modelName(): string;
45
45
  readonly contextWindowSize: undefined;
46
46
  readonly tokenizer: undefined;
47
- callAPI(prompt: string, options?: ModelFunctionOptions<HuggingFaceTextGenerationModelSettings>): Promise<HuggingFaceTextGenerationResponse>;
47
+ callAPI(prompt: string, options?: FunctionOptions): Promise<HuggingFaceTextGenerationResponse>;
48
48
  get settingsForEvent(): Partial<HuggingFaceTextGenerationModelSettings>;
49
49
  readonly countPromptTokens: undefined;
50
- generateTextResponse(prompt: string, options?: ModelFunctionOptions<HuggingFaceTextGenerationModelSettings>): Promise<{
51
- generated_text: string;
52
- }[]>;
53
- extractText(response: HuggingFaceTextGenerationResponse): string;
54
- withPromptFormat<INPUT_PROMPT>(promptFormat: PromptFormat<INPUT_PROMPT, string>): PromptFormatTextGenerationModel<INPUT_PROMPT, string, HuggingFaceTextGenerationResponse, undefined, HuggingFaceTextGenerationModelSettings, this>;
50
+ doGenerateText(prompt: string, options?: FunctionOptions): Promise<{
51
+ response: {
52
+ generated_text: string;
53
+ }[];
54
+ text: string;
55
+ }>;
56
+ withPromptFormat<INPUT_PROMPT>(promptFormat: PromptFormat<INPUT_PROMPT, string>): PromptFormatTextGenerationModel<INPUT_PROMPT, string, HuggingFaceTextGenerationModelSettings, this>;
55
57
  withSettings(additionalSettings: Partial<HuggingFaceTextGenerationModelSettings>): this;
56
58
  }
57
59
  declare const huggingFaceTextGenerationResponseSchema: z.ZodArray<z.ZodObject<{
@@ -55,26 +55,19 @@ export class HuggingFaceTextGenerationModel extends AbstractModel {
55
55
  return this.settings.model;
56
56
  }
57
57
  async callAPI(prompt, options) {
58
- const run = options?.run;
59
- const settings = options?.settings;
60
- const combinedSettings = {
61
- ...this.settings,
62
- ...settings,
63
- };
64
- const callSettings = {
65
- options: {
66
- useCache: true,
67
- waitForModel: true,
68
- },
69
- ...combinedSettings,
70
- maxNewTokens: combinedSettings.maxCompletionTokens,
71
- abortSignal: run?.abortSignal,
72
- inputs: prompt,
73
- };
74
58
  return callWithRetryAndThrottle({
75
- retry: callSettings.api?.retry,
76
- throttle: callSettings.api?.throttle,
77
- call: async () => callHuggingFaceTextGenerationAPI(callSettings),
59
+ retry: this.settings.api?.retry,
60
+ throttle: this.settings.api?.throttle,
61
+ call: async () => callHuggingFaceTextGenerationAPI({
62
+ options: {
63
+ useCache: true,
64
+ waitForModel: true,
65
+ },
66
+ ...this.settings,
67
+ maxNewTokens: this.settings.maxCompletionTokens,
68
+ abortSignal: options?.run?.abortSignal,
69
+ inputs: prompt,
70
+ }),
78
71
  });
79
72
  }
80
73
  get settingsForEvent() {
@@ -92,11 +85,12 @@ export class HuggingFaceTextGenerationModel extends AbstractModel {
92
85
  ];
93
86
  return Object.fromEntries(Object.entries(this.settings).filter(([key]) => eventSettingProperties.includes(key)));
94
87
  }
95
- generateTextResponse(prompt, options) {
96
- return this.callAPI(prompt, options);
97
- }
98
- extractText(response) {
99
- return response[0].generated_text;
88
+ async doGenerateText(prompt, options) {
89
+ const response = await this.callAPI(prompt, options);
90
+ return {
91
+ response,
92
+ text: response[0].generated_text,
93
+ };
100
94
  }
101
95
  withPromptFormat(promptFormat) {
102
96
  return new PromptFormatTextGenerationModel({
@@ -57,18 +57,14 @@ class LlamaCppTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
57
57
  if (texts.length > this.maxValuesPerCall) {
58
58
  throw new Error(`The Llama.cpp embedding API only supports ${this.maxValuesPerCall} texts per API call.`);
59
59
  }
60
- const run = options?.run;
61
- const settings = options?.settings;
62
- const callSettings = {
63
- ...this.settings,
64
- ...settings,
65
- abortSignal: run?.abortSignal,
66
- content: texts[0],
67
- };
68
60
  return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
69
- retry: callSettings.api?.retry,
70
- throttle: callSettings.api?.throttle,
71
- call: async () => callLlamaCppEmbeddingAPI(callSettings),
61
+ retry: this.settings.api?.retry,
62
+ throttle: this.settings.api?.throttle,
63
+ call: async () => callLlamaCppEmbeddingAPI({
64
+ ...this.settings,
65
+ abortSignal: options?.run?.abortSignal,
66
+ content: texts[0],
67
+ }),
72
68
  });
73
69
  }
74
70
  get settingsForEvent() {
@@ -76,11 +72,12 @@ class LlamaCppTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
76
72
  embeddingDimensions: this.settings.embeddingDimensions,
77
73
  };
78
74
  }
79
- generateEmbeddingResponse(texts, options) {
80
- return this.callAPI(texts, options);
81
- }
82
- extractEmbeddings(response) {
83
- return [response.embedding];
75
+ async doEmbedValues(texts, options) {
76
+ const response = await this.callAPI(texts, options);
77
+ return {
78
+ response,
79
+ embeddings: [response.embedding],
80
+ };
84
81
  }
85
82
  withSettings(additionalSettings) {
86
83
  return new LlamaCppTextEmbeddingModel(Object.assign({}, this.settings, additionalSettings));
@@ -1,13 +1,13 @@
1
1
  import z from "zod";
2
+ import { FunctionOptions } from "../../core/FunctionOptions.js";
2
3
  import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
3
4
  import { AbstractModel } from "../../model-function/AbstractModel.js";
4
- import { ModelFunctionOptions } from "../../model-function/ModelFunctionOptions.js";
5
5
  import { EmbeddingModel, EmbeddingModelSettings } from "../../model-function/embed/EmbeddingModel.js";
6
6
  export interface LlamaCppTextEmbeddingModelSettings extends EmbeddingModelSettings {
7
7
  api?: ApiConfiguration;
8
8
  embeddingDimensions?: number;
9
9
  }
10
- export declare class LlamaCppTextEmbeddingModel extends AbstractModel<LlamaCppTextEmbeddingModelSettings> implements EmbeddingModel<string, LlamaCppTextEmbeddingResponse, LlamaCppTextEmbeddingModelSettings> {
10
+ export declare class LlamaCppTextEmbeddingModel extends AbstractModel<LlamaCppTextEmbeddingModelSettings> implements EmbeddingModel<string, LlamaCppTextEmbeddingModelSettings> {
11
11
  constructor(settings?: LlamaCppTextEmbeddingModelSettings);
12
12
  readonly provider: "llamacpp";
13
13
  get modelName(): null;
@@ -16,12 +16,14 @@ export declare class LlamaCppTextEmbeddingModel extends AbstractModel<LlamaCppTe
16
16
  readonly embeddingDimensions: number | undefined;
17
17
  private readonly tokenizer;
18
18
  tokenize(text: string): Promise<number[]>;
19
- callAPI(texts: Array<string>, options?: ModelFunctionOptions<LlamaCppTextEmbeddingModelSettings>): Promise<LlamaCppTextEmbeddingResponse>;
19
+ callAPI(texts: Array<string>, options?: FunctionOptions): Promise<LlamaCppTextEmbeddingResponse>;
20
20
  get settingsForEvent(): Partial<LlamaCppTextEmbeddingModelSettings>;
21
- generateEmbeddingResponse(texts: string[], options?: ModelFunctionOptions<LlamaCppTextEmbeddingModelSettings>): Promise<{
22
- embedding: number[];
21
+ doEmbedValues(texts: string[], options?: FunctionOptions): Promise<{
22
+ response: {
23
+ embedding: number[];
24
+ };
25
+ embeddings: number[][];
23
26
  }>;
24
- extractEmbeddings(response: LlamaCppTextEmbeddingResponse): number[][];
25
27
  withSettings(additionalSettings: Partial<LlamaCppTextEmbeddingModelSettings>): this;
26
28
  }
27
29
  declare const llamaCppTextEmbeddingResponseSchema: z.ZodObject<{
@@ -51,18 +51,14 @@ export class LlamaCppTextEmbeddingModel extends AbstractModel {
51
51
  if (texts.length > this.maxValuesPerCall) {
52
52
  throw new Error(`The Llama.cpp embedding API only supports ${this.maxValuesPerCall} texts per API call.`);
53
53
  }
54
- const run = options?.run;
55
- const settings = options?.settings;
56
- const callSettings = {
57
- ...this.settings,
58
- ...settings,
59
- abortSignal: run?.abortSignal,
60
- content: texts[0],
61
- };
62
54
  return callWithRetryAndThrottle({
63
- retry: callSettings.api?.retry,
64
- throttle: callSettings.api?.throttle,
65
- call: async () => callLlamaCppEmbeddingAPI(callSettings),
55
+ retry: this.settings.api?.retry,
56
+ throttle: this.settings.api?.throttle,
57
+ call: async () => callLlamaCppEmbeddingAPI({
58
+ ...this.settings,
59
+ abortSignal: options?.run?.abortSignal,
60
+ content: texts[0],
61
+ }),
66
62
  });
67
63
  }
68
64
  get settingsForEvent() {
@@ -70,11 +66,12 @@ export class LlamaCppTextEmbeddingModel extends AbstractModel {
70
66
  embeddingDimensions: this.settings.embeddingDimensions,
71
67
  };
72
68
  }
73
- generateEmbeddingResponse(texts, options) {
74
- return this.callAPI(texts, options);
75
- }
76
- extractEmbeddings(response) {
77
- return [response.embedding];
69
+ async doEmbedValues(texts, options) {
70
+ const response = await this.callAPI(texts, options);
71
+ return {
72
+ response,
73
+ embeddings: [response.embedding],
74
+ };
78
75
  }
79
76
  withSettings(additionalSettings) {
80
77
  return new LlamaCppTextEmbeddingModel(Object.assign({}, this.settings, additionalSettings));
@@ -11,7 +11,7 @@ const postToApi_js_1 = require("../../core/api/postToApi.cjs");
11
11
  const AsyncQueue_js_1 = require("../../event-source/AsyncQueue.cjs");
12
12
  const parseEventSourceStream_js_1 = require("../../event-source/parseEventSourceStream.cjs");
13
13
  const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
14
- const PromptFormatTextGenerationModel_js_1 = require("../../prompt/PromptFormatTextGenerationModel.cjs");
14
+ const PromptFormatTextStreamingModel_js_1 = require("../../prompt/PromptFormatTextStreamingModel.cjs");
15
15
  const LlamaCppApiConfiguration_js_1 = require("./LlamaCppApiConfiguration.cjs");
16
16
  const LlamaCppError_js_1 = require("./LlamaCppError.cjs");
17
17
  const LlamaCppTokenizer_js_1 = require("./LlamaCppTokenizer.cjs");
@@ -39,25 +39,19 @@ class LlamaCppTextGenerationModel extends AbstractModel_js_1.AbstractModel {
39
39
  return this.settings.contextWindowSize;
40
40
  }
41
41
  async callAPI(prompt, options) {
42
- const { run, settings, responseFormat } = options;
43
- const combinedSettings = {
44
- ...this.settings,
45
- ...settings,
46
- };
47
- const callSettings = {
48
- ...combinedSettings,
49
- // mapping
50
- nPredict: combinedSettings.maxCompletionTokens,
51
- stop: combinedSettings.stopSequences,
52
- // other
53
- abortSignal: run?.abortSignal,
54
- prompt,
55
- responseFormat,
56
- };
57
42
  return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
58
- retry: callSettings.api?.retry,
59
- throttle: callSettings.api?.throttle,
60
- call: async () => callLlamaCppTextGenerationAPI(callSettings),
43
+ retry: this.settings.api?.retry,
44
+ throttle: this.settings.api?.throttle,
45
+ call: async () => callLlamaCppTextGenerationAPI({
46
+ ...this.settings,
47
+ // mapping
48
+ nPredict: this.settings.maxCompletionTokens,
49
+ stop: this.settings.stopSequences,
50
+ // other
51
+ abortSignal: options.run?.abortSignal,
52
+ prompt,
53
+ responseFormat: options.responseFormat,
54
+ }),
61
55
  });
62
56
  }
63
57
  get settingsForEvent() {
@@ -87,16 +81,22 @@ class LlamaCppTextGenerationModel extends AbstractModel_js_1.AbstractModel {
87
81
  const tokens = await this.tokenizer.tokenize(prompt);
88
82
  return tokens.length;
89
83
  }
90
- generateTextResponse(prompt, options) {
91
- return this.callAPI(prompt, {
84
+ async doGenerateText(prompt, options) {
85
+ const response = await this.callAPI(prompt, {
92
86
  ...options,
93
87
  responseFormat: exports.LlamaCppTextGenerationResponseFormat.json,
94
88
  });
89
+ return {
90
+ response,
91
+ text: response.content,
92
+ usage: {
93
+ promptTokens: response.tokens_evaluated,
94
+ completionTokens: response.tokens_predicted,
95
+ totalTokens: response.tokens_evaluated + response.tokens_predicted,
96
+ },
97
+ };
95
98
  }
96
- extractText(response) {
97
- return response.content;
98
- }
99
- generateDeltaStreamResponse(prompt, options) {
99
+ doStreamText(prompt, options) {
100
100
  return this.callAPI(prompt, {
101
101
  ...options,
102
102
  responseFormat: exports.LlamaCppTextGenerationResponseFormat.deltaIterable,
@@ -106,20 +106,16 @@ class LlamaCppTextGenerationModel extends AbstractModel_js_1.AbstractModel {
106
106
  return fullDelta.delta;
107
107
  }
108
108
  withPromptFormat(promptFormat) {
109
- return new PromptFormatTextGenerationModel_js_1.PromptFormatTextGenerationModel({
109
+ return new PromptFormatTextStreamingModel_js_1.PromptFormatTextStreamingModel({
110
110
  model: this.withSettings({
111
- stopSequences: promptFormat.stopSequences,
111
+ stopSequences: [
112
+ ...(this.settings.stopSequences ?? []),
113
+ ...promptFormat.stopSequences,
114
+ ],
112
115
  }),
113
116
  promptFormat,
114
117
  });
115
118
  }
116
- extractUsage(response) {
117
- return {
118
- promptTokens: response.tokens_evaluated,
119
- completionTokens: response.tokens_predicted,
120
- totalTokens: response.tokens_evaluated + response.tokens_predicted,
121
- };
122
- }
123
119
  withSettings(additionalSettings) {
124
120
  return new LlamaCppTextGenerationModel(Object.assign({}, this.settings, additionalSettings));
125
121
  }
@@ -239,6 +235,7 @@ async function createLlamaCppFullDeltaIterableQueue(stream) {
239
235
  isComplete: eventData.stop,
240
236
  delta: eventData.content,
241
237
  },
238
+ valueDelta: eventData.content,
242
239
  });
243
240
  if (eventData.stop) {
244
241
  queue.close();