modelfusion 0.40.1 → 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 +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 { 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
  import { FullTokenizer } from "../../model-function/tokenize-text/Tokenizer.js";
7
7
  export declare const COHERE_TEXT_EMBEDDING_MODELS: {
@@ -38,7 +38,7 @@ export interface CohereTextEmbeddingModelSettings extends EmbeddingModelSettings
38
38
  * ]
39
39
  * );
40
40
  */
41
- export declare class CohereTextEmbeddingModel extends AbstractModel<CohereTextEmbeddingModelSettings> implements EmbeddingModel<string, CohereTextEmbeddingResponse, CohereTextEmbeddingModelSettings>, FullTokenizer {
41
+ export declare class CohereTextEmbeddingModel extends AbstractModel<CohereTextEmbeddingModelSettings> implements EmbeddingModel<string, CohereTextEmbeddingModelSettings>, FullTokenizer {
42
42
  constructor(settings: CohereTextEmbeddingModelSettings);
43
43
  readonly provider: "cohere";
44
44
  get modelName(): "embed-english-light-v2.0" | "embed-english-v2.0" | "embed-multilingual-v2.0";
@@ -52,19 +52,21 @@ export declare class CohereTextEmbeddingModel extends AbstractModel<CohereTextEm
52
52
  tokenTexts: string[];
53
53
  }>;
54
54
  detokenize(tokens: number[]): Promise<string>;
55
- callAPI(texts: Array<string>, options?: ModelFunctionOptions<CohereTextEmbeddingModelSettings>): Promise<CohereTextEmbeddingResponse>;
55
+ callAPI(texts: Array<string>, options?: FunctionOptions): Promise<CohereTextEmbeddingResponse>;
56
56
  get settingsForEvent(): Partial<CohereTextEmbeddingModelSettings>;
57
- generateEmbeddingResponse(texts: string[], options?: ModelFunctionOptions<CohereTextEmbeddingModelSettings>): Promise<{
58
- id: string;
59
- meta: {
60
- api_version: {
61
- version: string;
57
+ doEmbedValues(texts: string[], options?: FunctionOptions): Promise<{
58
+ response: {
59
+ id: string;
60
+ meta: {
61
+ api_version: {
62
+ version: string;
63
+ };
62
64
  };
65
+ texts: string[];
66
+ embeddings: number[][];
63
67
  };
64
- texts: string[];
65
68
  embeddings: number[][];
66
69
  }>;
67
- extractEmbeddings(response: CohereTextEmbeddingResponse): number[][];
68
70
  withSettings(additionalSettings: Partial<CohereTextEmbeddingModelSettings>): this;
69
71
  }
70
72
  declare const cohereTextEmbeddingResponseSchema: z.ZodObject<{
@@ -91,18 +91,14 @@ export class CohereTextEmbeddingModel extends AbstractModel {
91
91
  if (texts.length > this.maxValuesPerCall) {
92
92
  throw new Error(`The Cohere embedding API only supports ${this.maxValuesPerCall} texts per API call.`);
93
93
  }
94
- const run = options?.run;
95
- const settings = options?.settings;
96
- const callSettings = {
97
- ...this.settings,
98
- ...settings,
99
- abortSignal: run?.abortSignal,
100
- texts,
101
- };
102
94
  return callWithRetryAndThrottle({
103
- retry: callSettings.api?.retry,
104
- throttle: callSettings.api?.throttle,
105
- call: async () => callCohereEmbeddingAPI(callSettings),
95
+ retry: this.settings.api?.retry,
96
+ throttle: this.settings.api?.throttle,
97
+ call: async () => callCohereEmbeddingAPI({
98
+ ...this.settings,
99
+ abortSignal: options?.run?.abortSignal,
100
+ texts,
101
+ }),
106
102
  });
107
103
  }
108
104
  get settingsForEvent() {
@@ -110,11 +106,12 @@ export class CohereTextEmbeddingModel extends AbstractModel {
110
106
  truncate: this.settings.truncate,
111
107
  };
112
108
  }
113
- generateEmbeddingResponse(texts, options) {
114
- return this.callAPI(texts, options);
115
- }
116
- extractEmbeddings(response) {
117
- return response.embeddings;
109
+ async doEmbedValues(texts, options) {
110
+ const response = await this.callAPI(texts, options);
111
+ return {
112
+ response,
113
+ embeddings: response.embeddings,
114
+ };
118
115
  }
119
116
  withSettings(additionalSettings) {
120
117
  return new CohereTextEmbeddingModel(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 AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
13
13
  const countTokens_js_1 = require("../../model-function/tokenize-text/countTokens.cjs");
14
- const PromptFormatTextGenerationModel_js_1 = require("../../prompt/PromptFormatTextGenerationModel.cjs");
14
+ const PromptFormatTextStreamingModel_js_1 = require("../../prompt/PromptFormatTextStreamingModel.cjs");
15
15
  const CohereApiConfiguration_js_1 = require("./CohereApiConfiguration.cjs");
16
16
  const CohereError_js_1 = require("./CohereError.cjs");
17
17
  const CohereTokenizer_js_1 = require("./CohereTokenizer.cjs");
@@ -81,27 +81,21 @@ class CohereTextGenerationModel extends AbstractModel_js_1.AbstractModel {
81
81
  return (0, countTokens_js_1.countTokens)(this.tokenizer, input);
82
82
  }
83
83
  async callAPI(prompt, options) {
84
- const { run, settings, responseFormat } = options;
85
- const combinedSettings = {
86
- ...this.settings,
87
- settings,
88
- };
89
- const callSettings = {
90
- ...combinedSettings,
91
- // use endSequences instead of stopSequences
92
- // to exclude stop tokens from the generated text
93
- endSequences: combinedSettings.stopSequences,
94
- maxTokens: combinedSettings.maxCompletionTokens,
95
- // mapped name because of conflict with stopSequences:
96
- stopSequences: combinedSettings.cohereStopSequences,
97
- abortSignal: run?.abortSignal,
98
- prompt,
99
- responseFormat,
100
- };
101
84
  return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
102
- retry: callSettings.api?.retry,
103
- throttle: callSettings.api?.throttle,
104
- call: async () => callCohereTextGenerationAPI(callSettings),
85
+ retry: this.settings.api?.retry,
86
+ throttle: this.settings.api?.throttle,
87
+ call: async () => callCohereTextGenerationAPI({
88
+ ...this.settings,
89
+ // use endSequences instead of stopSequences
90
+ // to exclude stop tokens from the generated text
91
+ endSequences: this.settings.stopSequences,
92
+ maxTokens: this.settings.maxCompletionTokens,
93
+ // mapped name because of conflict with stopSequences:
94
+ stopSequences: this.settings.cohereStopSequences,
95
+ abortSignal: options.run?.abortSignal,
96
+ responseFormat: options.responseFormat,
97
+ prompt,
98
+ }),
105
99
  });
106
100
  }
107
101
  get settingsForEvent() {
@@ -121,16 +115,17 @@ class CohereTextGenerationModel extends AbstractModel_js_1.AbstractModel {
121
115
  ];
122
116
  return Object.fromEntries(Object.entries(this.settings).filter(([key]) => eventSettingProperties.includes(key)));
123
117
  }
124
- generateTextResponse(prompt, options) {
125
- return this.callAPI(prompt, {
118
+ async doGenerateText(prompt, options) {
119
+ const response = await this.callAPI(prompt, {
126
120
  ...options,
127
121
  responseFormat: exports.CohereTextGenerationResponseFormat.json,
128
122
  });
123
+ return {
124
+ response,
125
+ text: response.generations[0].text,
126
+ };
129
127
  }
130
- extractText(response) {
131
- return response.generations[0].text;
132
- }
133
- generateDeltaStreamResponse(prompt, options) {
128
+ doStreamText(prompt, options) {
134
129
  return this.callAPI(prompt, {
135
130
  ...options,
136
131
  responseFormat: exports.CohereTextGenerationResponseFormat.deltaIterable,
@@ -140,7 +135,7 @@ class CohereTextGenerationModel extends AbstractModel_js_1.AbstractModel {
140
135
  return fullDelta.delta;
141
136
  }
142
137
  withPromptFormat(promptFormat) {
143
- return new PromptFormatTextGenerationModel_js_1.PromptFormatTextGenerationModel({
138
+ return new PromptFormatTextStreamingModel_js_1.PromptFormatTextStreamingModel({
144
139
  model: this.withSettings({
145
140
  stopSequences: [
146
141
  ...(this.settings.stopSequences ?? []),
@@ -221,6 +216,7 @@ async function createCohereTextGenerationFullDeltaIterableQueue(stream) {
221
216
  isComplete: true,
222
217
  delta: "",
223
218
  },
219
+ valueDelta: "",
224
220
  });
225
221
  }
226
222
  else {
@@ -232,6 +228,7 @@ async function createCohereTextGenerationFullDeltaIterableQueue(stream) {
232
228
  isComplete: false,
233
229
  delta: event.text,
234
230
  },
231
+ valueDelta: event.text,
235
232
  });
236
233
  }
237
234
  }
@@ -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 { CohereTokenizer } from "./CohereTokenizer.js";
11
11
  export declare const COHERE_TEXT_GENERATION_MODELS: {
12
12
  command: {
@@ -54,7 +54,7 @@ export interface CohereTextGenerationModelSettings extends TextGenerationModelSe
54
54
  * "Write a short story about a robot learning to love:\n\n"
55
55
  * );
56
56
  */
57
- export declare class CohereTextGenerationModel extends AbstractModel<CohereTextGenerationModelSettings> implements TextGenerationModel<string, CohereTextGenerationResponse, CohereTextGenerationDelta, CohereTextGenerationModelSettings> {
57
+ export declare class CohereTextGenerationModel extends AbstractModel<CohereTextGenerationModelSettings> implements TextStreamingModel<string, CohereTextGenerationModelSettings> {
58
58
  constructor(settings: CohereTextGenerationModelSettings);
59
59
  readonly provider: "cohere";
60
60
  get modelName(): "command" | "command-nightly" | "command-light" | "command-light-nightly";
@@ -63,26 +63,28 @@ export declare class CohereTextGenerationModel extends AbstractModel<CohereTextG
63
63
  countPromptTokens(input: string): Promise<number>;
64
64
  callAPI<RESPONSE>(prompt: string, options: {
65
65
  responseFormat: CohereTextGenerationResponseFormatType<RESPONSE>;
66
- } & ModelFunctionOptions<CohereTextGenerationModelSettings>): Promise<RESPONSE>;
66
+ } & FunctionOptions): Promise<RESPONSE>;
67
67
  get settingsForEvent(): Partial<CohereTextGenerationModelSettings>;
68
- generateTextResponse(prompt: string, options?: ModelFunctionOptions<CohereTextGenerationModelSettings>): Promise<{
69
- prompt: string;
70
- id: string;
71
- generations: {
72
- text: string;
68
+ doGenerateText(prompt: string, options?: FunctionOptions): Promise<{
69
+ response: {
70
+ prompt: string;
73
71
  id: string;
74
- finish_reason?: string | undefined;
75
- }[];
76
- meta?: {
77
- api_version: {
78
- version: string;
79
- };
80
- } | undefined;
72
+ generations: {
73
+ text: string;
74
+ id: string;
75
+ finish_reason?: string | undefined;
76
+ }[];
77
+ meta?: {
78
+ api_version: {
79
+ version: string;
80
+ };
81
+ } | undefined;
82
+ };
83
+ text: string;
81
84
  }>;
82
- extractText(response: CohereTextGenerationResponse): string;
83
- generateDeltaStreamResponse(prompt: string, options?: ModelFunctionOptions<CohereTextGenerationModelSettings>): Promise<AsyncIterable<DeltaEvent<CohereTextGenerationDelta>>>;
85
+ doStreamText(prompt: string, options?: FunctionOptions): Promise<AsyncIterable<Delta<string>>>;
84
86
  extractTextDelta(fullDelta: CohereTextGenerationDelta): string | undefined;
85
- withPromptFormat<INPUT_PROMPT>(promptFormat: PromptFormat<INPUT_PROMPT, string>): PromptFormatTextGenerationModel<INPUT_PROMPT, string, CohereTextGenerationResponse, CohereTextGenerationDelta, CohereTextGenerationModelSettings, this>;
87
+ withPromptFormat<INPUT_PROMPT>(promptFormat: PromptFormat<INPUT_PROMPT, string>): PromptFormatTextStreamingModel<INPUT_PROMPT, string, CohereTextGenerationModelSettings, this>;
86
88
  withSettings(additionalSettings: Partial<CohereTextGenerationModelSettings>): this;
87
89
  }
88
90
  declare const cohereTextGenerationResponseSchema: z.ZodObject<{
@@ -184,7 +186,7 @@ export declare const CohereTextGenerationResponseFormat: {
184
186
  stream: true;
185
187
  handler: ({ response }: {
186
188
  response: Response;
187
- }) => Promise<AsyncIterable<DeltaEvent<CohereTextGenerationDelta>>>;
189
+ }) => Promise<AsyncIterable<Delta<string>>>;
188
190
  };
189
191
  };
190
192
  export {};
@@ -5,7 +5,7 @@ import { createJsonResponseHandler, postJsonToApi, } from "../../core/api/postTo
5
5
  import { AsyncQueue } from "../../event-source/AsyncQueue.js";
6
6
  import { AbstractModel } from "../../model-function/AbstractModel.js";
7
7
  import { countTokens } from "../../model-function/tokenize-text/countTokens.js";
8
- import { PromptFormatTextGenerationModel } from "../../prompt/PromptFormatTextGenerationModel.js";
8
+ import { PromptFormatTextStreamingModel } from "../../prompt/PromptFormatTextStreamingModel.js";
9
9
  import { CohereApiConfiguration } from "./CohereApiConfiguration.js";
10
10
  import { failedCohereCallResponseHandler } from "./CohereError.js";
11
11
  import { CohereTokenizer } from "./CohereTokenizer.js";
@@ -75,27 +75,21 @@ export class CohereTextGenerationModel extends AbstractModel {
75
75
  return countTokens(this.tokenizer, input);
76
76
  }
77
77
  async callAPI(prompt, options) {
78
- const { run, settings, responseFormat } = options;
79
- const combinedSettings = {
80
- ...this.settings,
81
- settings,
82
- };
83
- const callSettings = {
84
- ...combinedSettings,
85
- // use endSequences instead of stopSequences
86
- // to exclude stop tokens from the generated text
87
- endSequences: combinedSettings.stopSequences,
88
- maxTokens: combinedSettings.maxCompletionTokens,
89
- // mapped name because of conflict with stopSequences:
90
- stopSequences: combinedSettings.cohereStopSequences,
91
- abortSignal: run?.abortSignal,
92
- prompt,
93
- responseFormat,
94
- };
95
78
  return callWithRetryAndThrottle({
96
- retry: callSettings.api?.retry,
97
- throttle: callSettings.api?.throttle,
98
- call: async () => callCohereTextGenerationAPI(callSettings),
79
+ retry: this.settings.api?.retry,
80
+ throttle: this.settings.api?.throttle,
81
+ call: async () => callCohereTextGenerationAPI({
82
+ ...this.settings,
83
+ // use endSequences instead of stopSequences
84
+ // to exclude stop tokens from the generated text
85
+ endSequences: this.settings.stopSequences,
86
+ maxTokens: this.settings.maxCompletionTokens,
87
+ // mapped name because of conflict with stopSequences:
88
+ stopSequences: this.settings.cohereStopSequences,
89
+ abortSignal: options.run?.abortSignal,
90
+ responseFormat: options.responseFormat,
91
+ prompt,
92
+ }),
99
93
  });
100
94
  }
101
95
  get settingsForEvent() {
@@ -115,16 +109,17 @@ export class CohereTextGenerationModel extends AbstractModel {
115
109
  ];
116
110
  return Object.fromEntries(Object.entries(this.settings).filter(([key]) => eventSettingProperties.includes(key)));
117
111
  }
118
- generateTextResponse(prompt, options) {
119
- return this.callAPI(prompt, {
112
+ async doGenerateText(prompt, options) {
113
+ const response = await this.callAPI(prompt, {
120
114
  ...options,
121
115
  responseFormat: CohereTextGenerationResponseFormat.json,
122
116
  });
117
+ return {
118
+ response,
119
+ text: response.generations[0].text,
120
+ };
123
121
  }
124
- extractText(response) {
125
- return response.generations[0].text;
126
- }
127
- generateDeltaStreamResponse(prompt, options) {
122
+ doStreamText(prompt, options) {
128
123
  return this.callAPI(prompt, {
129
124
  ...options,
130
125
  responseFormat: CohereTextGenerationResponseFormat.deltaIterable,
@@ -134,7 +129,7 @@ export class CohereTextGenerationModel extends AbstractModel {
134
129
  return fullDelta.delta;
135
130
  }
136
131
  withPromptFormat(promptFormat) {
137
- return new PromptFormatTextGenerationModel({
132
+ return new PromptFormatTextStreamingModel({
138
133
  model: this.withSettings({
139
134
  stopSequences: [
140
135
  ...(this.settings.stopSequences ?? []),
@@ -214,6 +209,7 @@ async function createCohereTextGenerationFullDeltaIterableQueue(stream) {
214
209
  isComplete: true,
215
210
  delta: "",
216
211
  },
212
+ valueDelta: "",
217
213
  });
218
214
  }
219
215
  else {
@@ -225,6 +221,7 @@ async function createCohereTextGenerationFullDeltaIterableQueue(stream) {
225
221
  isComplete: false,
226
222
  delta: event.text,
227
223
  },
224
+ valueDelta: event.text,
228
225
  });
229
226
  }
230
227
  }
@@ -25,24 +25,17 @@ class ElevenLabsSpeechSynthesisModel extends AbstractModel_js_1.AbstractModel {
25
25
  return this.settings.voice;
26
26
  }
27
27
  async callAPI(text, options) {
28
- const run = options?.run;
29
- const settings = options?.settings;
30
- const combinedSettings = {
31
- ...this.settings,
32
- ...settings,
33
- };
34
- const callSettings = {
35
- api: combinedSettings.api,
36
- abortSignal: run?.abortSignal,
37
- text,
38
- voiceId: combinedSettings.voice,
39
- modelId: combinedSettings.model,
40
- voiceSettings: combinedSettings.voiceSettings,
41
- };
42
28
  return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
43
- retry: combinedSettings.api?.retry,
44
- throttle: combinedSettings.api?.throttle,
45
- call: async () => callElevenLabsTextToSpeechAPI(callSettings),
29
+ retry: this.settings.api?.retry,
30
+ throttle: this.settings.api?.throttle,
31
+ call: async () => callElevenLabsTextToSpeechAPI({
32
+ api: this.settings.api,
33
+ abortSignal: options?.run?.abortSignal,
34
+ text,
35
+ voiceId: this.settings.voice,
36
+ modelId: this.settings.model,
37
+ voiceSettings: this.settings.voiceSettings,
38
+ }),
46
39
  });
47
40
  }
48
41
  get settingsForEvent() {
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
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 { SpeechSynthesisModel, SpeechSynthesisModelSettings } from "../../model-function/synthesize-speech/SpeechSynthesisModel.js";
6
6
  export interface ElevenLabsSpeechSynthesisModelSettings extends SpeechSynthesisModelSettings {
7
7
  api?: ApiConfiguration;
@@ -25,6 +25,6 @@ export declare class ElevenLabsSpeechSynthesisModel extends AbstractModel<Eleven
25
25
  get modelName(): string;
26
26
  private callAPI;
27
27
  get settingsForEvent(): Partial<ElevenLabsSpeechSynthesisModelSettings>;
28
- generateSpeechResponse(text: string, options?: ModelFunctionOptions<ElevenLabsSpeechSynthesisModelSettings> | undefined): Promise<Buffer>;
28
+ generateSpeechResponse(text: string, options?: FunctionOptions): Promise<Buffer>;
29
29
  withSettings(additionalSettings: Partial<ElevenLabsSpeechSynthesisModelSettings>): this;
30
30
  }
@@ -22,24 +22,17 @@ export class ElevenLabsSpeechSynthesisModel extends AbstractModel {
22
22
  return this.settings.voice;
23
23
  }
24
24
  async callAPI(text, options) {
25
- const run = options?.run;
26
- const settings = options?.settings;
27
- const combinedSettings = {
28
- ...this.settings,
29
- ...settings,
30
- };
31
- const callSettings = {
32
- api: combinedSettings.api,
33
- abortSignal: run?.abortSignal,
34
- text,
35
- voiceId: combinedSettings.voice,
36
- modelId: combinedSettings.model,
37
- voiceSettings: combinedSettings.voiceSettings,
38
- };
39
25
  return callWithRetryAndThrottle({
40
- retry: combinedSettings.api?.retry,
41
- throttle: combinedSettings.api?.throttle,
42
- call: async () => callElevenLabsTextToSpeechAPI(callSettings),
26
+ retry: this.settings.api?.retry,
27
+ throttle: this.settings.api?.throttle,
28
+ call: async () => callElevenLabsTextToSpeechAPI({
29
+ api: this.settings.api,
30
+ abortSignal: options?.run?.abortSignal,
31
+ text,
32
+ voiceId: this.settings.voice,
33
+ modelId: this.settings.model,
34
+ voiceSettings: this.settings.voiceSettings,
35
+ }),
43
36
  });
44
37
  }
45
38
  get settingsForEvent() {
@@ -35,28 +35,25 @@ class HuggingFaceImageDescriptionModel extends AbstractModel_js_1.AbstractModel
35
35
  return this.settings.model;
36
36
  }
37
37
  async callAPI(data, options) {
38
- const run = options?.run;
39
- const settings = options?.settings;
40
- const callSettings = {
41
- ...this.settings,
42
- ...settings,
43
- abortSignal: run?.abortSignal,
44
- data,
45
- };
46
38
  return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
47
- retry: callSettings.api?.retry,
48
- throttle: callSettings.api?.throttle,
49
- call: async () => callHuggingFaceImageDescriptionAPI(callSettings),
39
+ retry: this.settings.api?.retry,
40
+ throttle: this.settings.api?.throttle,
41
+ call: async () => callHuggingFaceImageDescriptionAPI({
42
+ ...this.settings,
43
+ abortSignal: options?.run?.abortSignal,
44
+ data,
45
+ }),
50
46
  });
51
47
  }
52
48
  get settingsForEvent() {
53
49
  return {};
54
50
  }
55
- generateImageDescriptionResponse(data, options) {
56
- return this.callAPI(data, options);
57
- }
58
- extractImageDescription(response) {
59
- return response[0].generated_text;
51
+ async doDescribeImage(data, options) {
52
+ const response = await this.callAPI(data, options);
53
+ return {
54
+ response,
55
+ description: response[0].generated_text,
56
+ };
60
57
  }
61
58
  withSettings(additionalSettings) {
62
59
  return new HuggingFaceImageDescriptionModel(Object.assign({}, this.settings, additionalSettings));
@@ -2,7 +2,7 @@
2
2
  import z from "zod";
3
3
  import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
4
4
  import { AbstractModel } from "../../model-function/AbstractModel.js";
5
- import { ModelFunctionOptions } from "../../model-function/ModelFunctionOptions.js";
5
+ import { FunctionOptions } from "../../core/FunctionOptions.js";
6
6
  import { ImageDescriptionModel, ImageDescriptionModelSettings } from "../../model-function/describe-image/ImageDescriptionModel.js";
7
7
  export interface HuggingFaceImageDescriptionModelSettings extends ImageDescriptionModelSettings {
8
8
  api?: ApiConfiguration;
@@ -13,17 +13,19 @@ export interface HuggingFaceImageDescriptionModelSettings extends ImageDescripti
13
13
  *
14
14
  * @see https://huggingface.co/tasks/image-to-text
15
15
  */
16
- export declare class HuggingFaceImageDescriptionModel extends AbstractModel<HuggingFaceImageDescriptionModelSettings> implements ImageDescriptionModel<Buffer, HuggingFaceImageDescriptionResponse, HuggingFaceImageDescriptionModelSettings> {
16
+ export declare class HuggingFaceImageDescriptionModel extends AbstractModel<HuggingFaceImageDescriptionModelSettings> implements ImageDescriptionModel<Buffer, HuggingFaceImageDescriptionModelSettings> {
17
17
  constructor(settings: HuggingFaceImageDescriptionModelSettings);
18
18
  readonly provider = "huggingface";
19
19
  get modelName(): string;
20
- callAPI(data: Buffer, options?: ModelFunctionOptions<HuggingFaceImageDescriptionModelSettings>): Promise<HuggingFaceImageDescriptionResponse>;
20
+ callAPI(data: Buffer, options?: FunctionOptions): Promise<HuggingFaceImageDescriptionResponse>;
21
21
  get settingsForEvent(): Partial<HuggingFaceImageDescriptionModelSettings>;
22
22
  readonly countPromptTokens: undefined;
23
- generateImageDescriptionResponse(data: Buffer, options?: ModelFunctionOptions<HuggingFaceImageDescriptionModelSettings>): Promise<{
24
- generated_text: string;
25
- }[]>;
26
- extractImageDescription(response: HuggingFaceImageDescriptionResponse): string;
23
+ doDescribeImage(data: Buffer, options?: FunctionOptions): Promise<{
24
+ response: {
25
+ generated_text: string;
26
+ }[];
27
+ description: string;
28
+ }>;
27
29
  withSettings(additionalSettings: Partial<HuggingFaceImageDescriptionModelSettings>): this;
28
30
  }
29
31
  declare const huggingFaceImageDescriptionResponseSchema: z.ZodArray<z.ZodObject<{
@@ -29,28 +29,25 @@ export class HuggingFaceImageDescriptionModel extends AbstractModel {
29
29
  return this.settings.model;
30
30
  }
31
31
  async callAPI(data, options) {
32
- const run = options?.run;
33
- const settings = options?.settings;
34
- const callSettings = {
35
- ...this.settings,
36
- ...settings,
37
- abortSignal: run?.abortSignal,
38
- data,
39
- };
40
32
  return callWithRetryAndThrottle({
41
- retry: callSettings.api?.retry,
42
- throttle: callSettings.api?.throttle,
43
- call: async () => callHuggingFaceImageDescriptionAPI(callSettings),
33
+ retry: this.settings.api?.retry,
34
+ throttle: this.settings.api?.throttle,
35
+ call: async () => callHuggingFaceImageDescriptionAPI({
36
+ ...this.settings,
37
+ abortSignal: options?.run?.abortSignal,
38
+ data,
39
+ }),
44
40
  });
45
41
  }
46
42
  get settingsForEvent() {
47
43
  return {};
48
44
  }
49
- generateImageDescriptionResponse(data, options) {
50
- return this.callAPI(data, options);
51
- }
52
- extractImageDescription(response) {
53
- return response[0].generated_text;
45
+ async doDescribeImage(data, options) {
46
+ const response = await this.callAPI(data, options);
47
+ return {
48
+ response,
49
+ description: response[0].generated_text,
50
+ };
54
51
  }
55
52
  withSettings(additionalSettings) {
56
53
  return new HuggingFaceImageDescriptionModel(Object.assign({}, this.settings, additionalSettings));
@@ -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));