modelfusion 0.45.3 → 0.47.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 +92 -65
- package/index.cjs +0 -1
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/model-function/ModelFunctionPromise.cjs +37 -0
- package/model-function/ModelFunctionPromise.d.ts +18 -0
- package/model-function/ModelFunctionPromise.js +33 -0
- package/{prompt → model-function}/PromptFormat.d.ts +0 -5
- package/model-function/describe-image/describeImage.cjs +3 -2
- package/model-function/describe-image/describeImage.d.ts +1 -1
- package/model-function/describe-image/describeImage.js +3 -2
- package/model-function/embed/embed.cjs +5 -4
- package/model-function/embed/embed.d.ts +1 -1
- package/model-function/embed/embed.js +5 -4
- package/model-function/executeCall.cjs +3 -46
- package/model-function/executeCall.d.ts +5 -18
- package/model-function/executeCall.js +1 -43
- package/model-function/generate-image/ImageGenerationModel.d.ts +2 -0
- package/model-function/generate-image/ImageGenerationPromise.cjs +50 -0
- package/model-function/generate-image/ImageGenerationPromise.d.ts +22 -0
- package/model-function/generate-image/ImageGenerationPromise.js +46 -0
- package/model-function/generate-image/PromptFormatImageGenerationModel.cjs +44 -0
- package/model-function/generate-image/PromptFormatImageGenerationModel.d.ts +20 -0
- package/model-function/generate-image/PromptFormatImageGenerationModel.js +40 -0
- package/model-function/generate-image/generateImage.cjs +3 -2
- package/model-function/generate-image/generateImage.d.ts +2 -2
- package/model-function/generate-image/generateImage.js +3 -2
- package/model-function/generate-structure/generateStructure.cjs +3 -2
- package/model-function/generate-structure/generateStructure.d.ts +1 -1
- package/model-function/generate-structure/generateStructure.js +3 -2
- package/model-function/generate-structure/generateStructureOrText.cjs +3 -2
- package/model-function/generate-structure/generateStructureOrText.d.ts +1 -1
- package/model-function/generate-structure/generateStructureOrText.js +3 -2
- package/{prompt → model-function/generate-text}/AlpacaPromptFormat.d.ts +2 -2
- package/{prompt → model-function/generate-text}/Llama2PromptFormat.cjs +1 -1
- package/model-function/generate-text/Llama2PromptFormat.d.ts +13 -0
- package/{prompt → model-function/generate-text}/Llama2PromptFormat.js +1 -1
- package/{prompt → model-function/generate-text}/PromptFormatTextGenerationModel.d.ts +7 -7
- package/{prompt → model-function/generate-text}/PromptFormatTextStreamingModel.d.ts +6 -6
- package/model-function/generate-text/TextGenerationModel.d.ts +10 -3
- package/model-function/generate-text/TextGenerationPromptFormat.cjs +2 -0
- package/model-function/generate-text/TextGenerationPromptFormat.d.ts +11 -0
- package/model-function/generate-text/TextGenerationPromptFormat.js +1 -0
- package/{prompt → model-function/generate-text}/TextPromptFormat.cjs +2 -2
- package/model-function/generate-text/TextPromptFormat.d.ts +17 -0
- package/{prompt → model-function/generate-text}/TextPromptFormat.js +2 -2
- package/{prompt → model-function/generate-text}/VicunaPromptFormat.cjs +1 -1
- package/{prompt → model-function/generate-text}/VicunaPromptFormat.d.ts +3 -3
- package/{prompt → model-function/generate-text}/VicunaPromptFormat.js +1 -1
- package/model-function/generate-text/generateText.cjs +6 -3
- package/model-function/generate-text/generateText.d.ts +1 -1
- package/model-function/generate-text/generateText.js +6 -3
- package/{prompt → model-function/generate-text}/index.cjs +9 -4
- package/model-function/generate-text/index.d.ts +16 -0
- package/model-function/generate-text/index.js +16 -0
- package/{prompt/chat → model-function/generate-text}/trimChatPrompt.d.ts +2 -5
- package/model-function/index.cjs +3 -5
- package/model-function/index.d.ts +3 -5
- package/model-function/index.js +3 -5
- package/model-function/synthesize-speech/synthesizeSpeech.cjs +3 -2
- package/model-function/synthesize-speech/synthesizeSpeech.d.ts +1 -1
- package/model-function/synthesize-speech/synthesizeSpeech.js +3 -2
- package/model-function/transcribe-speech/transcribe.cjs +3 -2
- package/model-function/transcribe-speech/transcribe.d.ts +1 -1
- package/model-function/transcribe-speech/transcribe.js +3 -2
- package/model-provider/anthropic/AnthropicPromptFormat.cjs +1 -1
- package/model-provider/anthropic/AnthropicPromptFormat.d.ts +5 -5
- package/model-provider/anthropic/AnthropicPromptFormat.js +1 -1
- package/model-provider/anthropic/AnthropicTextGenerationModel.cjs +14 -1
- package/model-provider/anthropic/AnthropicTextGenerationModel.d.ts +11 -3
- package/model-provider/anthropic/AnthropicTextGenerationModel.js +14 -1
- package/model-provider/automatic1111/Automatic1111ImageGenerationModel.cjs +11 -0
- package/model-provider/automatic1111/Automatic1111ImageGenerationModel.d.ts +12 -12
- package/model-provider/automatic1111/Automatic1111ImageGenerationModel.js +11 -0
- package/model-provider/automatic1111/Automatic1111ImageGenerationPrompt.cjs +12 -0
- package/model-provider/automatic1111/Automatic1111ImageGenerationPrompt.d.ts +10 -0
- package/model-provider/automatic1111/Automatic1111ImageGenerationPrompt.js +8 -0
- package/model-provider/automatic1111/index.cjs +1 -0
- package/model-provider/automatic1111/index.d.ts +1 -0
- package/model-provider/automatic1111/index.js +1 -0
- package/model-provider/cohere/CohereTextGenerationModel.cjs +14 -1
- package/model-provider/cohere/CohereTextGenerationModel.d.ts +14 -3
- package/model-provider/cohere/CohereTextGenerationModel.js +14 -1
- package/model-provider/huggingface/HuggingFaceTextGenerationModel.cjs +2 -2
- package/model-provider/huggingface/HuggingFaceTextGenerationModel.d.ts +5 -5
- package/model-provider/huggingface/HuggingFaceTextGenerationModel.js +2 -2
- package/model-provider/llamacpp/LlamaCppTextGenerationModel.cjs +1 -1
- package/model-provider/llamacpp/LlamaCppTextGenerationModel.d.ts +3 -3
- package/model-provider/llamacpp/LlamaCppTextGenerationModel.js +1 -1
- package/model-provider/openai/OpenAIImageGenerationModel.cjs +8 -1
- package/model-provider/openai/OpenAIImageGenerationModel.d.ts +6 -3
- package/model-provider/openai/OpenAIImageGenerationModel.js +8 -1
- package/model-provider/openai/OpenAITextGenerationModel.cjs +14 -1
- package/model-provider/openai/OpenAITextGenerationModel.d.ts +14 -3
- package/model-provider/openai/OpenAITextGenerationModel.js +14 -1
- package/model-provider/openai/chat/OpenAIChatModel.cjs +14 -1
- package/model-provider/openai/chat/OpenAIChatModel.d.ts +11 -3
- package/model-provider/openai/chat/OpenAIChatModel.js +14 -1
- package/model-provider/openai/chat/OpenAIChatPromptFormat.cjs +1 -1
- package/model-provider/openai/chat/OpenAIChatPromptFormat.d.ts +5 -5
- package/model-provider/openai/chat/OpenAIChatPromptFormat.js +1 -1
- package/model-provider/stability/StabilityImageGenerationModel.cjs +11 -0
- package/model-provider/stability/StabilityImageGenerationModel.d.ts +15 -14
- package/model-provider/stability/StabilityImageGenerationModel.js +11 -0
- package/model-provider/stability/StabilityImageGenerationPrompt.cjs +12 -0
- package/model-provider/stability/StabilityImageGenerationPrompt.d.ts +9 -0
- package/model-provider/stability/StabilityImageGenerationPrompt.js +8 -0
- package/model-provider/stability/index.cjs +1 -0
- package/model-provider/stability/index.d.ts +1 -0
- package/model-provider/stability/index.js +1 -0
- package/package.json +1 -1
- package/prompt/Llama2PromptFormat.d.ts +0 -13
- package/prompt/TextPromptFormat.d.ts +0 -17
- package/prompt/index.d.ts +0 -11
- package/prompt/index.js +0 -11
- /package/{prompt → model-function}/PromptFormat.cjs +0 -0
- /package/{prompt → model-function}/PromptFormat.js +0 -0
- /package/{prompt → model-function/generate-text}/AlpacaPromptFormat.cjs +0 -0
- /package/{prompt → model-function/generate-text}/AlpacaPromptFormat.js +0 -0
- /package/{prompt/chat → model-function/generate-text}/ChatPrompt.cjs +0 -0
- /package/{prompt/chat → model-function/generate-text}/ChatPrompt.d.ts +0 -0
- /package/{prompt/chat → model-function/generate-text}/ChatPrompt.js +0 -0
- /package/{prompt → model-function/generate-text}/InstructionPrompt.cjs +0 -0
- /package/{prompt → model-function/generate-text}/InstructionPrompt.d.ts +0 -0
- /package/{prompt → model-function/generate-text}/InstructionPrompt.js +0 -0
- /package/{prompt → model-function/generate-text}/PromptFormatTextGenerationModel.cjs +0 -0
- /package/{prompt → model-function/generate-text}/PromptFormatTextGenerationModel.js +0 -0
- /package/{prompt → model-function/generate-text}/PromptFormatTextStreamingModel.cjs +0 -0
- /package/{prompt → model-function/generate-text}/PromptFormatTextStreamingModel.js +0 -0
- /package/{prompt/chat → model-function/generate-text}/trimChatPrompt.cjs +0 -0
- /package/{prompt/chat → model-function/generate-text}/trimChatPrompt.js +0 -0
- /package/{prompt/chat → model-function/generate-text}/validateChatPrompt.cjs +0 -0
- /package/{prompt/chat → model-function/generate-text}/validateChatPrompt.d.ts +0 -0
- /package/{prompt/chat → model-function/generate-text}/validateChatPrompt.js +0 -0
@@ -0,0 +1,50 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ImageGenerationPromise = void 0;
|
4
|
+
class ImageGenerationPromise extends Promise {
|
5
|
+
constructor(fullPromise) {
|
6
|
+
super((resolve) => {
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
8
|
+
resolve(null); // we override the resolve function
|
9
|
+
});
|
10
|
+
Object.defineProperty(this, "fullPromise", {
|
11
|
+
enumerable: true,
|
12
|
+
configurable: true,
|
13
|
+
writable: true,
|
14
|
+
value: fullPromise
|
15
|
+
});
|
16
|
+
Object.defineProperty(this, "imageBase64Promise", {
|
17
|
+
enumerable: true,
|
18
|
+
configurable: true,
|
19
|
+
writable: true,
|
20
|
+
value: void 0
|
21
|
+
});
|
22
|
+
Object.defineProperty(this, "imageBufferPromise", {
|
23
|
+
enumerable: true,
|
24
|
+
configurable: true,
|
25
|
+
writable: true,
|
26
|
+
value: void 0
|
27
|
+
});
|
28
|
+
this.imageBase64Promise = fullPromise.then((result) => result.value);
|
29
|
+
this.imageBufferPromise = this.imageBase64Promise.then((base64Text) => Buffer.from(base64Text, "base64"));
|
30
|
+
}
|
31
|
+
asFullResponse() {
|
32
|
+
return this.fullPromise;
|
33
|
+
}
|
34
|
+
asBase64Text() {
|
35
|
+
return this.imageBase64Promise;
|
36
|
+
}
|
37
|
+
asBuffer() {
|
38
|
+
return this.imageBufferPromise;
|
39
|
+
}
|
40
|
+
then(onfulfilled, onrejected) {
|
41
|
+
return this.imageBufferPromise.then(onfulfilled, onrejected);
|
42
|
+
}
|
43
|
+
catch(onrejected) {
|
44
|
+
return this.imageBufferPromise.catch(onrejected);
|
45
|
+
}
|
46
|
+
finally(onfinally) {
|
47
|
+
return this.imageBufferPromise.finally(onfinally);
|
48
|
+
}
|
49
|
+
}
|
50
|
+
exports.ImageGenerationPromise = ImageGenerationPromise;
|
@@ -0,0 +1,22 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import { ModelCallMetadata } from "../ModelCallMetadata.js";
|
3
|
+
export declare class ImageGenerationPromise extends Promise<Buffer> {
|
4
|
+
private fullPromise;
|
5
|
+
private imageBase64Promise;
|
6
|
+
private imageBufferPromise;
|
7
|
+
constructor(fullPromise: Promise<{
|
8
|
+
value: string;
|
9
|
+
response: unknown;
|
10
|
+
metadata: ModelCallMetadata;
|
11
|
+
}>);
|
12
|
+
asFullResponse(): Promise<{
|
13
|
+
value: string;
|
14
|
+
response: unknown;
|
15
|
+
metadata: ModelCallMetadata;
|
16
|
+
}>;
|
17
|
+
asBase64Text(): Promise<string>;
|
18
|
+
asBuffer(): Promise<Buffer>;
|
19
|
+
then<TResult1 = Buffer, TResult2 = never>(onfulfilled?: ((value: Buffer) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
|
20
|
+
catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | undefined | null): Promise<Buffer | TResult>;
|
21
|
+
finally(onfinally?: (() => void) | undefined | null): Promise<Buffer>;
|
22
|
+
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
export class ImageGenerationPromise extends Promise {
|
2
|
+
constructor(fullPromise) {
|
3
|
+
super((resolve) => {
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
5
|
+
resolve(null); // we override the resolve function
|
6
|
+
});
|
7
|
+
Object.defineProperty(this, "fullPromise", {
|
8
|
+
enumerable: true,
|
9
|
+
configurable: true,
|
10
|
+
writable: true,
|
11
|
+
value: fullPromise
|
12
|
+
});
|
13
|
+
Object.defineProperty(this, "imageBase64Promise", {
|
14
|
+
enumerable: true,
|
15
|
+
configurable: true,
|
16
|
+
writable: true,
|
17
|
+
value: void 0
|
18
|
+
});
|
19
|
+
Object.defineProperty(this, "imageBufferPromise", {
|
20
|
+
enumerable: true,
|
21
|
+
configurable: true,
|
22
|
+
writable: true,
|
23
|
+
value: void 0
|
24
|
+
});
|
25
|
+
this.imageBase64Promise = fullPromise.then((result) => result.value);
|
26
|
+
this.imageBufferPromise = this.imageBase64Promise.then((base64Text) => Buffer.from(base64Text, "base64"));
|
27
|
+
}
|
28
|
+
asFullResponse() {
|
29
|
+
return this.fullPromise;
|
30
|
+
}
|
31
|
+
asBase64Text() {
|
32
|
+
return this.imageBase64Promise;
|
33
|
+
}
|
34
|
+
asBuffer() {
|
35
|
+
return this.imageBufferPromise;
|
36
|
+
}
|
37
|
+
then(onfulfilled, onrejected) {
|
38
|
+
return this.imageBufferPromise.then(onfulfilled, onrejected);
|
39
|
+
}
|
40
|
+
catch(onrejected) {
|
41
|
+
return this.imageBufferPromise.catch(onrejected);
|
42
|
+
}
|
43
|
+
finally(onfinally) {
|
44
|
+
return this.imageBufferPromise.finally(onfinally);
|
45
|
+
}
|
46
|
+
}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.PromptFormatImageGenerationModel = void 0;
|
4
|
+
class PromptFormatImageGenerationModel {
|
5
|
+
constructor({ model, promptFormat, }) {
|
6
|
+
Object.defineProperty(this, "model", {
|
7
|
+
enumerable: true,
|
8
|
+
configurable: true,
|
9
|
+
writable: true,
|
10
|
+
value: void 0
|
11
|
+
});
|
12
|
+
Object.defineProperty(this, "promptFormat", {
|
13
|
+
enumerable: true,
|
14
|
+
configurable: true,
|
15
|
+
writable: true,
|
16
|
+
value: void 0
|
17
|
+
});
|
18
|
+
this.model = model;
|
19
|
+
this.promptFormat = promptFormat;
|
20
|
+
}
|
21
|
+
get modelInformation() {
|
22
|
+
return this.model.modelInformation;
|
23
|
+
}
|
24
|
+
get settings() {
|
25
|
+
return this.model.settings;
|
26
|
+
}
|
27
|
+
doGenerateImage(prompt, options) {
|
28
|
+
const mappedPrompt = this.promptFormat.format(prompt);
|
29
|
+
return this.model.doGenerateImage(mappedPrompt, options);
|
30
|
+
}
|
31
|
+
get settingsForEvent() {
|
32
|
+
return this.model.settingsForEvent;
|
33
|
+
}
|
34
|
+
withPromptFormat(promptFormat) {
|
35
|
+
return new PromptFormatImageGenerationModel({ model: this, promptFormat });
|
36
|
+
}
|
37
|
+
withSettings(additionalSettings) {
|
38
|
+
return new PromptFormatImageGenerationModel({
|
39
|
+
model: this.model.withSettings(additionalSettings),
|
40
|
+
promptFormat: this.promptFormat,
|
41
|
+
});
|
42
|
+
}
|
43
|
+
}
|
44
|
+
exports.PromptFormatImageGenerationModel = PromptFormatImageGenerationModel;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
2
|
+
import { PromptFormat } from "../PromptFormat.js";
|
3
|
+
import { ImageGenerationModel, ImageGenerationModelSettings } from "./ImageGenerationModel.js";
|
4
|
+
export declare class PromptFormatImageGenerationModel<PROMPT, MODEL_PROMPT, SETTINGS extends ImageGenerationModelSettings, MODEL extends ImageGenerationModel<MODEL_PROMPT, SETTINGS>> implements ImageGenerationModel<PROMPT, SETTINGS> {
|
5
|
+
readonly model: MODEL;
|
6
|
+
readonly promptFormat: PromptFormat<PROMPT, MODEL_PROMPT>;
|
7
|
+
constructor({ model, promptFormat, }: {
|
8
|
+
model: MODEL;
|
9
|
+
promptFormat: PromptFormat<PROMPT, MODEL_PROMPT>;
|
10
|
+
});
|
11
|
+
get modelInformation(): import("../ModelInformation.js").ModelInformation;
|
12
|
+
get settings(): SETTINGS;
|
13
|
+
doGenerateImage(prompt: PROMPT, options?: FunctionOptions): PromiseLike<{
|
14
|
+
response: unknown;
|
15
|
+
base64Image: string;
|
16
|
+
}>;
|
17
|
+
get settingsForEvent(): Partial<SETTINGS>;
|
18
|
+
withPromptFormat<INPUT_PROMPT>(promptFormat: PromptFormat<INPUT_PROMPT, PROMPT>): PromptFormatImageGenerationModel<INPUT_PROMPT, PROMPT, SETTINGS, this>;
|
19
|
+
withSettings(additionalSettings: Partial<SETTINGS>): this;
|
20
|
+
}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
export class PromptFormatImageGenerationModel {
|
2
|
+
constructor({ model, promptFormat, }) {
|
3
|
+
Object.defineProperty(this, "model", {
|
4
|
+
enumerable: true,
|
5
|
+
configurable: true,
|
6
|
+
writable: true,
|
7
|
+
value: void 0
|
8
|
+
});
|
9
|
+
Object.defineProperty(this, "promptFormat", {
|
10
|
+
enumerable: true,
|
11
|
+
configurable: true,
|
12
|
+
writable: true,
|
13
|
+
value: void 0
|
14
|
+
});
|
15
|
+
this.model = model;
|
16
|
+
this.promptFormat = promptFormat;
|
17
|
+
}
|
18
|
+
get modelInformation() {
|
19
|
+
return this.model.modelInformation;
|
20
|
+
}
|
21
|
+
get settings() {
|
22
|
+
return this.model.settings;
|
23
|
+
}
|
24
|
+
doGenerateImage(prompt, options) {
|
25
|
+
const mappedPrompt = this.promptFormat.format(prompt);
|
26
|
+
return this.model.doGenerateImage(mappedPrompt, options);
|
27
|
+
}
|
28
|
+
get settingsForEvent() {
|
29
|
+
return this.model.settingsForEvent;
|
30
|
+
}
|
31
|
+
withPromptFormat(promptFormat) {
|
32
|
+
return new PromptFormatImageGenerationModel({ model: this, promptFormat });
|
33
|
+
}
|
34
|
+
withSettings(additionalSettings) {
|
35
|
+
return new PromptFormatImageGenerationModel({
|
36
|
+
model: this.model.withSettings(additionalSettings),
|
37
|
+
promptFormat: this.promptFormat,
|
38
|
+
});
|
39
|
+
}
|
40
|
+
}
|
@@ -2,6 +2,7 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.generateImage = void 0;
|
4
4
|
const executeCall_js_1 = require("../executeCall.cjs");
|
5
|
+
const ImageGenerationPromise_js_1 = require("./ImageGenerationPromise.cjs");
|
5
6
|
/**
|
6
7
|
* Generates a base64-encoded image using a prompt.
|
7
8
|
* The prompt format depends on the model.
|
@@ -18,7 +19,7 @@ const executeCall_js_1 = require("../executeCall.cjs");
|
|
18
19
|
* );
|
19
20
|
*/
|
20
21
|
function generateImage(model, prompt, options) {
|
21
|
-
return (0, executeCall_js_1.executeCall)({
|
22
|
+
return new ImageGenerationPromise_js_1.ImageGenerationPromise((0, executeCall_js_1.executeCall)({
|
22
23
|
functionType: "image-generation",
|
23
24
|
input: prompt,
|
24
25
|
model,
|
@@ -30,6 +31,6 @@ function generateImage(model, prompt, options) {
|
|
30
31
|
extractedValue: result.base64Image,
|
31
32
|
};
|
32
33
|
},
|
33
|
-
});
|
34
|
+
}));
|
34
35
|
}
|
35
36
|
exports.generateImage = generateImage;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
2
|
-
import { ModelFunctionPromise } from "../executeCall.js";
|
3
2
|
import { ImageGenerationModel, ImageGenerationModelSettings } from "./ImageGenerationModel.js";
|
3
|
+
import { ImageGenerationPromise } from "./ImageGenerationPromise.js";
|
4
4
|
/**
|
5
5
|
* Generates a base64-encoded image using a prompt.
|
6
6
|
* The prompt format depends on the model.
|
@@ -16,4 +16,4 @@ import { ImageGenerationModel, ImageGenerationModelSettings } from "./ImageGener
|
|
16
16
|
* ]
|
17
17
|
* );
|
18
18
|
*/
|
19
|
-
export declare function generateImage<PROMPT>(model: ImageGenerationModel<PROMPT, ImageGenerationModelSettings>, prompt: PROMPT, options?: FunctionOptions):
|
19
|
+
export declare function generateImage<PROMPT>(model: ImageGenerationModel<PROMPT, ImageGenerationModelSettings>, prompt: PROMPT, options?: FunctionOptions): ImageGenerationPromise;
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { executeCall } from "../executeCall.js";
|
2
|
+
import { ImageGenerationPromise } from "./ImageGenerationPromise.js";
|
2
3
|
/**
|
3
4
|
* Generates a base64-encoded image using a prompt.
|
4
5
|
* The prompt format depends on the model.
|
@@ -15,7 +16,7 @@ import { executeCall } from "../executeCall.js";
|
|
15
16
|
* );
|
16
17
|
*/
|
17
18
|
export function generateImage(model, prompt, options) {
|
18
|
-
return executeCall({
|
19
|
+
return new ImageGenerationPromise(executeCall({
|
19
20
|
functionType: "image-generation",
|
20
21
|
input: prompt,
|
21
22
|
model,
|
@@ -27,5 +28,5 @@ export function generateImage(model, prompt, options) {
|
|
27
28
|
extractedValue: result.base64Image,
|
28
29
|
};
|
29
30
|
},
|
30
|
-
});
|
31
|
+
}));
|
31
32
|
}
|
@@ -2,13 +2,14 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.generateStructure = void 0;
|
4
4
|
const executeCall_js_1 = require("../executeCall.cjs");
|
5
|
+
const ModelFunctionPromise_js_1 = require("../ModelFunctionPromise.cjs");
|
5
6
|
const StructureValidationError_js_1 = require("./StructureValidationError.cjs");
|
6
7
|
function generateStructure(model, structureDefinition, prompt, options) {
|
7
8
|
// Note: PROMPT must not be a function.
|
8
9
|
const expandedPrompt = typeof prompt === "function"
|
9
10
|
? prompt(structureDefinition)
|
10
11
|
: prompt;
|
11
|
-
return (0, executeCall_js_1.executeCall)({
|
12
|
+
return new ModelFunctionPromise_js_1.ModelFunctionPromise((0, executeCall_js_1.executeCall)({
|
12
13
|
functionType: "structure-generation",
|
13
14
|
input: expandedPrompt,
|
14
15
|
model,
|
@@ -32,6 +33,6 @@ function generateStructure(model, structureDefinition, prompt, options) {
|
|
32
33
|
usage: result.usage,
|
33
34
|
};
|
34
35
|
},
|
35
|
-
});
|
36
|
+
}));
|
36
37
|
}
|
37
38
|
exports.generateStructure = generateStructure;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
2
2
|
import { StructureDefinition } from "../../core/structure/StructureDefinition.js";
|
3
|
-
import { ModelFunctionPromise } from "../
|
3
|
+
import { ModelFunctionPromise } from "../ModelFunctionPromise.js";
|
4
4
|
import { StructureGenerationModel, StructureGenerationModelSettings } from "./StructureGenerationModel.js";
|
5
5
|
export declare function generateStructure<STRUCTURE, PROMPT, NAME extends string, SETTINGS extends StructureGenerationModelSettings>(model: StructureGenerationModel<PROMPT, SETTINGS>, structureDefinition: StructureDefinition<NAME, STRUCTURE>, prompt: PROMPT | ((structureDefinition: StructureDefinition<NAME, STRUCTURE>) => PROMPT), options?: FunctionOptions): ModelFunctionPromise<STRUCTURE>;
|
@@ -1,11 +1,12 @@
|
|
1
1
|
import { executeCall } from "../executeCall.js";
|
2
|
+
import { ModelFunctionPromise } from "../ModelFunctionPromise.js";
|
2
3
|
import { StructureValidationError } from "./StructureValidationError.js";
|
3
4
|
export function generateStructure(model, structureDefinition, prompt, options) {
|
4
5
|
// Note: PROMPT must not be a function.
|
5
6
|
const expandedPrompt = typeof prompt === "function"
|
6
7
|
? prompt(structureDefinition)
|
7
8
|
: prompt;
|
8
|
-
return executeCall({
|
9
|
+
return new ModelFunctionPromise(executeCall({
|
9
10
|
functionType: "structure-generation",
|
10
11
|
input: expandedPrompt,
|
11
12
|
model,
|
@@ -29,5 +30,5 @@ export function generateStructure(model, structureDefinition, prompt, options) {
|
|
29
30
|
usage: result.usage,
|
30
31
|
};
|
31
32
|
},
|
32
|
-
});
|
33
|
+
}));
|
33
34
|
}
|
@@ -2,6 +2,7 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.generateStructureOrText = void 0;
|
4
4
|
const executeCall_js_1 = require("../executeCall.cjs");
|
5
|
+
const ModelFunctionPromise_js_1 = require("../ModelFunctionPromise.cjs");
|
5
6
|
const NoSuchStructureError_js_1 = require("./NoSuchStructureError.cjs");
|
6
7
|
const StructureValidationError_js_1 = require("./StructureValidationError.cjs");
|
7
8
|
function generateStructureOrText(model, structureDefinitions, prompt, options) {
|
@@ -9,7 +10,7 @@ function generateStructureOrText(model, structureDefinitions, prompt, options) {
|
|
9
10
|
const expandedPrompt = typeof prompt === "function"
|
10
11
|
? prompt(structureDefinitions)
|
11
12
|
: prompt;
|
12
|
-
return (0, executeCall_js_1.executeCall)({
|
13
|
+
return new ModelFunctionPromise_js_1.ModelFunctionPromise((0, executeCall_js_1.executeCall)({
|
13
14
|
functionType: "structure-or-text-generation",
|
14
15
|
input: expandedPrompt,
|
15
16
|
model,
|
@@ -48,6 +49,6 @@ function generateStructureOrText(model, structureDefinitions, prompt, options) {
|
|
48
49
|
usage: result.usage,
|
49
50
|
};
|
50
51
|
},
|
51
|
-
});
|
52
|
+
}));
|
52
53
|
}
|
53
54
|
exports.generateStructureOrText = generateStructureOrText;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
2
2
|
import { StructureDefinition } from "../../core/structure/StructureDefinition.js";
|
3
|
-
import { ModelFunctionPromise } from "../
|
3
|
+
import { ModelFunctionPromise } from "../ModelFunctionPromise.js";
|
4
4
|
import { StructureOrTextGenerationModel, StructureOrTextGenerationModelSettings } from "./StructureOrTextGenerationModel.js";
|
5
5
|
type StructureDefinitionArray<T extends StructureDefinition<any, any>[]> = T;
|
6
6
|
type ToStructureDefinitionMap<T extends StructureDefinitionArray<StructureDefinition<any, any>[]>> = {
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { executeCall } from "../executeCall.js";
|
2
|
+
import { ModelFunctionPromise } from "../ModelFunctionPromise.js";
|
2
3
|
import { NoSuchStructureError } from "./NoSuchStructureError.js";
|
3
4
|
import { StructureValidationError } from "./StructureValidationError.js";
|
4
5
|
export function generateStructureOrText(model, structureDefinitions, prompt, options) {
|
@@ -6,7 +7,7 @@ export function generateStructureOrText(model, structureDefinitions, prompt, opt
|
|
6
7
|
const expandedPrompt = typeof prompt === "function"
|
7
8
|
? prompt(structureDefinitions)
|
8
9
|
: prompt;
|
9
|
-
return executeCall({
|
10
|
+
return new ModelFunctionPromise(executeCall({
|
10
11
|
functionType: "structure-or-text-generation",
|
11
12
|
input: expandedPrompt,
|
12
13
|
model,
|
@@ -45,5 +46,5 @@ export function generateStructureOrText(model, structureDefinitions, prompt, opt
|
|
45
46
|
usage: result.usage,
|
46
47
|
};
|
47
48
|
},
|
48
|
-
});
|
49
|
+
}));
|
49
50
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { InstructionPrompt } from "./InstructionPrompt.js";
|
2
|
-
import {
|
2
|
+
import { TextGenerationPromptFormat } from "./TextGenerationPromptFormat.js";
|
3
3
|
/**
|
4
4
|
* Formats an instruction prompt as an Alpaca prompt.
|
5
5
|
*
|
@@ -8,4 +8,4 @@ import { PromptFormat } from "./PromptFormat.js";
|
|
8
8
|
*
|
9
9
|
* @see https://github.com/tatsu-lab/stanford_alpaca#data-release
|
10
10
|
*/
|
11
|
-
export declare function mapInstructionPromptToAlpacaFormat():
|
11
|
+
export declare function mapInstructionPromptToAlpacaFormat(): TextGenerationPromptFormat<InstructionPrompt, string>;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.mapChatPromptToLlama2Format = exports.mapInstructionPromptToLlama2Format = void 0;
|
4
|
-
const validateChatPrompt_js_1 = require("./
|
4
|
+
const validateChatPrompt_js_1 = require("./validateChatPrompt.cjs");
|
5
5
|
// see https://github.com/facebookresearch/llama/blob/6c7fe276574e78057f917549435a2554000a876d/llama/generation.py#L44
|
6
6
|
const BEGIN_SEGMENT = "<s>";
|
7
7
|
const END_SEGMENT = "</s>\n";
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { ChatPrompt } from "./ChatPrompt.js";
|
2
|
+
import { InstructionPrompt } from "./InstructionPrompt.js";
|
3
|
+
import { TextGenerationPromptFormat } from "./TextGenerationPromptFormat.js";
|
4
|
+
/**
|
5
|
+
* Formats an instruction prompt as a Llama 2 prompt.
|
6
|
+
*
|
7
|
+
* @see https://www.philschmid.de/llama-2#how-to-prompt-llama-2-chat
|
8
|
+
*/
|
9
|
+
export declare function mapInstructionPromptToLlama2Format(): TextGenerationPromptFormat<InstructionPrompt, string>;
|
10
|
+
/**
|
11
|
+
* Formats a chat prompt as a Llama 2 prompt.
|
12
|
+
*/
|
13
|
+
export declare function mapChatPromptToLlama2Format(): TextGenerationPromptFormat<ChatPrompt, string>;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { validateChatPrompt } from "./
|
1
|
+
import { validateChatPrompt } from "./validateChatPrompt.js";
|
2
2
|
// see https://github.com/facebookresearch/llama/blob/6c7fe276574e78057f917549435a2554000a876d/llama/generation.py#L44
|
3
3
|
const BEGIN_SEGMENT = "<s>";
|
4
4
|
const END_SEGMENT = "</s>\n";
|
@@ -1,14 +1,14 @@
|
|
1
|
-
import { FunctionOptions } from "
|
2
|
-
import { TextGenerationModel, TextGenerationModelSettings } from "
|
3
|
-
import {
|
1
|
+
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
2
|
+
import { TextGenerationModel, TextGenerationModelSettings } from "./TextGenerationModel.js";
|
3
|
+
import { TextGenerationPromptFormat } from "./TextGenerationPromptFormat.js";
|
4
4
|
export declare class PromptFormatTextGenerationModel<PROMPT, MODEL_PROMPT, SETTINGS extends TextGenerationModelSettings, MODEL extends TextGenerationModel<MODEL_PROMPT, SETTINGS>> implements TextGenerationModel<PROMPT, SETTINGS> {
|
5
5
|
readonly model: MODEL;
|
6
|
-
readonly promptFormat:
|
6
|
+
readonly promptFormat: TextGenerationPromptFormat<PROMPT, MODEL_PROMPT>;
|
7
7
|
constructor({ model, promptFormat, }: {
|
8
8
|
model: MODEL;
|
9
|
-
promptFormat:
|
9
|
+
promptFormat: TextGenerationPromptFormat<PROMPT, MODEL_PROMPT>;
|
10
10
|
});
|
11
|
-
get modelInformation(): import("../
|
11
|
+
get modelInformation(): import("../ModelInformation.js").ModelInformation;
|
12
12
|
get settings(): SETTINGS;
|
13
13
|
get tokenizer(): MODEL["tokenizer"];
|
14
14
|
get contextWindowSize(): MODEL["contextWindowSize"];
|
@@ -23,6 +23,6 @@ export declare class PromptFormatTextGenerationModel<PROMPT, MODEL_PROMPT, SETTI
|
|
23
23
|
} | undefined;
|
24
24
|
}>;
|
25
25
|
get settingsForEvent(): Partial<SETTINGS>;
|
26
|
-
withPromptFormat<INPUT_PROMPT>(promptFormat:
|
26
|
+
withPromptFormat<INPUT_PROMPT>(promptFormat: TextGenerationPromptFormat<INPUT_PROMPT, PROMPT>): PromptFormatTextGenerationModel<INPUT_PROMPT, PROMPT, SETTINGS, this>;
|
27
27
|
withSettings(additionalSettings: Partial<SETTINGS>): this;
|
28
28
|
}
|
@@ -1,13 +1,13 @@
|
|
1
|
-
import { FunctionOptions } from "
|
2
|
-
import { TextGenerationModelSettings, TextStreamingModel } from "../model-function/generate-text/TextGenerationModel.js";
|
3
|
-
import { PromptFormat } from "./PromptFormat.js";
|
1
|
+
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
4
2
|
import { PromptFormatTextGenerationModel } from "./PromptFormatTextGenerationModel.js";
|
3
|
+
import { TextGenerationModelSettings, TextStreamingModel } from "./TextGenerationModel.js";
|
4
|
+
import { TextGenerationPromptFormat } from "./TextGenerationPromptFormat.js";
|
5
5
|
export declare class PromptFormatTextStreamingModel<PROMPT, MODEL_PROMPT, SETTINGS extends TextGenerationModelSettings, MODEL extends TextStreamingModel<MODEL_PROMPT, SETTINGS>> extends PromptFormatTextGenerationModel<PROMPT, MODEL_PROMPT, SETTINGS, MODEL> implements TextStreamingModel<PROMPT, SETTINGS> {
|
6
6
|
constructor(options: {
|
7
7
|
model: MODEL;
|
8
|
-
promptFormat:
|
8
|
+
promptFormat: TextGenerationPromptFormat<PROMPT, MODEL_PROMPT>;
|
9
9
|
});
|
10
|
-
doStreamText(prompt: PROMPT, options?: FunctionOptions): PromiseLike<AsyncIterable<import("../
|
11
|
-
withPromptFormat<INPUT_PROMPT>(promptFormat:
|
10
|
+
doStreamText(prompt: PROMPT, options?: FunctionOptions): PromiseLike<AsyncIterable<import("../Delta.js").Delta<string>>>;
|
11
|
+
withPromptFormat<INPUT_PROMPT>(promptFormat: TextGenerationPromptFormat<INPUT_PROMPT, PROMPT>): PromptFormatTextStreamingModel<INPUT_PROMPT, PROMPT, SETTINGS, this>;
|
12
12
|
withSettings(additionalSettings: Partial<SETTINGS>): this;
|
13
13
|
}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
2
|
-
import { PromptFormat } from "../../prompt/PromptFormat.js";
|
3
2
|
import { Delta } from "../Delta.js";
|
4
3
|
import { Model, ModelSettings } from "../Model.js";
|
5
4
|
import { BasicTokenizer, FullTokenizer } from "../tokenize-text/Tokenizer.js";
|
5
|
+
import { TextGenerationPromptFormat } from "./TextGenerationPromptFormat.js";
|
6
6
|
export interface TextGenerationModelSettings extends ModelSettings {
|
7
7
|
/**
|
8
8
|
* Maximum number of tokens to generate.
|
@@ -20,6 +20,13 @@ export interface TextGenerationModelSettings extends ModelSettings {
|
|
20
20
|
*/
|
21
21
|
trimWhitespace?: boolean;
|
22
22
|
}
|
23
|
+
export interface HasContextWindowSize {
|
24
|
+
contextWindowSize: number;
|
25
|
+
}
|
26
|
+
export interface HasTokenizer<PROMPT> {
|
27
|
+
tokenizer: BasicTokenizer | FullTokenizer;
|
28
|
+
countPromptTokens(prompt: PROMPT): PromiseLike<number>;
|
29
|
+
}
|
23
30
|
export interface TextGenerationModel<PROMPT, SETTINGS extends TextGenerationModelSettings = TextGenerationModelSettings> extends Model<SETTINGS> {
|
24
31
|
readonly contextWindowSize: number | undefined;
|
25
32
|
readonly tokenizer: BasicTokenizer | FullTokenizer | undefined;
|
@@ -36,9 +43,9 @@ export interface TextGenerationModel<PROMPT, SETTINGS extends TextGenerationMode
|
|
36
43
|
totalTokens: number;
|
37
44
|
};
|
38
45
|
}>;
|
39
|
-
withPromptFormat<INPUT_PROMPT>(promptFormat:
|
46
|
+
withPromptFormat<INPUT_PROMPT>(promptFormat: TextGenerationPromptFormat<INPUT_PROMPT, PROMPT>): TextGenerationModel<INPUT_PROMPT, SETTINGS>;
|
40
47
|
}
|
41
48
|
export interface TextStreamingModel<PROMPT, SETTINGS extends TextGenerationModelSettings = TextGenerationModelSettings> extends TextGenerationModel<PROMPT, SETTINGS> {
|
42
49
|
doStreamText(prompt: PROMPT, options?: FunctionOptions): PromiseLike<AsyncIterable<Delta<string>>>;
|
43
|
-
withPromptFormat<INPUT_PROMPT>(promptFormat:
|
50
|
+
withPromptFormat<INPUT_PROMPT>(promptFormat: TextGenerationPromptFormat<INPUT_PROMPT, PROMPT>): TextStreamingModel<INPUT_PROMPT, SETTINGS>;
|
44
51
|
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { PromptFormat } from "../PromptFormat.js";
|
2
|
+
/**
|
3
|
+
* Prompt formats format a source prompt into the structure of a target prompt.
|
4
|
+
*/
|
5
|
+
export interface TextGenerationPromptFormat<SOURCE_PROMPT, TARGET_PROMPT> extends PromptFormat<SOURCE_PROMPT, TARGET_PROMPT> {
|
6
|
+
/**
|
7
|
+
* The texts that should be used as default stop sequences.
|
8
|
+
* This is e.g. important for chat formats.
|
9
|
+
*/
|
10
|
+
stopSequences: string[];
|
11
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.mapChatPromptToTextFormat = exports.mapInstructionPromptToTextFormat = void 0;
|
4
|
-
const validateChatPrompt_js_1 = require("./
|
4
|
+
const validateChatPrompt_js_1 = require("./validateChatPrompt.cjs");
|
5
5
|
/**
|
6
6
|
* Formats an instruction prompt as a basic text prompt.
|
7
7
|
*/
|
@@ -26,7 +26,7 @@ exports.mapInstructionPromptToTextFormat = mapInstructionPromptToTextFormat;
|
|
26
26
|
* @param user The label of the user in the chat.
|
27
27
|
* @param ai The name of the AI in the chat.
|
28
28
|
*/
|
29
|
-
const mapChatPromptToTextFormat = ({ user, ai }) => ({
|
29
|
+
const mapChatPromptToTextFormat = ({ user = "user", ai = "ai", } = {}) => ({
|
30
30
|
format: (chatPrompt) => {
|
31
31
|
(0, validateChatPrompt_js_1.validateChatPrompt)(chatPrompt);
|
32
32
|
let text = "";
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { ChatPrompt } from "./ChatPrompt.js";
|
2
|
+
import { InstructionPrompt } from "./InstructionPrompt.js";
|
3
|
+
import { TextGenerationPromptFormat } from "./TextGenerationPromptFormat.js";
|
4
|
+
/**
|
5
|
+
* Formats an instruction prompt as a basic text prompt.
|
6
|
+
*/
|
7
|
+
export declare const mapInstructionPromptToTextFormat: () => TextGenerationPromptFormat<InstructionPrompt, string>;
|
8
|
+
/**
|
9
|
+
* Formats a chat prompt as a basic text prompt.
|
10
|
+
*
|
11
|
+
* @param user The label of the user in the chat.
|
12
|
+
* @param ai The name of the AI in the chat.
|
13
|
+
*/
|
14
|
+
export declare const mapChatPromptToTextFormat: (options?: {
|
15
|
+
user?: string;
|
16
|
+
ai?: string;
|
17
|
+
}) => TextGenerationPromptFormat<ChatPrompt, string>;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { validateChatPrompt } from "./
|
1
|
+
import { validateChatPrompt } from "./validateChatPrompt.js";
|
2
2
|
/**
|
3
3
|
* Formats an instruction prompt as a basic text prompt.
|
4
4
|
*/
|
@@ -22,7 +22,7 @@ export const mapInstructionPromptToTextFormat = () => ({
|
|
22
22
|
* @param user The label of the user in the chat.
|
23
23
|
* @param ai The name of the AI in the chat.
|
24
24
|
*/
|
25
|
-
export const mapChatPromptToTextFormat = ({ user, ai }) => ({
|
25
|
+
export const mapChatPromptToTextFormat = ({ user = "user", ai = "ai", } = {}) => ({
|
26
26
|
format: (chatPrompt) => {
|
27
27
|
validateChatPrompt(chatPrompt);
|
28
28
|
let text = "";
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.mapChatPromptToVicunaFormat = void 0;
|
4
|
-
const validateChatPrompt_js_1 = require("./
|
4
|
+
const validateChatPrompt_js_1 = require("./validateChatPrompt.cjs");
|
5
5
|
const DEFAULT_SYSTEM_PROMPT = "A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions.";
|
6
6
|
/**
|
7
7
|
* Formats a chat prompt as a Vicuna prompt.
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
1
|
+
import { ChatPrompt } from "./ChatPrompt.js";
|
2
|
+
import { TextGenerationPromptFormat } from "./TextGenerationPromptFormat.js";
|
3
3
|
/**
|
4
4
|
* Formats a chat prompt as a Vicuna prompt.
|
5
5
|
*
|
@@ -13,4 +13,4 @@ import { ChatPrompt } from "./chat/ChatPrompt.js";
|
|
13
13
|
* ASSISTANT:
|
14
14
|
* ```
|
15
15
|
*/
|
16
|
-
export declare function mapChatPromptToVicunaFormat():
|
16
|
+
export declare function mapChatPromptToVicunaFormat(): TextGenerationPromptFormat<ChatPrompt, string>;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { validateChatPrompt } from "./
|
1
|
+
import { validateChatPrompt } from "./validateChatPrompt.js";
|
2
2
|
const DEFAULT_SYSTEM_PROMPT = "A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions.";
|
3
3
|
/**
|
4
4
|
* Formats a chat prompt as a Vicuna prompt.
|