modelfusion 0.40.1 → 0.41.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 (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 +25 -28
  69. package/model-provider/cohere/CohereTextGenerationModel.d.ts +24 -22
  70. package/model-provider/cohere/CohereTextGenerationModel.js +25 -28
  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 +27 -33
  87. package/model-provider/llamacpp/LlamaCppTextGenerationModel.d.ts +62 -60
  88. package/model-provider/llamacpp/LlamaCppTextGenerationModel.js +27 -33
  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 +19 -26
  99. package/model-provider/openai/OpenAITextGenerationModel.d.ts +31 -33
  100. package/model-provider/openai/OpenAITextGenerationModel.js +19 -26
  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 +76 -85
  105. package/model-provider/openai/chat/OpenAIChatModel.d.ts +127 -50
  106. package/model-provider/openai/chat/OpenAIChatModel.js +77 -86
  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 +2 -18
  115. package/prompt/PromptFormatTextGenerationModel.d.ts +14 -10
  116. package/prompt/PromptFormatTextGenerationModel.js +2 -18
  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
@@ -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,7 +106,7 @@ 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
111
  stopSequences: [
112
112
  ...(this.settings.stopSequences ?? []),
@@ -116,13 +116,6 @@ class LlamaCppTextGenerationModel extends AbstractModel_js_1.AbstractModel {
116
116
  promptFormat,
117
117
  });
118
118
  }
119
- extractUsage(response) {
120
- return {
121
- promptTokens: response.tokens_evaluated,
122
- completionTokens: response.tokens_predicted,
123
- totalTokens: response.tokens_evaluated + response.tokens_predicted,
124
- };
125
- }
126
119
  withSettings(additionalSettings) {
127
120
  return new LlamaCppTextGenerationModel(Object.assign({}, this.settings, additionalSettings));
128
121
  }
@@ -242,6 +235,7 @@ async function createLlamaCppFullDeltaIterableQueue(stream) {
242
235
  isComplete: eventData.stop,
243
236
  delta: eventData.content,
244
237
  },
238
+ valueDelta: eventData.content,
245
239
  });
246
240
  if (eventData.stop) {
247
241
  queue.close();
@@ -1,12 +1,12 @@
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 { ResponseHandler } from "../../core/api/postToApi.js";
4
5
  import { AbstractModel } from "../../model-function/AbstractModel.js";
5
- import { DeltaEvent } from "../../model-function/DeltaEvent.js";
6
- import { ModelFunctionOptions } from "../../model-function/ModelFunctionOptions.js";
7
- import { TextGenerationModel, TextGenerationModelSettings } from "../../model-function/generate-text/TextGenerationModel.js";
6
+ import { Delta } from "../../model-function/Delta.js";
7
+ import { TextGenerationModelSettings, TextStreamingModel } from "../../model-function/generate-text/TextGenerationModel.js";
8
8
  import { PromptFormat } from "../../prompt/PromptFormat.js";
9
- import { PromptFormatTextGenerationModel } from "../../prompt/PromptFormatTextGenerationModel.js";
9
+ import { PromptFormatTextStreamingModel } from "../../prompt/PromptFormatTextStreamingModel.js";
10
10
  import { LlamaCppTokenizer } from "./LlamaCppTokenizer.js";
11
11
  export interface LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE extends number | undefined> extends TextGenerationModelSettings {
12
12
  api?: ApiConfiguration;
@@ -31,7 +31,7 @@ export interface LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE extends
31
31
  ignoreEos?: boolean;
32
32
  logitBias?: Array<[number, number | false]>;
33
33
  }
34
- export declare class LlamaCppTextGenerationModel<CONTEXT_WINDOW_SIZE extends number | undefined> extends AbstractModel<LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>> implements TextGenerationModel<string, LlamaCppTextGenerationResponse, LlamaCppTextGenerationDelta, LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>> {
34
+ export declare class LlamaCppTextGenerationModel<CONTEXT_WINDOW_SIZE extends number | undefined> extends AbstractModel<LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>> implements TextStreamingModel<string, LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>> {
35
35
  constructor(settings?: LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>);
36
36
  readonly provider = "llamacpp";
37
37
  get modelName(): null;
@@ -39,67 +39,69 @@ export declare class LlamaCppTextGenerationModel<CONTEXT_WINDOW_SIZE extends num
39
39
  readonly tokenizer: LlamaCppTokenizer;
40
40
  callAPI<RESPONSE>(prompt: string, options: {
41
41
  responseFormat: LlamaCppTextGenerationResponseFormatType<RESPONSE>;
42
- } & ModelFunctionOptions<LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>>): Promise<RESPONSE>;
42
+ } & FunctionOptions): Promise<RESPONSE>;
43
43
  get settingsForEvent(): Partial<LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>>;
44
44
  countPromptTokens(prompt: string): Promise<number>;
45
- generateTextResponse(prompt: string, options?: ModelFunctionOptions<LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>>): Promise<{
46
- model: string;
47
- prompt: string;
48
- content: string;
49
- stop: true;
50
- generation_settings: {
45
+ doGenerateText(prompt: string, options?: FunctionOptions): Promise<{
46
+ response: {
51
47
  model: string;
52
- stream: boolean;
53
- seed: number;
54
- mirostat: number;
55
- stop: string[];
56
- frequency_penalty: number;
57
- ignore_eos: boolean;
58
- logit_bias: number[];
59
- mirostat_eta: number;
60
- mirostat_tau: number;
61
- n_ctx: number;
62
- n_keep: number;
63
- n_predict: number;
64
- n_probs: number;
65
- penalize_nl: boolean;
66
- presence_penalty: number;
67
- repeat_last_n: number;
68
- repeat_penalty: number;
69
- temp: number;
70
- tfs_z: number;
71
- top_k: number;
72
- top_p: number;
73
- typical_p: number;
48
+ prompt: string;
49
+ content: string;
50
+ stop: true;
51
+ generation_settings: {
52
+ model: string;
53
+ stream: boolean;
54
+ seed: number;
55
+ mirostat: number;
56
+ stop: string[];
57
+ frequency_penalty: number;
58
+ ignore_eos: boolean;
59
+ logit_bias: number[];
60
+ mirostat_eta: number;
61
+ mirostat_tau: number;
62
+ n_ctx: number;
63
+ n_keep: number;
64
+ n_predict: number;
65
+ n_probs: number;
66
+ penalize_nl: boolean;
67
+ presence_penalty: number;
68
+ repeat_last_n: number;
69
+ repeat_penalty: number;
70
+ temp: number;
71
+ tfs_z: number;
72
+ top_k: number;
73
+ top_p: number;
74
+ typical_p: number;
75
+ };
76
+ stopped_eos: boolean;
77
+ stopped_limit: boolean;
78
+ stopped_word: boolean;
79
+ stopping_word: string;
80
+ timings: {
81
+ predicted_ms: number;
82
+ predicted_n: number;
83
+ predicted_per_second: number | null;
84
+ predicted_per_token_ms: number | null;
85
+ prompt_ms: number | null;
86
+ prompt_n: number;
87
+ prompt_per_second: number | null;
88
+ prompt_per_token_ms: number | null;
89
+ };
90
+ tokens_cached: number;
91
+ tokens_evaluated: number;
92
+ tokens_predicted: number;
93
+ truncated: boolean;
74
94
  };
75
- stopped_eos: boolean;
76
- stopped_limit: boolean;
77
- stopped_word: boolean;
78
- stopping_word: string;
79
- timings: {
80
- predicted_ms: number;
81
- predicted_n: number;
82
- predicted_per_second: number | null;
83
- predicted_per_token_ms: number | null;
84
- prompt_ms: number | null;
85
- prompt_n: number;
86
- prompt_per_second: number | null;
87
- prompt_per_token_ms: number | null;
95
+ text: string;
96
+ usage: {
97
+ promptTokens: number;
98
+ completionTokens: number;
99
+ totalTokens: number;
88
100
  };
89
- tokens_cached: number;
90
- tokens_evaluated: number;
91
- tokens_predicted: number;
92
- truncated: boolean;
93
101
  }>;
94
- extractText(response: LlamaCppTextGenerationResponse): string;
95
- generateDeltaStreamResponse(prompt: string, options?: ModelFunctionOptions<LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>>): Promise<AsyncIterable<DeltaEvent<LlamaCppTextGenerationDelta>>>;
102
+ doStreamText(prompt: string, options?: FunctionOptions): Promise<AsyncIterable<Delta<string>>>;
96
103
  extractTextDelta(fullDelta: LlamaCppTextGenerationDelta): string | undefined;
97
- withPromptFormat<INPUT_PROMPT>(promptFormat: PromptFormat<INPUT_PROMPT, string>): PromptFormatTextGenerationModel<INPUT_PROMPT, string, LlamaCppTextGenerationResponse, LlamaCppTextGenerationDelta, LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>, this>;
98
- extractUsage(response: LlamaCppTextGenerationResponse): {
99
- promptTokens: number;
100
- completionTokens: number;
101
- totalTokens: number;
102
- };
104
+ withPromptFormat<INPUT_PROMPT>(promptFormat: PromptFormat<INPUT_PROMPT, string>): PromptFormatTextStreamingModel<INPUT_PROMPT, string, LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>, this>;
103
105
  withSettings(additionalSettings: Partial<LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>>): this;
104
106
  }
105
107
  declare const llamaCppTextGenerationResponseSchema: z.ZodObject<{
@@ -387,7 +389,7 @@ export declare const LlamaCppTextGenerationResponseFormat: {
387
389
  stream: true;
388
390
  handler: ({ response }: {
389
391
  response: Response;
390
- }) => Promise<AsyncIterable<DeltaEvent<LlamaCppTextGenerationDelta>>>;
392
+ }) => Promise<AsyncIterable<Delta<string>>>;
391
393
  };
392
394
  };
393
395
  export {};