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
@@ -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,9 +135,12 @@ 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
- stopSequences: promptFormat.stopSequences,
140
+ stopSequences: [
141
+ ...(this.settings.stopSequences ?? []),
142
+ ...promptFormat.stopSequences,
143
+ ],
146
144
  }),
147
145
  promptFormat,
148
146
  });
@@ -218,6 +216,7 @@ async function createCohereTextGenerationFullDeltaIterableQueue(stream) {
218
216
  isComplete: true,
219
217
  delta: "",
220
218
  },
219
+ valueDelta: "",
221
220
  });
222
221
  }
223
222
  else {
@@ -229,6 +228,7 @@ async function createCohereTextGenerationFullDeltaIterableQueue(stream) {
229
228
  isComplete: false,
230
229
  delta: event.text,
231
230
  },
231
+ valueDelta: event.text,
232
232
  });
233
233
  }
234
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,9 +129,12 @@ 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
- stopSequences: promptFormat.stopSequences,
134
+ stopSequences: [
135
+ ...(this.settings.stopSequences ?? []),
136
+ ...promptFormat.stopSequences,
137
+ ],
140
138
  }),
141
139
  promptFormat,
142
140
  });
@@ -211,6 +209,7 @@ async function createCohereTextGenerationFullDeltaIterableQueue(stream) {
211
209
  isComplete: true,
212
210
  delta: "",
213
211
  },
212
+ valueDelta: "",
214
213
  });
215
214
  }
216
215
  else {
@@ -222,6 +221,7 @@ async function createCohereTextGenerationFullDeltaIterableQueue(stream) {
222
221
  isComplete: false,
223
222
  delta: event.text,
224
223
  },
224
+ valueDelta: event.text,
225
225
  });
226
226
  }
227
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));