modelfusion 0.48.0 → 0.49.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.
- package/README.md +30 -45
- package/model-function/AsyncIterableResultPromise.cjs +5 -5
- package/model-function/AsyncIterableResultPromise.d.ts +3 -3
- package/model-function/AsyncIterableResultPromise.js +5 -5
- package/model-function/Model.d.ts +1 -1
- package/model-function/ModelCallEvent.d.ts +5 -7
- package/model-function/embed/embed.cjs +3 -3
- package/model-function/embed/embed.js +3 -3
- package/model-function/{executeCall.cjs → executeStandardCall.cjs} +3 -3
- package/model-function/{executeCall.d.ts → executeStandardCall.d.ts} +1 -1
- package/model-function/{executeCall.js → executeStandardCall.js} +1 -1
- package/model-function/executeStreamCall.cjs +132 -0
- package/model-function/executeStreamCall.d.ts +20 -0
- package/model-function/executeStreamCall.js +128 -0
- package/model-function/generate-image/generateImage.cjs +2 -2
- package/model-function/generate-image/generateImage.js +2 -2
- package/model-function/generate-speech/SpeechGenerationEvent.d.ts +27 -0
- package/model-function/generate-speech/SpeechGenerationModel.d.ts +15 -0
- package/model-function/generate-speech/generateSpeech.cjs +24 -0
- package/model-function/generate-speech/generateSpeech.d.ts +8 -0
- package/model-function/generate-speech/generateSpeech.js +20 -0
- package/model-function/generate-speech/index.cjs +20 -0
- package/model-function/generate-speech/index.d.ts +4 -0
- package/model-function/generate-speech/index.js +4 -0
- package/model-function/generate-speech/streamSpeech.cjs +34 -0
- package/model-function/generate-speech/streamSpeech.d.ts +8 -0
- package/model-function/generate-speech/streamSpeech.js +30 -0
- package/model-function/generate-structure/generateStructure.cjs +2 -2
- package/model-function/generate-structure/generateStructure.js +2 -2
- package/model-function/generate-structure/generateStructureOrText.cjs +2 -2
- package/model-function/generate-structure/generateStructureOrText.js +2 -2
- package/model-function/generate-structure/index.cjs +27 -0
- package/model-function/generate-structure/index.d.ts +11 -0
- package/model-function/generate-structure/index.js +11 -0
- package/model-function/generate-structure/streamStructure.cjs +28 -136
- package/model-function/generate-structure/streamStructure.js +27 -135
- package/model-function/generate-text/TextGenerationEvent.d.ts +6 -0
- package/model-function/generate-text/generateText.cjs +3 -3
- package/model-function/generate-text/generateText.d.ts +1 -1
- package/model-function/generate-text/generateText.js +3 -3
- package/model-function/generate-text/index.cjs +0 -1
- package/model-function/generate-text/index.d.ts +0 -1
- package/model-function/generate-text/index.js +0 -1
- package/model-function/generate-text/streamText.cjs +21 -128
- package/model-function/generate-text/streamText.js +20 -127
- package/model-function/generate-text/trimChatPrompt.cjs +1 -1
- package/model-function/generate-text/trimChatPrompt.d.ts +1 -1
- package/model-function/generate-text/trimChatPrompt.js +1 -1
- package/model-function/{transcribe-speech/transcribe.cjs → generate-transcription/generateTranscription.cjs} +6 -6
- package/model-function/{transcribe-speech/transcribe.d.ts → generate-transcription/generateTranscription.d.ts} +2 -2
- package/model-function/{transcribe-speech/transcribe.js → generate-transcription/generateTranscription.js} +4 -4
- package/model-function/index.cjs +5 -20
- package/model-function/index.d.ts +5 -20
- package/model-function/index.js +5 -20
- package/model-provider/elevenlabs/{ElevenLabsSpeechSynthesisModel.cjs → ElevenLabsSpeechModel.cjs} +6 -6
- package/model-provider/elevenlabs/{ElevenLabsSpeechSynthesisModel.d.ts → ElevenLabsSpeechModel.d.ts} +8 -8
- package/model-provider/elevenlabs/{ElevenLabsSpeechSynthesisModel.js → ElevenLabsSpeechModel.js} +4 -4
- package/model-provider/elevenlabs/index.cjs +1 -1
- package/model-provider/elevenlabs/index.d.ts +1 -1
- package/model-provider/elevenlabs/index.js +1 -1
- package/model-provider/huggingface/HuggingFaceImageDescriptionModel.cjs +21 -2
- package/model-provider/huggingface/HuggingFaceImageDescriptionModel.d.ts +11 -6
- package/model-provider/huggingface/HuggingFaceImageDescriptionModel.js +21 -2
- package/model-provider/lmnt/{LmntSpeechSynthesisModel.cjs → LmntSpeechModel.cjs} +5 -5
- package/model-provider/lmnt/LmntSpeechModel.d.ts +26 -0
- package/model-provider/lmnt/{LmntSpeechSynthesisModel.js → LmntSpeechModel.js} +3 -3
- package/model-provider/lmnt/index.cjs +1 -1
- package/model-provider/lmnt/index.d.ts +1 -1
- package/model-provider/lmnt/index.js +1 -1
- package/model-provider/openai/{OpenAITextGenerationModel.cjs → OpenAICompletionModel.cjs} +17 -17
- package/model-provider/openai/{OpenAITextGenerationModel.d.ts → OpenAICompletionModel.d.ts} +25 -25
- package/model-provider/openai/{OpenAITextGenerationModel.js → OpenAICompletionModel.js} +12 -12
- package/model-provider/openai/OpenAICostCalculator.cjs +3 -3
- package/model-provider/openai/OpenAICostCalculator.js +3 -3
- package/model-provider/openai/OpenAITranscriptionModel.d.ts +1 -1
- package/model-provider/openai/TikTokenTokenizer.d.ts +2 -2
- package/model-provider/openai/index.cjs +1 -1
- package/model-provider/openai/index.d.ts +1 -1
- package/model-provider/openai/index.js +1 -1
- package/package.json +1 -1
- package/model-function/describe-image/ImageDescriptionEvent.d.ts +0 -18
- package/model-function/describe-image/ImageDescriptionModel.d.ts +0 -10
- package/model-function/describe-image/describeImage.cjs +0 -26
- package/model-function/describe-image/describeImage.d.ts +0 -9
- package/model-function/describe-image/describeImage.js +0 -22
- package/model-function/generate-text/TextStreamingEvent.cjs +0 -2
- package/model-function/generate-text/TextStreamingEvent.d.ts +0 -7
- package/model-function/generate-text/TextStreamingEvent.js +0 -1
- package/model-function/synthesize-speech/SpeechSynthesisEvent.cjs +0 -2
- package/model-function/synthesize-speech/SpeechSynthesisEvent.d.ts +0 -21
- package/model-function/synthesize-speech/SpeechSynthesisEvent.js +0 -1
- package/model-function/synthesize-speech/SpeechSynthesisModel.cjs +0 -2
- package/model-function/synthesize-speech/SpeechSynthesisModel.d.ts +0 -15
- package/model-function/synthesize-speech/SpeechSynthesisModel.js +0 -1
- package/model-function/synthesize-speech/synthesizeSpeech.cjs +0 -67
- package/model-function/synthesize-speech/synthesizeSpeech.d.ts +0 -14
- package/model-function/synthesize-speech/synthesizeSpeech.js +0 -63
- package/model-provider/lmnt/LmntSpeechSynthesisModel.d.ts +0 -26
- /package/model-function/{describe-image/ImageDescriptionEvent.cjs → generate-speech/SpeechGenerationEvent.cjs} +0 -0
- /package/model-function/{describe-image/ImageDescriptionEvent.js → generate-speech/SpeechGenerationEvent.js} +0 -0
- /package/model-function/{describe-image/ImageDescriptionModel.cjs → generate-speech/SpeechGenerationModel.cjs} +0 -0
- /package/model-function/{describe-image/ImageDescriptionModel.js → generate-speech/SpeechGenerationModel.js} +0 -0
- /package/model-function/{transcribe-speech → generate-transcription}/TranscriptionEvent.cjs +0 -0
- /package/model-function/{transcribe-speech → generate-transcription}/TranscriptionEvent.d.ts +0 -0
- /package/model-function/{transcribe-speech → generate-transcription}/TranscriptionEvent.js +0 -0
- /package/model-function/{transcribe-speech → generate-transcription}/TranscriptionModel.cjs +0 -0
- /package/model-function/{transcribe-speech → generate-transcription}/TranscriptionModel.d.ts +0 -0
- /package/model-function/{transcribe-speech → generate-transcription}/TranscriptionModel.js +0 -0
@@ -1,9 +0,0 @@
|
|
1
|
-
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
2
|
-
import { ModelFunctionPromise } from "../ModelFunctionPromise.js";
|
3
|
-
import { ImageDescriptionModel, ImageDescriptionModelSettings } from "./ImageDescriptionModel.js";
|
4
|
-
/**
|
5
|
-
* Describe an image as text.
|
6
|
-
*
|
7
|
-
* Depending on the model, this can be used for image captioning, for describing the contents of an image, or for OCR.
|
8
|
-
*/
|
9
|
-
export declare function describeImage<DATA>(model: ImageDescriptionModel<DATA, ImageDescriptionModelSettings>, data: DATA, options?: FunctionOptions): ModelFunctionPromise<string>;
|
@@ -1,22 +0,0 @@
|
|
1
|
-
import { executeCall } from "../executeCall.js";
|
2
|
-
import { ModelFunctionPromise } from "../ModelFunctionPromise.js";
|
3
|
-
/**
|
4
|
-
* Describe an image as text.
|
5
|
-
*
|
6
|
-
* Depending on the model, this can be used for image captioning, for describing the contents of an image, or for OCR.
|
7
|
-
*/
|
8
|
-
export function describeImage(model, data, options) {
|
9
|
-
return new ModelFunctionPromise(executeCall({
|
10
|
-
functionType: "image-description",
|
11
|
-
input: data,
|
12
|
-
model,
|
13
|
-
options,
|
14
|
-
generateResponse: async (options) => {
|
15
|
-
const result = await model.doDescribeImage(data, options);
|
16
|
-
return {
|
17
|
-
response: result.response,
|
18
|
-
extractedValue: result.description,
|
19
|
-
};
|
20
|
-
},
|
21
|
-
}));
|
22
|
-
}
|
@@ -1,7 +0,0 @@
|
|
1
|
-
import { BaseModelCallFinishedEvent, BaseModelCallStartedEvent } from "../ModelCallEvent.js";
|
2
|
-
export interface TextStreamingStartedEvent extends BaseModelCallStartedEvent {
|
3
|
-
functionType: "text-streaming";
|
4
|
-
}
|
5
|
-
export interface TextStreamingFinishedEvent extends BaseModelCallFinishedEvent {
|
6
|
-
functionType: "text-streaming";
|
7
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1,21 +0,0 @@
|
|
1
|
-
/// <reference types="node" />
|
2
|
-
import { BaseModelCallFinishedEvent, BaseModelCallStartedEvent } from "../ModelCallEvent.js";
|
3
|
-
export interface SpeechSynthesisStartedEvent extends BaseModelCallStartedEvent {
|
4
|
-
functionType: "speech-synthesis";
|
5
|
-
input: string;
|
6
|
-
}
|
7
|
-
export type SpeechSynthesisFinishedEventResult = {
|
8
|
-
status: "success";
|
9
|
-
response: unknown;
|
10
|
-
value: Buffer;
|
11
|
-
} | {
|
12
|
-
status: "error";
|
13
|
-
error: unknown;
|
14
|
-
} | {
|
15
|
-
status: "abort";
|
16
|
-
};
|
17
|
-
export interface SpeechSynthesisFinishedEvent extends BaseModelCallFinishedEvent {
|
18
|
-
functionType: "speech-synthesis";
|
19
|
-
input: string;
|
20
|
-
result: SpeechSynthesisFinishedEventResult;
|
21
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1,15 +0,0 @@
|
|
1
|
-
/// <reference types="node" />
|
2
|
-
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
3
|
-
import { Delta } from "../../model-function/Delta.js";
|
4
|
-
import { Model, ModelSettings } from "../Model.js";
|
5
|
-
export interface SpeechSynthesisModelSettings extends ModelSettings {
|
6
|
-
}
|
7
|
-
export interface SpeechSynthesisModel<SETTINGS extends SpeechSynthesisModelSettings = SpeechSynthesisModelSettings> extends Model<SETTINGS> {
|
8
|
-
/**
|
9
|
-
* Generates an mp3 audio buffer that contains the speech for the given text.
|
10
|
-
*/
|
11
|
-
doSynthesizeSpeechStandard(text: string, options?: FunctionOptions): PromiseLike<Buffer>;
|
12
|
-
}
|
13
|
-
export interface DuplexSpeechSynthesisModel<SETTINGS extends SpeechSynthesisModelSettings = SpeechSynthesisModelSettings> extends SpeechSynthesisModel<SETTINGS> {
|
14
|
-
doSynthesizeSpeechStreamDuplex(textStream: AsyncIterable<string>, options?: FunctionOptions): PromiseLike<AsyncIterable<Delta<Buffer>>>;
|
15
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1,67 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.synthesizeSpeech = void 0;
|
4
|
-
const AsyncIterableResultPromise_js_1 = require("../../model-function/AsyncIterableResultPromise.cjs");
|
5
|
-
const ModelFunctionPromise_js_1 = require("../ModelFunctionPromise.cjs");
|
6
|
-
const executeCall_js_1 = require("../executeCall.cjs");
|
7
|
-
function synthesizeSpeech(model, text, options) {
|
8
|
-
const mode = options?.mode ?? "standard";
|
9
|
-
switch (mode) {
|
10
|
-
case "standard": {
|
11
|
-
if (typeof text !== "string") {
|
12
|
-
throw new Error(`The "standard" mode only supports a string input, but received ${text}`);
|
13
|
-
}
|
14
|
-
return new ModelFunctionPromise_js_1.ModelFunctionPromise((0, executeCall_js_1.executeCall)({
|
15
|
-
functionType: "speech-synthesis",
|
16
|
-
input: text,
|
17
|
-
model,
|
18
|
-
options,
|
19
|
-
generateResponse: async (options) => {
|
20
|
-
const response = await model.doSynthesizeSpeechStandard(text, options);
|
21
|
-
return {
|
22
|
-
response,
|
23
|
-
extractedValue: response,
|
24
|
-
};
|
25
|
-
},
|
26
|
-
}));
|
27
|
-
}
|
28
|
-
case "stream-duplex": {
|
29
|
-
if (typeof text === "string") {
|
30
|
-
throw new Error(`The "stream-duplex" mode only supports an AsyncIterable<string> input, but received ${text}`);
|
31
|
-
}
|
32
|
-
if (!("doSynthesizeSpeechStreamDuplex" in model) ||
|
33
|
-
typeof model.doSynthesizeSpeechStreamDuplex !== "function") {
|
34
|
-
throw new Error(`The "stream-duplex" mode is not supported by this model.`);
|
35
|
-
}
|
36
|
-
return new AsyncIterableResultPromise_js_1.AsyncIterableResultPromise(doSynthesizeSpeechStreamDuplex(model, text, options));
|
37
|
-
}
|
38
|
-
default: {
|
39
|
-
const mode_ = mode;
|
40
|
-
throw new Error(`Unsupported mode: ${mode_}`);
|
41
|
-
}
|
42
|
-
}
|
43
|
-
}
|
44
|
-
exports.synthesizeSpeech = synthesizeSpeech;
|
45
|
-
async function doSynthesizeSpeechStreamDuplex(model, text, options) {
|
46
|
-
const speechDeltas = await model.doSynthesizeSpeechStreamDuplex(text, options);
|
47
|
-
// Convert the speechDeltas (AsyncIterable<Delta<Buffer>>) to an AsyncIterable<Buffer>
|
48
|
-
const bufferStream = convertDeltasToBuffers(speechDeltas);
|
49
|
-
return {
|
50
|
-
output: bufferStream,
|
51
|
-
metadata: {
|
52
|
-
model: model.modelInformation,
|
53
|
-
callId: "test",
|
54
|
-
startTimestamp: new Date(),
|
55
|
-
},
|
56
|
-
};
|
57
|
-
}
|
58
|
-
async function* convertDeltasToBuffers(deltas) {
|
59
|
-
for await (const delta of deltas) {
|
60
|
-
switch (delta.type) {
|
61
|
-
case "error":
|
62
|
-
throw delta.error;
|
63
|
-
case "delta":
|
64
|
-
yield delta.valueDelta;
|
65
|
-
}
|
66
|
-
}
|
67
|
-
}
|
@@ -1,14 +0,0 @@
|
|
1
|
-
/// <reference types="node" />
|
2
|
-
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
3
|
-
import { AsyncIterableResultPromise } from "../../model-function/AsyncIterableResultPromise.js";
|
4
|
-
import { ModelFunctionPromise } from "../ModelFunctionPromise.js";
|
5
|
-
import { DuplexSpeechSynthesisModel, SpeechSynthesisModel, SpeechSynthesisModelSettings } from "./SpeechSynthesisModel.js";
|
6
|
-
/**
|
7
|
-
* Synthesizes speech from text.
|
8
|
-
*/
|
9
|
-
export declare function synthesizeSpeech(model: SpeechSynthesisModel<SpeechSynthesisModelSettings>, text: string, options?: FunctionOptions & {
|
10
|
-
mode?: "standard";
|
11
|
-
}): ModelFunctionPromise<Buffer>;
|
12
|
-
export declare function synthesizeSpeech(model: DuplexSpeechSynthesisModel<SpeechSynthesisModelSettings>, text: AsyncIterable<string>, options: FunctionOptions & {
|
13
|
-
mode: "stream-duplex";
|
14
|
-
}): AsyncIterableResultPromise<Buffer>;
|
@@ -1,63 +0,0 @@
|
|
1
|
-
import { AsyncIterableResultPromise } from "../../model-function/AsyncIterableResultPromise.js";
|
2
|
-
import { ModelFunctionPromise } from "../ModelFunctionPromise.js";
|
3
|
-
import { executeCall } from "../executeCall.js";
|
4
|
-
export function synthesizeSpeech(model, text, options) {
|
5
|
-
const mode = options?.mode ?? "standard";
|
6
|
-
switch (mode) {
|
7
|
-
case "standard": {
|
8
|
-
if (typeof text !== "string") {
|
9
|
-
throw new Error(`The "standard" mode only supports a string input, but received ${text}`);
|
10
|
-
}
|
11
|
-
return new ModelFunctionPromise(executeCall({
|
12
|
-
functionType: "speech-synthesis",
|
13
|
-
input: text,
|
14
|
-
model,
|
15
|
-
options,
|
16
|
-
generateResponse: async (options) => {
|
17
|
-
const response = await model.doSynthesizeSpeechStandard(text, options);
|
18
|
-
return {
|
19
|
-
response,
|
20
|
-
extractedValue: response,
|
21
|
-
};
|
22
|
-
},
|
23
|
-
}));
|
24
|
-
}
|
25
|
-
case "stream-duplex": {
|
26
|
-
if (typeof text === "string") {
|
27
|
-
throw new Error(`The "stream-duplex" mode only supports an AsyncIterable<string> input, but received ${text}`);
|
28
|
-
}
|
29
|
-
if (!("doSynthesizeSpeechStreamDuplex" in model) ||
|
30
|
-
typeof model.doSynthesizeSpeechStreamDuplex !== "function") {
|
31
|
-
throw new Error(`The "stream-duplex" mode is not supported by this model.`);
|
32
|
-
}
|
33
|
-
return new AsyncIterableResultPromise(doSynthesizeSpeechStreamDuplex(model, text, options));
|
34
|
-
}
|
35
|
-
default: {
|
36
|
-
const mode_ = mode;
|
37
|
-
throw new Error(`Unsupported mode: ${mode_}`);
|
38
|
-
}
|
39
|
-
}
|
40
|
-
}
|
41
|
-
async function doSynthesizeSpeechStreamDuplex(model, text, options) {
|
42
|
-
const speechDeltas = await model.doSynthesizeSpeechStreamDuplex(text, options);
|
43
|
-
// Convert the speechDeltas (AsyncIterable<Delta<Buffer>>) to an AsyncIterable<Buffer>
|
44
|
-
const bufferStream = convertDeltasToBuffers(speechDeltas);
|
45
|
-
return {
|
46
|
-
output: bufferStream,
|
47
|
-
metadata: {
|
48
|
-
model: model.modelInformation,
|
49
|
-
callId: "test",
|
50
|
-
startTimestamp: new Date(),
|
51
|
-
},
|
52
|
-
};
|
53
|
-
}
|
54
|
-
async function* convertDeltasToBuffers(deltas) {
|
55
|
-
for await (const delta of deltas) {
|
56
|
-
switch (delta.type) {
|
57
|
-
case "error":
|
58
|
-
throw delta.error;
|
59
|
-
case "delta":
|
60
|
-
yield delta.valueDelta;
|
61
|
-
}
|
62
|
-
}
|
63
|
-
}
|
@@ -1,26 +0,0 @@
|
|
1
|
-
/// <reference types="node" />
|
2
|
-
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
3
|
-
import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
|
4
|
-
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
5
|
-
import { SpeechSynthesisModel, SpeechSynthesisModelSettings } from "../../model-function/synthesize-speech/SpeechSynthesisModel.js";
|
6
|
-
export interface LmntSpeechSynthesisModelSettings extends SpeechSynthesisModelSettings {
|
7
|
-
api?: ApiConfiguration;
|
8
|
-
voice: string;
|
9
|
-
speed?: number;
|
10
|
-
seed?: number;
|
11
|
-
length?: number;
|
12
|
-
}
|
13
|
-
/**
|
14
|
-
* Synthesize speech using the LMNT API.
|
15
|
-
*
|
16
|
-
* @see https://www.lmnt.com/docs/rest/#synthesize-speech
|
17
|
-
*/
|
18
|
-
export declare class LmntSpeechSynthesisModel extends AbstractModel<LmntSpeechSynthesisModelSettings> implements SpeechSynthesisModel<LmntSpeechSynthesisModelSettings> {
|
19
|
-
constructor(settings: LmntSpeechSynthesisModelSettings);
|
20
|
-
readonly provider = "lmnt";
|
21
|
-
get modelName(): string;
|
22
|
-
private callAPI;
|
23
|
-
get settingsForEvent(): Partial<LmntSpeechSynthesisModelSettings>;
|
24
|
-
doSynthesizeSpeechStandard(text: string, options?: FunctionOptions): Promise<Buffer>;
|
25
|
-
withSettings(additionalSettings: Partial<LmntSpeechSynthesisModelSettings>): this;
|
26
|
-
}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
/package/model-function/{transcribe-speech → generate-transcription}/TranscriptionEvent.d.ts
RENAMED
File without changes
|
File without changes
|
File without changes
|
/package/model-function/{transcribe-speech → generate-transcription}/TranscriptionModel.d.ts
RENAMED
File without changes
|
File without changes
|