modelfusion 0.48.0 → 0.50.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 (149) hide show
  1. package/README.md +186 -183
  2. package/core/FunctionEvent.d.ts +9 -1
  3. package/core/FunctionOptions.d.ts +4 -0
  4. package/core/executeFunctionCall.cjs +85 -0
  5. package/core/executeFunctionCall.d.ts +10 -0
  6. package/core/executeFunctionCall.js +81 -0
  7. package/guard/GuardEvent.d.ts +7 -0
  8. package/guard/guard.cjs +60 -54
  9. package/guard/guard.d.ts +2 -1
  10. package/guard/guard.js +60 -54
  11. package/guard/index.cjs +1 -0
  12. package/guard/index.d.ts +1 -0
  13. package/guard/index.js +1 -0
  14. package/model-function/AsyncIterableResultPromise.cjs +5 -5
  15. package/model-function/AsyncIterableResultPromise.d.ts +3 -3
  16. package/model-function/AsyncIterableResultPromise.js +5 -5
  17. package/model-function/Model.d.ts +1 -1
  18. package/model-function/ModelCallEvent.d.ts +5 -7
  19. package/model-function/embed/EmbeddingEvent.d.ts +2 -2
  20. package/model-function/embed/embed.cjs +5 -5
  21. package/model-function/embed/embed.js +5 -5
  22. package/model-function/{executeCall.cjs → executeStandardCall.cjs} +5 -3
  23. package/model-function/{executeCall.d.ts → executeStandardCall.d.ts} +1 -1
  24. package/model-function/{executeCall.js → executeStandardCall.js} +3 -1
  25. package/model-function/executeStreamCall.cjs +134 -0
  26. package/model-function/executeStreamCall.d.ts +20 -0
  27. package/model-function/executeStreamCall.js +130 -0
  28. package/model-function/generate-image/ImageGenerationEvent.d.ts +2 -2
  29. package/model-function/generate-image/generateImage.cjs +3 -3
  30. package/model-function/generate-image/generateImage.js +3 -3
  31. package/model-function/generate-speech/SpeechGenerationEvent.d.ts +27 -0
  32. package/model-function/generate-speech/SpeechGenerationModel.d.ts +15 -0
  33. package/model-function/generate-speech/generateSpeech.cjs +24 -0
  34. package/model-function/generate-speech/generateSpeech.d.ts +8 -0
  35. package/model-function/generate-speech/generateSpeech.js +20 -0
  36. package/model-function/generate-speech/index.cjs +20 -0
  37. package/model-function/generate-speech/index.d.ts +4 -0
  38. package/model-function/generate-speech/index.js +4 -0
  39. package/model-function/generate-speech/streamSpeech.cjs +34 -0
  40. package/model-function/generate-speech/streamSpeech.d.ts +8 -0
  41. package/model-function/generate-speech/streamSpeech.js +30 -0
  42. package/model-function/generate-structure/StructureGenerationEvent.d.ts +2 -2
  43. package/model-function/generate-structure/StructureStreamingEvent.d.ts +2 -2
  44. package/model-function/generate-structure/generateStructure.cjs +3 -3
  45. package/model-function/generate-structure/generateStructure.js +3 -3
  46. package/model-function/generate-structure/generateStructureOrText.cjs +3 -3
  47. package/model-function/generate-structure/generateStructureOrText.js +3 -3
  48. package/model-function/generate-structure/index.cjs +27 -0
  49. package/model-function/generate-structure/index.d.ts +11 -0
  50. package/model-function/generate-structure/index.js +11 -0
  51. package/model-function/generate-structure/streamStructure.cjs +29 -137
  52. package/model-function/generate-structure/streamStructure.js +28 -136
  53. package/model-function/generate-text/TextGenerationEvent.d.ts +8 -2
  54. package/model-function/generate-text/generateText.cjs +4 -4
  55. package/model-function/generate-text/generateText.d.ts +1 -1
  56. package/model-function/generate-text/generateText.js +4 -4
  57. package/model-function/generate-text/index.cjs +0 -1
  58. package/model-function/generate-text/index.d.ts +0 -1
  59. package/model-function/generate-text/index.js +0 -1
  60. package/model-function/generate-text/streamText.cjs +22 -129
  61. package/model-function/generate-text/streamText.js +21 -128
  62. package/model-function/generate-text/trimChatPrompt.cjs +1 -1
  63. package/model-function/generate-text/trimChatPrompt.d.ts +1 -1
  64. package/model-function/generate-text/trimChatPrompt.js +1 -1
  65. package/model-function/{transcribe-speech → generate-transcription}/TranscriptionEvent.d.ts +2 -2
  66. package/model-function/{transcribe-speech/transcribe.cjs → generate-transcription/generateTranscription.cjs} +7 -7
  67. package/model-function/{transcribe-speech/transcribe.d.ts → generate-transcription/generateTranscription.d.ts} +2 -2
  68. package/model-function/{transcribe-speech/transcribe.js → generate-transcription/generateTranscription.js} +5 -5
  69. package/model-function/index.cjs +5 -20
  70. package/model-function/index.d.ts +5 -20
  71. package/model-function/index.js +5 -20
  72. package/model-provider/elevenlabs/{ElevenLabsSpeechSynthesisModel.cjs → ElevenLabsSpeechModel.cjs} +6 -6
  73. package/model-provider/elevenlabs/{ElevenLabsSpeechSynthesisModel.d.ts → ElevenLabsSpeechModel.d.ts} +8 -8
  74. package/model-provider/elevenlabs/{ElevenLabsSpeechSynthesisModel.js → ElevenLabsSpeechModel.js} +4 -4
  75. package/model-provider/elevenlabs/index.cjs +1 -1
  76. package/model-provider/elevenlabs/index.d.ts +1 -1
  77. package/model-provider/elevenlabs/index.js +1 -1
  78. package/model-provider/huggingface/HuggingFaceImageDescriptionModel.cjs +21 -2
  79. package/model-provider/huggingface/HuggingFaceImageDescriptionModel.d.ts +11 -6
  80. package/model-provider/huggingface/HuggingFaceImageDescriptionModel.js +21 -2
  81. package/model-provider/lmnt/{LmntSpeechSynthesisModel.cjs → LmntSpeechModel.cjs} +5 -5
  82. package/model-provider/lmnt/LmntSpeechModel.d.ts +26 -0
  83. package/model-provider/lmnt/{LmntSpeechSynthesisModel.js → LmntSpeechModel.js} +3 -3
  84. package/model-provider/lmnt/index.cjs +1 -1
  85. package/model-provider/lmnt/index.d.ts +1 -1
  86. package/model-provider/lmnt/index.js +1 -1
  87. package/model-provider/openai/{OpenAITextGenerationModel.cjs → OpenAICompletionModel.cjs} +17 -17
  88. package/model-provider/openai/{OpenAITextGenerationModel.d.ts → OpenAICompletionModel.d.ts} +29 -29
  89. package/model-provider/openai/{OpenAITextGenerationModel.js → OpenAICompletionModel.js} +12 -12
  90. package/model-provider/openai/OpenAICostCalculator.cjs +8 -8
  91. package/model-provider/openai/OpenAICostCalculator.js +8 -8
  92. package/model-provider/openai/OpenAITextEmbeddingModel.d.ts +3 -3
  93. package/model-provider/openai/OpenAITranscriptionModel.d.ts +1 -1
  94. package/model-provider/openai/TikTokenTokenizer.d.ts +2 -2
  95. package/model-provider/openai/chat/OpenAIChatModel.d.ts +7 -7
  96. package/model-provider/openai/index.cjs +1 -1
  97. package/model-provider/openai/index.d.ts +1 -1
  98. package/model-provider/openai/index.js +1 -1
  99. package/package.json +1 -1
  100. package/retriever/retrieve.cjs +7 -75
  101. package/retriever/retrieve.js +7 -75
  102. package/tool/UseToolEvent.d.ts +7 -0
  103. package/tool/UseToolOrGenerateTextEvent.d.ts +7 -0
  104. package/tool/executeTool.cjs +2 -0
  105. package/tool/executeTool.js +2 -0
  106. package/tool/index.cjs +2 -0
  107. package/tool/index.d.ts +2 -0
  108. package/tool/index.js +2 -0
  109. package/tool/useTool.cjs +18 -10
  110. package/tool/useTool.js +18 -10
  111. package/tool/useToolOrGenerateText.cjs +34 -26
  112. package/tool/useToolOrGenerateText.js +34 -26
  113. package/vector-index/UpsertIntoVectorIndexEvent.cjs +2 -0
  114. package/vector-index/UpsertIntoVectorIndexEvent.d.ts +9 -0
  115. package/vector-index/UpsertIntoVectorIndexEvent.js +1 -0
  116. package/vector-index/VectorIndexRetriever.cjs +1 -4
  117. package/vector-index/VectorIndexRetriever.js +1 -4
  118. package/vector-index/index.cjs +1 -0
  119. package/vector-index/index.d.ts +1 -0
  120. package/vector-index/index.js +1 -0
  121. package/vector-index/upsertIntoVectorIndex.cjs +16 -7
  122. package/vector-index/upsertIntoVectorIndex.js +16 -7
  123. package/model-function/describe-image/ImageDescriptionEvent.d.ts +0 -18
  124. package/model-function/describe-image/ImageDescriptionModel.d.ts +0 -10
  125. package/model-function/describe-image/describeImage.cjs +0 -26
  126. package/model-function/describe-image/describeImage.d.ts +0 -9
  127. package/model-function/describe-image/describeImage.js +0 -22
  128. package/model-function/generate-text/TextStreamingEvent.d.ts +0 -7
  129. package/model-function/synthesize-speech/SpeechSynthesisEvent.d.ts +0 -21
  130. package/model-function/synthesize-speech/SpeechSynthesisModel.d.ts +0 -15
  131. package/model-function/synthesize-speech/synthesizeSpeech.cjs +0 -67
  132. package/model-function/synthesize-speech/synthesizeSpeech.d.ts +0 -14
  133. package/model-function/synthesize-speech/synthesizeSpeech.js +0 -63
  134. package/model-provider/lmnt/LmntSpeechSynthesisModel.d.ts +0 -26
  135. /package/{model-function/describe-image/ImageDescriptionEvent.cjs → guard/GuardEvent.cjs} +0 -0
  136. /package/{model-function/describe-image/ImageDescriptionEvent.js → guard/GuardEvent.js} +0 -0
  137. /package/model-function/{describe-image/ImageDescriptionModel.cjs → generate-speech/SpeechGenerationEvent.cjs} +0 -0
  138. /package/model-function/{describe-image/ImageDescriptionModel.js → generate-speech/SpeechGenerationEvent.js} +0 -0
  139. /package/model-function/{generate-text/TextStreamingEvent.cjs → generate-speech/SpeechGenerationModel.cjs} +0 -0
  140. /package/model-function/{generate-text/TextStreamingEvent.js → generate-speech/SpeechGenerationModel.js} +0 -0
  141. /package/model-function/{transcribe-speech → generate-transcription}/TranscriptionEvent.cjs +0 -0
  142. /package/model-function/{transcribe-speech → generate-transcription}/TranscriptionEvent.js +0 -0
  143. /package/model-function/{transcribe-speech → generate-transcription}/TranscriptionModel.cjs +0 -0
  144. /package/model-function/{transcribe-speech → generate-transcription}/TranscriptionModel.d.ts +0 -0
  145. /package/model-function/{transcribe-speech → generate-transcription}/TranscriptionModel.js +0 -0
  146. /package/{model-function/synthesize-speech/SpeechSynthesisEvent.cjs → tool/UseToolEvent.cjs} +0 -0
  147. /package/{model-function/synthesize-speech/SpeechSynthesisEvent.js → tool/UseToolEvent.js} +0 -0
  148. /package/{model-function/synthesize-speech/SpeechSynthesisModel.cjs → tool/UseToolOrGenerateTextEvent.cjs} +0 -0
  149. /package/{model-function/synthesize-speech/SpeechSynthesisModel.js → tool/UseToolOrGenerateTextEvent.js} +0 -0
@@ -1,137 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.streamText = void 0;
4
- const nanoid_1 = require("nanoid");
5
- const FunctionEventSource_js_1 = require("../../core/FunctionEventSource.cjs");
6
- const GlobalFunctionLogging_js_1 = require("../../core/GlobalFunctionLogging.cjs");
7
- const GlobalFunctionObservers_js_1 = require("../../core/GlobalFunctionObservers.cjs");
8
- const AbortError_js_1 = require("../../core/api/AbortError.cjs");
9
- const getFunctionCallLogger_js_1 = require("../../core/getFunctionCallLogger.cjs");
10
- const getRun_js_1 = require("../../core/getRun.cjs");
11
- const DurationMeasurement_js_1 = require("../../util/DurationMeasurement.cjs");
12
- const runSafe_js_1 = require("../../util/runSafe.cjs");
13
4
  const AsyncIterableResultPromise_js_1 = require("../AsyncIterableResultPromise.cjs");
5
+ const executeStreamCall_js_1 = require("../executeStreamCall.cjs");
14
6
  function streamText(model, prompt, options) {
15
- return new AsyncIterableResultPromise_js_1.AsyncIterableResultPromise(doStreamText(model, prompt, options));
16
- }
17
- exports.streamText = streamText;
18
- async function doStreamText(model, prompt, options) {
19
- const run = await (0, getRun_js_1.getRun)(options?.run);
20
- const eventSource = new FunctionEventSource_js_1.FunctionEventSource({
21
- observers: [
22
- ...(0, getFunctionCallLogger_js_1.getFunctionCallLogger)(options?.logging ?? (0, GlobalFunctionLogging_js_1.getGlobalFunctionLogging)()),
23
- ...(0, GlobalFunctionObservers_js_1.getGlobalFunctionObservers)(),
24
- ...(model.settings.observers ?? []),
25
- ...(run?.functionObserver != null ? [run.functionObserver] : []),
26
- ...(options?.observers ?? []),
27
- ],
28
- errorHandler: run?.errorHandler,
29
- });
30
- const durationMeasurement = (0, DurationMeasurement_js_1.startDurationMeasurement)();
31
- const startMetadata = {
32
- functionType: "text-streaming",
33
- callId: `call-${(0, nanoid_1.nanoid)()}`,
34
- runId: run?.runId,
35
- sessionId: run?.sessionId,
36
- userId: run?.userId,
37
- functionId: options?.functionId,
38
- model: model.modelInformation,
39
- settings: model.settingsForEvent,
7
+ let accumulatedText = "";
8
+ let lastFullDelta;
9
+ return new AsyncIterableResultPromise_js_1.AsyncIterableResultPromise((0, executeStreamCall_js_1.executeStreamCall)({
10
+ functionType: "stream-text",
40
11
  input: prompt,
41
- timestamp: durationMeasurement.startDate,
42
- startTimestamp: durationMeasurement.startDate,
43
- };
44
- eventSource.notify({
45
- eventType: "started",
46
- ...startMetadata,
47
- });
48
- const result = await (0, runSafe_js_1.runSafe)(async () => {
49
- const deltaIterable = await model.doStreamText(prompt, {
50
- functionId: options?.functionId,
51
- logging: options?.logging,
52
- observers: options?.observers,
53
- run,
54
- });
55
- return (async function* () {
56
- let accumulatedText = "";
57
- let lastFullDelta;
58
- for await (const event of deltaIterable) {
59
- if (event?.type === "error") {
60
- const error = event.error;
61
- const finishMetadata = {
62
- eventType: "finished",
63
- ...startMetadata,
64
- finishTimestamp: new Date(),
65
- durationInMs: durationMeasurement.durationInMs,
66
- };
67
- eventSource.notify(error instanceof AbortError_js_1.AbortError
68
- ? {
69
- ...finishMetadata,
70
- result: {
71
- status: "abort",
72
- },
73
- }
74
- : {
75
- ...finishMetadata,
76
- result: {
77
- status: "error",
78
- error,
79
- },
80
- });
81
- throw error;
82
- }
83
- if (event?.type === "delta") {
84
- lastFullDelta = event.fullDelta;
85
- const textDelta = event.valueDelta;
86
- if (textDelta != null && textDelta.length > 0) {
87
- accumulatedText += textDelta;
88
- yield textDelta;
89
- }
90
- }
12
+ model,
13
+ options,
14
+ startStream: async (options) => model.doStreamText(prompt, options),
15
+ processDelta: (delta) => {
16
+ lastFullDelta = delta.fullDelta;
17
+ const textDelta = delta.valueDelta;
18
+ if (textDelta != null && textDelta.length > 0) {
19
+ accumulatedText += textDelta;
20
+ return textDelta;
91
21
  }
92
- const finishMetadata = {
93
- eventType: "finished",
94
- ...startMetadata,
95
- finishTimestamp: new Date(),
96
- durationInMs: durationMeasurement.durationInMs,
97
- };
98
- eventSource.notify({
99
- ...finishMetadata,
100
- result: {
101
- status: "success",
102
- response: lastFullDelta,
103
- value: accumulatedText,
104
- },
105
- });
106
- })();
107
- });
108
- if (!result.ok) {
109
- const finishMetadata = {
110
- eventType: "finished",
111
- ...startMetadata,
112
- finishTimestamp: new Date(),
113
- durationInMs: durationMeasurement.durationInMs,
114
- };
115
- if (result.isAborted) {
116
- eventSource.notify({
117
- ...finishMetadata,
118
- result: {
119
- status: "abort",
120
- },
121
- });
122
- throw new AbortError_js_1.AbortError();
123
- }
124
- eventSource.notify({
125
- ...finishMetadata,
126
- result: {
127
- status: "error",
128
- error: result.error,
129
- },
130
- });
131
- throw result.error;
132
- }
133
- return {
134
- output: result.value,
135
- metadata: startMetadata,
136
- };
22
+ return undefined;
23
+ },
24
+ getResult: () => ({
25
+ response: lastFullDelta,
26
+ value: accumulatedText,
27
+ }),
28
+ }));
137
29
  }
30
+ exports.streamText = streamText;
@@ -1,133 +1,26 @@
1
- import { nanoid as createId } from "nanoid";
2
- import { FunctionEventSource } from "../../core/FunctionEventSource.js";
3
- import { getGlobalFunctionLogging } from "../../core/GlobalFunctionLogging.js";
4
- import { getGlobalFunctionObservers } from "../../core/GlobalFunctionObservers.js";
5
- import { AbortError } from "../../core/api/AbortError.js";
6
- import { getFunctionCallLogger } from "../../core/getFunctionCallLogger.js";
7
- import { getRun } from "../../core/getRun.js";
8
- import { startDurationMeasurement } from "../../util/DurationMeasurement.js";
9
- import { runSafe } from "../../util/runSafe.js";
10
1
  import { AsyncIterableResultPromise } from "../AsyncIterableResultPromise.js";
2
+ import { executeStreamCall } from "../executeStreamCall.js";
11
3
  export function streamText(model, prompt, options) {
12
- return new AsyncIterableResultPromise(doStreamText(model, prompt, options));
13
- }
14
- async function doStreamText(model, prompt, options) {
15
- const run = await getRun(options?.run);
16
- const eventSource = new FunctionEventSource({
17
- observers: [
18
- ...getFunctionCallLogger(options?.logging ?? getGlobalFunctionLogging()),
19
- ...getGlobalFunctionObservers(),
20
- ...(model.settings.observers ?? []),
21
- ...(run?.functionObserver != null ? [run.functionObserver] : []),
22
- ...(options?.observers ?? []),
23
- ],
24
- errorHandler: run?.errorHandler,
25
- });
26
- const durationMeasurement = startDurationMeasurement();
27
- const startMetadata = {
28
- functionType: "text-streaming",
29
- callId: `call-${createId()}`,
30
- runId: run?.runId,
31
- sessionId: run?.sessionId,
32
- userId: run?.userId,
33
- functionId: options?.functionId,
34
- model: model.modelInformation,
35
- settings: model.settingsForEvent,
4
+ let accumulatedText = "";
5
+ let lastFullDelta;
6
+ return new AsyncIterableResultPromise(executeStreamCall({
7
+ functionType: "stream-text",
36
8
  input: prompt,
37
- timestamp: durationMeasurement.startDate,
38
- startTimestamp: durationMeasurement.startDate,
39
- };
40
- eventSource.notify({
41
- eventType: "started",
42
- ...startMetadata,
43
- });
44
- const result = await runSafe(async () => {
45
- const deltaIterable = await model.doStreamText(prompt, {
46
- functionId: options?.functionId,
47
- logging: options?.logging,
48
- observers: options?.observers,
49
- run,
50
- });
51
- return (async function* () {
52
- let accumulatedText = "";
53
- let lastFullDelta;
54
- for await (const event of deltaIterable) {
55
- if (event?.type === "error") {
56
- const error = event.error;
57
- const finishMetadata = {
58
- eventType: "finished",
59
- ...startMetadata,
60
- finishTimestamp: new Date(),
61
- durationInMs: durationMeasurement.durationInMs,
62
- };
63
- eventSource.notify(error instanceof AbortError
64
- ? {
65
- ...finishMetadata,
66
- result: {
67
- status: "abort",
68
- },
69
- }
70
- : {
71
- ...finishMetadata,
72
- result: {
73
- status: "error",
74
- error,
75
- },
76
- });
77
- throw error;
78
- }
79
- if (event?.type === "delta") {
80
- lastFullDelta = event.fullDelta;
81
- const textDelta = event.valueDelta;
82
- if (textDelta != null && textDelta.length > 0) {
83
- accumulatedText += textDelta;
84
- yield textDelta;
85
- }
86
- }
9
+ model,
10
+ options,
11
+ startStream: async (options) => model.doStreamText(prompt, options),
12
+ processDelta: (delta) => {
13
+ lastFullDelta = delta.fullDelta;
14
+ const textDelta = delta.valueDelta;
15
+ if (textDelta != null && textDelta.length > 0) {
16
+ accumulatedText += textDelta;
17
+ return textDelta;
87
18
  }
88
- const finishMetadata = {
89
- eventType: "finished",
90
- ...startMetadata,
91
- finishTimestamp: new Date(),
92
- durationInMs: durationMeasurement.durationInMs,
93
- };
94
- eventSource.notify({
95
- ...finishMetadata,
96
- result: {
97
- status: "success",
98
- response: lastFullDelta,
99
- value: accumulatedText,
100
- },
101
- });
102
- })();
103
- });
104
- if (!result.ok) {
105
- const finishMetadata = {
106
- eventType: "finished",
107
- ...startMetadata,
108
- finishTimestamp: new Date(),
109
- durationInMs: durationMeasurement.durationInMs,
110
- };
111
- if (result.isAborted) {
112
- eventSource.notify({
113
- ...finishMetadata,
114
- result: {
115
- status: "abort",
116
- },
117
- });
118
- throw new AbortError();
119
- }
120
- eventSource.notify({
121
- ...finishMetadata,
122
- result: {
123
- status: "error",
124
- error: result.error,
125
- },
126
- });
127
- throw result.error;
128
- }
129
- return {
130
- output: result.value,
131
- metadata: startMetadata,
132
- };
19
+ return undefined;
20
+ },
21
+ getResult: () => ({
22
+ response: lastFullDelta,
23
+ value: accumulatedText,
24
+ }),
25
+ }));
133
26
  }
@@ -10,7 +10,7 @@ const validateChatPrompt_js_1 = require("./validateChatPrompt.cjs");
10
10
  * When the minimal chat prompt (system message + last user message) is already too long, it will only
11
11
  * return this minimal chat prompt.
12
12
  *
13
- * @see https://modelfusion.dev/guide/function/generate-text/prompt-format#limiting-the-chat-length
13
+ * @see https://modelfusion.dev/guide/function/generate-text#limiting-the-chat-length
14
14
  */
15
15
  async function trimChatPrompt({ prompt, model, tokenLimit = model.contextWindowSize -
16
16
  (model.settings.maxCompletionTokens ?? model.contextWindowSize / 4), }) {
@@ -8,7 +8,7 @@ import { HasContextWindowSize, HasTokenizer, TextGenerationModel, TextGeneration
8
8
  * When the minimal chat prompt (system message + last user message) is already too long, it will only
9
9
  * return this minimal chat prompt.
10
10
  *
11
- * @see https://modelfusion.dev/guide/function/generate-text/prompt-format#limiting-the-chat-length
11
+ * @see https://modelfusion.dev/guide/function/generate-text#limiting-the-chat-length
12
12
  */
13
13
  export declare function trimChatPrompt({ prompt, model, tokenLimit, }: {
14
14
  prompt: ChatPrompt;
@@ -7,7 +7,7 @@ import { validateChatPrompt } from "./validateChatPrompt.js";
7
7
  * When the minimal chat prompt (system message + last user message) is already too long, it will only
8
8
  * return this minimal chat prompt.
9
9
  *
10
- * @see https://modelfusion.dev/guide/function/generate-text/prompt-format#limiting-the-chat-length
10
+ * @see https://modelfusion.dev/guide/function/generate-text#limiting-the-chat-length
11
11
  */
12
12
  export async function trimChatPrompt({ prompt, model, tokenLimit = model.contextWindowSize -
13
13
  (model.settings.maxCompletionTokens ?? model.contextWindowSize / 4), }) {
@@ -1,6 +1,6 @@
1
1
  import { BaseModelCallFinishedEvent, BaseModelCallStartedEvent } from "../ModelCallEvent.js";
2
2
  export interface TranscriptionStartedEvent extends BaseModelCallStartedEvent {
3
- functionType: "transcription";
3
+ functionType: "generate-transcription";
4
4
  }
5
5
  export type TranscriptionFinishedEventResult = {
6
6
  status: "success";
@@ -13,6 +13,6 @@ export type TranscriptionFinishedEventResult = {
13
13
  status: "abort";
14
14
  };
15
15
  export interface TranscriptionFinishedEvent extends BaseModelCallFinishedEvent {
16
- functionType: "transcription";
16
+ functionType: "generate-transcription";
17
17
  result: TranscriptionFinishedEventResult;
18
18
  }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.transcribe = void 0;
4
- const executeCall_js_1 = require("../executeCall.cjs");
3
+ exports.generateTranscription = void 0;
4
+ const executeStandardCall_js_1 = require("../executeStandardCall.cjs");
5
5
  const ModelFunctionPromise_js_1 = require("../ModelFunctionPromise.cjs");
6
6
  /**
7
7
  * Transcribe audio data into text.
@@ -9,7 +9,7 @@ const ModelFunctionPromise_js_1 = require("../ModelFunctionPromise.cjs");
9
9
  * @example
10
10
  * const data = await fs.promises.readFile("data/test.mp3");
11
11
  *
12
- * const transcription = await transcribe(
12
+ * const transcription = await generateTranscription(
13
13
  * new OpenAITranscriptionModel({ model: "whisper-1" }),
14
14
  * {
15
15
  * type: "mp3",
@@ -17,9 +17,9 @@ const ModelFunctionPromise_js_1 = require("../ModelFunctionPromise.cjs");
17
17
  * }
18
18
  * );
19
19
  */
20
- function transcribe(model, data, options) {
21
- return new ModelFunctionPromise_js_1.ModelFunctionPromise((0, executeCall_js_1.executeCall)({
22
- functionType: "transcription",
20
+ function generateTranscription(model, data, options) {
21
+ return new ModelFunctionPromise_js_1.ModelFunctionPromise((0, executeStandardCall_js_1.executeStandardCall)({
22
+ functionType: "generate-transcription",
23
23
  input: data,
24
24
  model,
25
25
  options,
@@ -32,4 +32,4 @@ function transcribe(model, data, options) {
32
32
  },
33
33
  }));
34
34
  }
35
- exports.transcribe = transcribe;
35
+ exports.generateTranscription = generateTranscription;
@@ -7,7 +7,7 @@ import { TranscriptionModel, TranscriptionModelSettings } from "./TranscriptionM
7
7
  * @example
8
8
  * const data = await fs.promises.readFile("data/test.mp3");
9
9
  *
10
- * const transcription = await transcribe(
10
+ * const transcription = await generateTranscription(
11
11
  * new OpenAITranscriptionModel({ model: "whisper-1" }),
12
12
  * {
13
13
  * type: "mp3",
@@ -15,4 +15,4 @@ import { TranscriptionModel, TranscriptionModelSettings } from "./TranscriptionM
15
15
  * }
16
16
  * );
17
17
  */
18
- export declare function transcribe<DATA>(model: TranscriptionModel<DATA, TranscriptionModelSettings>, data: DATA, options?: FunctionOptions): ModelFunctionPromise<string>;
18
+ export declare function generateTranscription<DATA>(model: TranscriptionModel<DATA, TranscriptionModelSettings>, data: DATA, options?: FunctionOptions): ModelFunctionPromise<string>;
@@ -1,4 +1,4 @@
1
- import { executeCall } from "../executeCall.js";
1
+ import { executeStandardCall } from "../executeStandardCall.js";
2
2
  import { ModelFunctionPromise } from "../ModelFunctionPromise.js";
3
3
  /**
4
4
  * Transcribe audio data into text.
@@ -6,7 +6,7 @@ import { ModelFunctionPromise } from "../ModelFunctionPromise.js";
6
6
  * @example
7
7
  * const data = await fs.promises.readFile("data/test.mp3");
8
8
  *
9
- * const transcription = await transcribe(
9
+ * const transcription = await generateTranscription(
10
10
  * new OpenAITranscriptionModel({ model: "whisper-1" }),
11
11
  * {
12
12
  * type: "mp3",
@@ -14,9 +14,9 @@ import { ModelFunctionPromise } from "../ModelFunctionPromise.js";
14
14
  * }
15
15
  * );
16
16
  */
17
- export function transcribe(model, data, options) {
18
- return new ModelFunctionPromise(executeCall({
19
- functionType: "transcription",
17
+ export function generateTranscription(model, data, options) {
18
+ return new ModelFunctionPromise(executeStandardCall({
19
+ functionType: "generate-transcription",
20
20
  input: data,
21
21
  model,
22
22
  options,
@@ -21,9 +21,6 @@ __exportStar(require("./ModelCallMetadata.cjs"), exports);
21
21
  __exportStar(require("./ModelInformation.cjs"), exports);
22
22
  __exportStar(require("./PromptFormat.cjs"), exports);
23
23
  __exportStar(require("./SuccessfulModelCall.cjs"), exports);
24
- __exportStar(require("./describe-image/ImageDescriptionEvent.cjs"), exports);
25
- __exportStar(require("./describe-image/ImageDescriptionModel.cjs"), exports);
26
- __exportStar(require("./describe-image/describeImage.cjs"), exports);
27
24
  __exportStar(require("./embed/EmbeddingEvent.cjs"), exports);
28
25
  __exportStar(require("./embed/EmbeddingModel.cjs"), exports);
29
26
  __exportStar(require("./embed/embed.cjs"), exports);
@@ -31,23 +28,11 @@ __exportStar(require("./generate-image/ImageGenerationEvent.cjs"), exports);
31
28
  __exportStar(require("./generate-image/ImageGenerationModel.cjs"), exports);
32
29
  __exportStar(require("./generate-image/PromptFormatImageGenerationModel.cjs"), exports);
33
30
  __exportStar(require("./generate-image/generateImage.cjs"), exports);
34
- __exportStar(require("./generate-structure/NoSuchStructureError.cjs"), exports);
35
- __exportStar(require("./generate-structure/StructureFromTextGenerationModel.cjs"), exports);
36
- __exportStar(require("./generate-structure/StructureGenerationEvent.cjs"), exports);
37
- __exportStar(require("./generate-structure/StructureGenerationModel.cjs"), exports);
38
- __exportStar(require("./generate-structure/StructureOrTextGenerationModel.cjs"), exports);
39
- __exportStar(require("./generate-structure/StructureParseError.cjs"), exports);
40
- __exportStar(require("./generate-structure/StructureStreamingEvent.cjs"), exports);
41
- __exportStar(require("./generate-structure/StructureValidationError.cjs"), exports);
42
- __exportStar(require("./generate-structure/generateStructure.cjs"), exports);
43
- __exportStar(require("./generate-structure/generateStructureOrText.cjs"), exports);
44
- __exportStar(require("./generate-structure/streamStructure.cjs"), exports);
31
+ __exportStar(require("./generate-speech/index.cjs"), exports);
32
+ __exportStar(require("./generate-structure/index.cjs"), exports);
45
33
  __exportStar(require("./generate-text/index.cjs"), exports);
46
- __exportStar(require("./synthesize-speech/SpeechSynthesisEvent.cjs"), exports);
47
- __exportStar(require("./synthesize-speech/SpeechSynthesisModel.cjs"), exports);
48
- __exportStar(require("./synthesize-speech/synthesizeSpeech.cjs"), exports);
34
+ __exportStar(require("./generate-transcription/TranscriptionEvent.cjs"), exports);
35
+ __exportStar(require("./generate-transcription/TranscriptionModel.cjs"), exports);
36
+ __exportStar(require("./generate-transcription/generateTranscription.cjs"), exports);
49
37
  __exportStar(require("./tokenize-text/Tokenizer.cjs"), exports);
50
38
  __exportStar(require("./tokenize-text/countTokens.cjs"), exports);
51
- __exportStar(require("./transcribe-speech/TranscriptionEvent.cjs"), exports);
52
- __exportStar(require("./transcribe-speech/TranscriptionModel.cjs"), exports);
53
- __exportStar(require("./transcribe-speech/transcribe.cjs"), exports);
@@ -5,9 +5,6 @@ export * from "./ModelCallMetadata.js";
5
5
  export * from "./ModelInformation.js";
6
6
  export * from "./PromptFormat.js";
7
7
  export * from "./SuccessfulModelCall.js";
8
- export * from "./describe-image/ImageDescriptionEvent.js";
9
- export * from "./describe-image/ImageDescriptionModel.js";
10
- export * from "./describe-image/describeImage.js";
11
8
  export * from "./embed/EmbeddingEvent.js";
12
9
  export * from "./embed/EmbeddingModel.js";
13
10
  export * from "./embed/embed.js";
@@ -15,23 +12,11 @@ export * from "./generate-image/ImageGenerationEvent.js";
15
12
  export * from "./generate-image/ImageGenerationModel.js";
16
13
  export * from "./generate-image/PromptFormatImageGenerationModel.js";
17
14
  export * from "./generate-image/generateImage.js";
18
- export * from "./generate-structure/NoSuchStructureError.js";
19
- export * from "./generate-structure/StructureFromTextGenerationModel.js";
20
- export * from "./generate-structure/StructureGenerationEvent.js";
21
- export * from "./generate-structure/StructureGenerationModel.js";
22
- export * from "./generate-structure/StructureOrTextGenerationModel.js";
23
- export * from "./generate-structure/StructureParseError.js";
24
- export * from "./generate-structure/StructureStreamingEvent.js";
25
- export * from "./generate-structure/StructureValidationError.js";
26
- export * from "./generate-structure/generateStructure.js";
27
- export * from "./generate-structure/generateStructureOrText.js";
28
- export * from "./generate-structure/streamStructure.js";
15
+ export * from "./generate-speech/index.js";
16
+ export * from "./generate-structure/index.js";
29
17
  export * from "./generate-text/index.js";
30
- export * from "./synthesize-speech/SpeechSynthesisEvent.js";
31
- export * from "./synthesize-speech/SpeechSynthesisModel.js";
32
- export * from "./synthesize-speech/synthesizeSpeech.js";
18
+ export * from "./generate-transcription/TranscriptionEvent.js";
19
+ export * from "./generate-transcription/TranscriptionModel.js";
20
+ export * from "./generate-transcription/generateTranscription.js";
33
21
  export * from "./tokenize-text/Tokenizer.js";
34
22
  export * from "./tokenize-text/countTokens.js";
35
- export * from "./transcribe-speech/TranscriptionEvent.js";
36
- export * from "./transcribe-speech/TranscriptionModel.js";
37
- export * from "./transcribe-speech/transcribe.js";
@@ -5,9 +5,6 @@ export * from "./ModelCallMetadata.js";
5
5
  export * from "./ModelInformation.js";
6
6
  export * from "./PromptFormat.js";
7
7
  export * from "./SuccessfulModelCall.js";
8
- export * from "./describe-image/ImageDescriptionEvent.js";
9
- export * from "./describe-image/ImageDescriptionModel.js";
10
- export * from "./describe-image/describeImage.js";
11
8
  export * from "./embed/EmbeddingEvent.js";
12
9
  export * from "./embed/EmbeddingModel.js";
13
10
  export * from "./embed/embed.js";
@@ -15,23 +12,11 @@ export * from "./generate-image/ImageGenerationEvent.js";
15
12
  export * from "./generate-image/ImageGenerationModel.js";
16
13
  export * from "./generate-image/PromptFormatImageGenerationModel.js";
17
14
  export * from "./generate-image/generateImage.js";
18
- export * from "./generate-structure/NoSuchStructureError.js";
19
- export * from "./generate-structure/StructureFromTextGenerationModel.js";
20
- export * from "./generate-structure/StructureGenerationEvent.js";
21
- export * from "./generate-structure/StructureGenerationModel.js";
22
- export * from "./generate-structure/StructureOrTextGenerationModel.js";
23
- export * from "./generate-structure/StructureParseError.js";
24
- export * from "./generate-structure/StructureStreamingEvent.js";
25
- export * from "./generate-structure/StructureValidationError.js";
26
- export * from "./generate-structure/generateStructure.js";
27
- export * from "./generate-structure/generateStructureOrText.js";
28
- export * from "./generate-structure/streamStructure.js";
15
+ export * from "./generate-speech/index.js";
16
+ export * from "./generate-structure/index.js";
29
17
  export * from "./generate-text/index.js";
30
- export * from "./synthesize-speech/SpeechSynthesisEvent.js";
31
- export * from "./synthesize-speech/SpeechSynthesisModel.js";
32
- export * from "./synthesize-speech/synthesizeSpeech.js";
18
+ export * from "./generate-transcription/TranscriptionEvent.js";
19
+ export * from "./generate-transcription/TranscriptionModel.js";
20
+ export * from "./generate-transcription/generateTranscription.js";
33
21
  export * from "./tokenize-text/Tokenizer.js";
34
22
  export * from "./tokenize-text/countTokens.js";
35
- export * from "./transcribe-speech/TranscriptionEvent.js";
36
- export * from "./transcribe-speech/TranscriptionModel.js";
37
- export * from "./transcribe-speech/transcribe.js";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ElevenLabsSpeechSynthesisModel = void 0;
3
+ exports.ElevenLabsSpeechModel = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const callWithRetryAndThrottle_js_1 = require("../../core/api/callWithRetryAndThrottle.cjs");
6
6
  const postToApi_js_1 = require("../../core/api/postToApi.cjs");
@@ -21,7 +21,7 @@ const defaultModel = "eleven_multilingual_v2";
21
21
  *
22
22
  * @see https://api.elevenlabs.io/docs#/text-to-speech/Text_to_speech_v1_text_to_speech__voice_id__post
23
23
  */
24
- class ElevenLabsSpeechSynthesisModel extends AbstractModel_js_1.AbstractModel {
24
+ class ElevenLabsSpeechModel extends AbstractModel_js_1.AbstractModel {
25
25
  constructor(settings) {
26
26
  super({ settings });
27
27
  Object.defineProperty(this, "provider", {
@@ -55,10 +55,10 @@ class ElevenLabsSpeechSynthesisModel extends AbstractModel_js_1.AbstractModel {
55
55
  voiceSettings: this.settings.voiceSettings,
56
56
  };
57
57
  }
58
- doSynthesizeSpeechStandard(text, options) {
58
+ doGenerateSpeechStandard(text, options) {
59
59
  return this.callAPI(text, options);
60
60
  }
61
- async doSynthesizeSpeechStreamDuplex(textStream
61
+ async doGenerateSpeechStreamDuplex(textStream
62
62
  // options?: FunctionOptions | undefined
63
63
  ) {
64
64
  const responseSchema = zod_1.z.union([
@@ -151,13 +151,13 @@ class ElevenLabsSpeechSynthesisModel extends AbstractModel_js_1.AbstractModel {
151
151
  return queue;
152
152
  }
153
153
  withSettings(additionalSettings) {
154
- return new ElevenLabsSpeechSynthesisModel({
154
+ return new ElevenLabsSpeechModel({
155
155
  ...this.settings,
156
156
  ...additionalSettings,
157
157
  });
158
158
  }
159
159
  }
160
- exports.ElevenLabsSpeechSynthesisModel = ElevenLabsSpeechSynthesisModel;
160
+ exports.ElevenLabsSpeechModel = ElevenLabsSpeechModel;
161
161
  async function callElevenLabsTextToSpeechAPI({ api = new ElevenLabsApiConfiguration_js_1.ElevenLabsApiConfiguration(), abortSignal, text, voiceId, modelId, voiceSettings, }) {
162
162
  return (0, postToApi_js_1.postJsonToApi)({
163
163
  url: api.assembleUrl(`/text-to-speech/${voiceId}`),
@@ -3,9 +3,9 @@ import { FunctionOptions } from "../../core/FunctionOptions.js";
3
3
  import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
4
4
  import { AbstractModel } from "../../model-function/AbstractModel.js";
5
5
  import { Delta } from "../../model-function/Delta.js";
6
- import { SpeechSynthesisModel, SpeechSynthesisModelSettings } from "../../model-function/synthesize-speech/SpeechSynthesisModel.js";
6
+ import { StreamingSpeechGenerationModel, SpeechGenerationModelSettings } from "../../model-function/generate-speech/SpeechGenerationModel.js";
7
7
  declare const elevenLabsModels: readonly ["eleven_multilingual_v2", "eleven_multilingual_v1", "eleven_monolingual_v1"];
8
- export interface ElevenLabsSpeechSynthesisModelSettings extends SpeechSynthesisModelSettings {
8
+ export interface ElevenLabsSpeechModelSettings extends SpeechGenerationModelSettings {
9
9
  api?: ApiConfiguration & {
10
10
  apiKey: string;
11
11
  };
@@ -26,14 +26,14 @@ export interface ElevenLabsSpeechSynthesisModelSettings extends SpeechSynthesisM
26
26
  *
27
27
  * @see https://api.elevenlabs.io/docs#/text-to-speech/Text_to_speech_v1_text_to_speech__voice_id__post
28
28
  */
29
- export declare class ElevenLabsSpeechSynthesisModel extends AbstractModel<ElevenLabsSpeechSynthesisModelSettings> implements SpeechSynthesisModel<ElevenLabsSpeechSynthesisModelSettings> {
30
- constructor(settings: ElevenLabsSpeechSynthesisModelSettings);
29
+ export declare class ElevenLabsSpeechModel extends AbstractModel<ElevenLabsSpeechModelSettings> implements StreamingSpeechGenerationModel<ElevenLabsSpeechModelSettings> {
30
+ constructor(settings: ElevenLabsSpeechModelSettings);
31
31
  readonly provider = "elevenlabs";
32
32
  get modelName(): string;
33
33
  private callAPI;
34
- get settingsForEvent(): Partial<ElevenLabsSpeechSynthesisModelSettings>;
35
- doSynthesizeSpeechStandard(text: string, options?: FunctionOptions): Promise<Buffer>;
36
- doSynthesizeSpeechStreamDuplex(textStream: AsyncIterable<string>): Promise<AsyncIterable<Delta<Buffer>>>;
37
- withSettings(additionalSettings: Partial<ElevenLabsSpeechSynthesisModelSettings>): this;
34
+ get settingsForEvent(): Partial<ElevenLabsSpeechModelSettings>;
35
+ doGenerateSpeechStandard(text: string, options?: FunctionOptions): Promise<Buffer>;
36
+ doGenerateSpeechStreamDuplex(textStream: AsyncIterable<string>): Promise<AsyncIterable<Delta<Buffer>>>;
37
+ withSettings(additionalSettings: Partial<ElevenLabsSpeechModelSettings>): this;
38
38
  }
39
39
  export {};