modelfusion 0.40.1 → 0.41.1
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 +14 -7
- package/composed-function/summarize/summarizeRecursivelyWithTextGenerationAndTokenSplitting.d.ts +3 -3
- package/core/FunctionEvent.d.ts +1 -1
- package/model-function/AsyncIterableResultPromise.d.ts +1 -1
- package/model-function/Delta.d.ts +8 -0
- package/model-function/ModelCallEvent.d.ts +1 -1
- package/model-function/ModelCallMetadata.d.ts +13 -0
- package/model-function/describe-image/ImageDescriptionEvent.d.ts +1 -1
- package/model-function/describe-image/ImageDescriptionModel.d.ts +6 -4
- package/model-function/describe-image/describeImage.cjs +7 -2
- package/model-function/describe-image/describeImage.d.ts +2 -2
- package/model-function/describe-image/describeImage.js +7 -2
- package/model-function/embed/EmbeddingEvent.d.ts +1 -1
- package/model-function/embed/EmbeddingModel.d.ts +6 -4
- package/model-function/embed/embed.cjs +16 -11
- package/model-function/embed/embed.d.ts +3 -3
- package/model-function/embed/embed.js +16 -11
- package/model-function/executeCall.cjs +26 -30
- package/model-function/executeCall.d.ts +19 -28
- package/model-function/executeCall.js +26 -30
- package/model-function/generate-image/ImageGenerationEvent.d.ts +1 -1
- package/model-function/generate-image/ImageGenerationModel.d.ts +6 -4
- package/model-function/generate-image/generateImage.cjs +7 -2
- package/model-function/generate-image/generateImage.d.ts +2 -2
- package/model-function/generate-image/generateImage.js +7 -2
- package/model-function/generate-structure/StructureFromTextGenerationModel.cjs +6 -5
- package/model-function/generate-structure/StructureFromTextGenerationModel.d.ts +7 -5
- package/model-function/generate-structure/StructureFromTextGenerationModel.js +6 -5
- package/model-function/generate-structure/StructureGenerationEvent.d.ts +1 -1
- package/model-function/generate-structure/StructureGenerationModel.d.ts +15 -18
- package/model-function/generate-structure/StructureOrTextGenerationModel.d.ts +19 -17
- package/model-function/generate-structure/generateStructure.cjs +10 -8
- package/model-function/generate-structure/generateStructure.d.ts +2 -2
- package/model-function/generate-structure/generateStructure.js +10 -8
- package/model-function/generate-structure/generateStructureOrText.cjs +15 -8
- package/model-function/generate-structure/generateStructureOrText.d.ts +4 -4
- package/model-function/generate-structure/generateStructureOrText.js +15 -8
- package/model-function/generate-structure/streamStructure.cjs +4 -16
- package/model-function/generate-structure/streamStructure.d.ts +3 -7
- package/model-function/generate-structure/streamStructure.js +4 -16
- package/model-function/generate-text/TextGenerationEvent.d.ts +1 -1
- package/model-function/generate-text/TextGenerationModel.d.ts +18 -19
- package/model-function/generate-text/generateText.cjs +8 -9
- package/model-function/generate-text/generateText.d.ts +2 -2
- package/model-function/generate-text/generateText.js +8 -9
- package/model-function/generate-text/streamText.cjs +8 -21
- package/model-function/generate-text/streamText.d.ts +3 -7
- package/model-function/generate-text/streamText.js +8 -21
- package/model-function/index.cjs +2 -2
- package/model-function/index.d.ts +2 -2
- package/model-function/index.js +2 -2
- package/model-function/synthesize-speech/SpeechSynthesisEvent.d.ts +1 -1
- package/model-function/synthesize-speech/SpeechSynthesisModel.d.ts +3 -3
- package/model-function/synthesize-speech/synthesizeSpeech.cjs +7 -2
- package/model-function/synthesize-speech/synthesizeSpeech.d.ts +2 -2
- package/model-function/synthesize-speech/synthesizeSpeech.js +7 -2
- package/model-function/transcribe-speech/TranscriptionEvent.d.ts +1 -1
- package/model-function/transcribe-speech/TranscriptionModel.d.ts +6 -4
- package/model-function/transcribe-speech/transcribe.cjs +7 -2
- package/model-function/transcribe-speech/transcribe.d.ts +2 -2
- package/model-function/transcribe-speech/transcribe.js +7 -2
- package/model-provider/automatic1111/Automatic1111ImageGenerationModel.cjs +14 -18
- package/model-provider/automatic1111/Automatic1111ImageGenerationModel.d.ts +11 -9
- package/model-provider/automatic1111/Automatic1111ImageGenerationModel.js +14 -18
- package/model-provider/cohere/CohereTextEmbeddingModel.cjs +13 -16
- package/model-provider/cohere/CohereTextEmbeddingModel.d.ts +12 -10
- package/model-provider/cohere/CohereTextEmbeddingModel.js +13 -16
- package/model-provider/cohere/CohereTextGenerationModel.cjs +25 -28
- package/model-provider/cohere/CohereTextGenerationModel.d.ts +24 -22
- package/model-provider/cohere/CohereTextGenerationModel.js +25 -28
- package/model-provider/elevenlabs/ElevenLabsSpeechSynthesisModel.cjs +10 -17
- package/model-provider/elevenlabs/ElevenLabsSpeechSynthesisModel.d.ts +2 -2
- package/model-provider/elevenlabs/ElevenLabsSpeechSynthesisModel.js +10 -17
- package/model-provider/huggingface/HuggingFaceImageDescriptionModel.cjs +13 -16
- package/model-provider/huggingface/HuggingFaceImageDescriptionModel.d.ts +9 -7
- package/model-provider/huggingface/HuggingFaceImageDescriptionModel.js +13 -16
- package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.cjs +19 -25
- package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.d.ts +8 -6
- package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.js +19 -25
- package/model-provider/huggingface/HuggingFaceTextGenerationModel.cjs +18 -24
- package/model-provider/huggingface/HuggingFaceTextGenerationModel.d.ts +10 -8
- package/model-provider/huggingface/HuggingFaceTextGenerationModel.js +18 -24
- package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.cjs +13 -16
- package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.d.ts +8 -6
- package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.js +13 -16
- package/model-provider/llamacpp/LlamaCppTextGenerationModel.cjs +27 -33
- package/model-provider/llamacpp/LlamaCppTextGenerationModel.d.ts +62 -60
- package/model-provider/llamacpp/LlamaCppTextGenerationModel.js +27 -33
- package/model-provider/lmnt/LmntSpeechSynthesisModel.cjs +7 -12
- package/model-provider/lmnt/LmntSpeechSynthesisModel.d.ts +2 -2
- package/model-provider/lmnt/LmntSpeechSynthesisModel.js +7 -12
- package/model-provider/openai/OpenAIImageGenerationModel.cjs +8 -16
- package/model-provider/openai/OpenAIImageGenerationModel.d.ts +11 -11
- package/model-provider/openai/OpenAIImageGenerationModel.js +8 -16
- package/model-provider/openai/OpenAITextEmbeddingModel.cjs +18 -24
- package/model-provider/openai/OpenAITextEmbeddingModel.d.ts +18 -16
- package/model-provider/openai/OpenAITextEmbeddingModel.js +18 -24
- package/model-provider/openai/OpenAITextGenerationModel.cjs +19 -26
- package/model-provider/openai/OpenAITextGenerationModel.d.ts +31 -33
- package/model-provider/openai/OpenAITextGenerationModel.js +19 -26
- package/model-provider/openai/OpenAITranscriptionModel.cjs +19 -28
- package/model-provider/openai/OpenAITranscriptionModel.d.ts +27 -7
- package/model-provider/openai/OpenAITranscriptionModel.js +19 -28
- package/model-provider/openai/chat/OpenAIChatModel.cjs +76 -85
- package/model-provider/openai/chat/OpenAIChatModel.d.ts +127 -50
- package/model-provider/openai/chat/OpenAIChatModel.js +77 -86
- package/model-provider/openai/chat/OpenAIChatStreamIterable.cjs +4 -3
- package/model-provider/openai/chat/OpenAIChatStreamIterable.d.ts +2 -2
- package/model-provider/openai/chat/OpenAIChatStreamIterable.js +2 -1
- package/model-provider/stability/StabilityImageGenerationModel.cjs +16 -21
- package/model-provider/stability/StabilityImageGenerationModel.d.ts +13 -11
- package/model-provider/stability/StabilityImageGenerationModel.js +16 -21
- package/package.json +1 -1
- package/prompt/PromptFormatTextGenerationModel.cjs +2 -18
- package/prompt/PromptFormatTextGenerationModel.d.ts +14 -10
- package/prompt/PromptFormatTextGenerationModel.js +2 -18
- package/prompt/PromptFormatTextStreamingModel.cjs +31 -0
- package/prompt/PromptFormatTextStreamingModel.d.ts +13 -0
- package/prompt/PromptFormatTextStreamingModel.js +27 -0
- package/prompt/chat/trimChatPrompt.d.ts +2 -2
- package/prompt/index.cjs +1 -0
- package/prompt/index.d.ts +1 -0
- package/prompt/index.js +1 -0
- package/retriever/Retriever.d.ts +3 -6
- package/retriever/retrieve.cjs +2 -2
- package/retriever/retrieve.d.ts +3 -3
- package/retriever/retrieve.js +2 -2
- package/tool/executeTool.cjs +2 -2
- package/tool/executeTool.js +2 -2
- package/tool/useTool.cjs +2 -4
- package/tool/useTool.d.ts +2 -2
- package/tool/useTool.js +2 -4
- package/tool/useToolOrGenerateText.d.ts +2 -2
- package/util/SafeResult.d.ts +1 -1
- package/util/runSafe.cjs +1 -1
- package/util/runSafe.js +1 -1
- package/vector-index/VectorIndexRetriever.cjs +0 -7
- package/vector-index/VectorIndexRetriever.d.ts +5 -5
- package/vector-index/VectorIndexRetriever.js +0 -7
- package/vector-index/upsertIntoVectorIndex.d.ts +4 -4
- package/model-function/DeltaEvent.d.ts +0 -7
- package/model-function/ModelFunctionOptions.d.ts +0 -4
- /package/model-function/{DeltaEvent.cjs → Delta.cjs} +0 -0
- /package/model-function/{DeltaEvent.js → Delta.js} +0 -0
- /package/model-function/{ModelFunctionOptions.cjs → ModelCallMetadata.cjs} +0 -0
- /package/model-function/{ModelFunctionOptions.js → ModelCallMetadata.js} +0 -0
@@ -1,7 +1,7 @@
|
|
1
1
|
import z from "zod";
|
2
|
-
import {
|
2
|
+
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
3
3
|
import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
|
4
|
-
import {
|
4
|
+
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
5
5
|
import { EmbeddingModel, EmbeddingModelSettings } from "../../model-function/embed/EmbeddingModel.js";
|
6
6
|
export interface HuggingFaceTextEmbeddingModelSettings extends EmbeddingModelSettings {
|
7
7
|
api?: ApiConfiguration;
|
@@ -33,7 +33,7 @@ export interface HuggingFaceTextEmbeddingModelSettings extends EmbeddingModelSet
|
|
33
33
|
* ]
|
34
34
|
* );
|
35
35
|
*/
|
36
|
-
export declare class HuggingFaceTextEmbeddingModel extends AbstractModel<HuggingFaceTextEmbeddingModelSettings> implements EmbeddingModel<string,
|
36
|
+
export declare class HuggingFaceTextEmbeddingModel extends AbstractModel<HuggingFaceTextEmbeddingModelSettings> implements EmbeddingModel<string, HuggingFaceTextEmbeddingModelSettings> {
|
37
37
|
constructor(settings: HuggingFaceTextEmbeddingModelSettings);
|
38
38
|
readonly provider = "huggingface";
|
39
39
|
get modelName(): string;
|
@@ -41,11 +41,13 @@ export declare class HuggingFaceTextEmbeddingModel extends AbstractModel<Hugging
|
|
41
41
|
readonly contextWindowSize: undefined;
|
42
42
|
readonly embeddingDimensions: number | undefined;
|
43
43
|
readonly tokenizer: undefined;
|
44
|
-
callAPI(texts: Array<string>, options?:
|
44
|
+
callAPI(texts: Array<string>, options?: FunctionOptions): Promise<HuggingFaceTextEmbeddingResponse>;
|
45
45
|
get settingsForEvent(): Partial<HuggingFaceTextEmbeddingModelSettings>;
|
46
46
|
readonly countPromptTokens: undefined;
|
47
|
-
|
48
|
-
|
47
|
+
doEmbedValues(texts: string[], options?: FunctionOptions): Promise<{
|
48
|
+
response: number[][];
|
49
|
+
embeddings: number[][];
|
50
|
+
}>;
|
49
51
|
withSettings(additionalSettings: Partial<HuggingFaceTextEmbeddingModelSettings>): this;
|
50
52
|
}
|
51
53
|
declare const huggingFaceTextEmbeddingResponseSchema: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import z from "zod";
|
2
|
-
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
3
2
|
import { callWithRetryAndThrottle } from "../../core/api/callWithRetryAndThrottle.js";
|
4
3
|
import { createJsonResponseHandler, postJsonToApi, } from "../../core/api/postToApi.js";
|
5
|
-
import {
|
4
|
+
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
6
5
|
import { HuggingFaceApiConfiguration } from "./HuggingFaceApiConfiguration.js";
|
6
|
+
import { failedHuggingFaceCallResponseHandler } from "./HuggingFaceError.js";
|
7
7
|
/**
|
8
8
|
* Create a text embedding model that calls a Hugging Face Inference API Feature Extraction Task.
|
9
9
|
*
|
@@ -74,25 +74,18 @@ export class HuggingFaceTextEmbeddingModel extends AbstractModel {
|
|
74
74
|
if (texts.length > this.maxValuesPerCall) {
|
75
75
|
throw new Error(`The HuggingFace feature extraction API is configured to only support ${this.maxValuesPerCall} texts per API call.`);
|
76
76
|
}
|
77
|
-
const run = options?.run;
|
78
|
-
const settings = options?.settings;
|
79
|
-
const combinedSettings = {
|
80
|
-
...this.settings,
|
81
|
-
...settings,
|
82
|
-
};
|
83
|
-
const callSettings = {
|
84
|
-
options: {
|
85
|
-
useCache: true,
|
86
|
-
waitForModel: true,
|
87
|
-
},
|
88
|
-
...combinedSettings,
|
89
|
-
abortSignal: run?.abortSignal,
|
90
|
-
inputs: texts,
|
91
|
-
};
|
92
77
|
return callWithRetryAndThrottle({
|
93
|
-
retry:
|
94
|
-
throttle:
|
95
|
-
call: async () => callHuggingFaceTextGenerationAPI(
|
78
|
+
retry: this.settings.api?.retry,
|
79
|
+
throttle: this.settings.api?.throttle,
|
80
|
+
call: async () => callHuggingFaceTextGenerationAPI({
|
81
|
+
options: {
|
82
|
+
useCache: true,
|
83
|
+
waitForModel: true,
|
84
|
+
},
|
85
|
+
...this.settings,
|
86
|
+
abortSignal: options?.run?.abortSignal,
|
87
|
+
inputs: texts,
|
88
|
+
}),
|
96
89
|
});
|
97
90
|
}
|
98
91
|
get settingsForEvent() {
|
@@ -101,11 +94,12 @@ export class HuggingFaceTextEmbeddingModel extends AbstractModel {
|
|
101
94
|
options: this.settings.options,
|
102
95
|
};
|
103
96
|
}
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
97
|
+
async doEmbedValues(texts, options) {
|
98
|
+
const response = await this.callAPI(texts, options);
|
99
|
+
return {
|
100
|
+
response,
|
101
|
+
embeddings: response,
|
102
|
+
};
|
109
103
|
}
|
110
104
|
withSettings(additionalSettings) {
|
111
105
|
return new HuggingFaceTextEmbeddingModel(Object.assign({}, this.settings, additionalSettings));
|
@@ -61,26 +61,19 @@ class HuggingFaceTextGenerationModel extends AbstractModel_js_1.AbstractModel {
|
|
61
61
|
return this.settings.model;
|
62
62
|
}
|
63
63
|
async callAPI(prompt, options) {
|
64
|
-
const run = options?.run;
|
65
|
-
const settings = options?.settings;
|
66
|
-
const combinedSettings = {
|
67
|
-
...this.settings,
|
68
|
-
...settings,
|
69
|
-
};
|
70
|
-
const callSettings = {
|
71
|
-
options: {
|
72
|
-
useCache: true,
|
73
|
-
waitForModel: true,
|
74
|
-
},
|
75
|
-
...combinedSettings,
|
76
|
-
maxNewTokens: combinedSettings.maxCompletionTokens,
|
77
|
-
abortSignal: run?.abortSignal,
|
78
|
-
inputs: prompt,
|
79
|
-
};
|
80
64
|
return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
|
81
|
-
retry:
|
82
|
-
throttle:
|
83
|
-
call: async () => callHuggingFaceTextGenerationAPI(
|
65
|
+
retry: this.settings.api?.retry,
|
66
|
+
throttle: this.settings.api?.throttle,
|
67
|
+
call: async () => callHuggingFaceTextGenerationAPI({
|
68
|
+
options: {
|
69
|
+
useCache: true,
|
70
|
+
waitForModel: true,
|
71
|
+
},
|
72
|
+
...this.settings,
|
73
|
+
maxNewTokens: this.settings.maxCompletionTokens,
|
74
|
+
abortSignal: options?.run?.abortSignal,
|
75
|
+
inputs: prompt,
|
76
|
+
}),
|
84
77
|
});
|
85
78
|
}
|
86
79
|
get settingsForEvent() {
|
@@ -98,11 +91,12 @@ class HuggingFaceTextGenerationModel extends AbstractModel_js_1.AbstractModel {
|
|
98
91
|
];
|
99
92
|
return Object.fromEntries(Object.entries(this.settings).filter(([key]) => eventSettingProperties.includes(key)));
|
100
93
|
}
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
94
|
+
async doGenerateText(prompt, options) {
|
95
|
+
const response = await this.callAPI(prompt, options);
|
96
|
+
return {
|
97
|
+
response,
|
98
|
+
text: response[0].generated_text,
|
99
|
+
};
|
106
100
|
}
|
107
101
|
withPromptFormat(promptFormat) {
|
108
102
|
return new PromptFormatTextGenerationModel_js_1.PromptFormatTextGenerationModel({
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import z from "zod";
|
2
2
|
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
3
3
|
import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
|
4
|
-
import {
|
4
|
+
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
5
5
|
import { TextGenerationModel, TextGenerationModelSettings } from "../../model-function/generate-text/TextGenerationModel.js";
|
6
6
|
import { PromptFormat } from "../../prompt/PromptFormat.js";
|
7
7
|
import { PromptFormatTextGenerationModel } from "../../prompt/PromptFormatTextGenerationModel.js";
|
@@ -38,20 +38,22 @@ export interface HuggingFaceTextGenerationModelSettings extends TextGenerationMo
|
|
38
38
|
* "Write a short story about a robot learning to love:\n\n"
|
39
39
|
* );
|
40
40
|
*/
|
41
|
-
export declare class HuggingFaceTextGenerationModel extends AbstractModel<HuggingFaceTextGenerationModelSettings> implements TextGenerationModel<string,
|
41
|
+
export declare class HuggingFaceTextGenerationModel extends AbstractModel<HuggingFaceTextGenerationModelSettings> implements TextGenerationModel<string, HuggingFaceTextGenerationModelSettings> {
|
42
42
|
constructor(settings: HuggingFaceTextGenerationModelSettings);
|
43
43
|
readonly provider = "huggingface";
|
44
44
|
get modelName(): string;
|
45
45
|
readonly contextWindowSize: undefined;
|
46
46
|
readonly tokenizer: undefined;
|
47
|
-
callAPI(prompt: string, options?:
|
47
|
+
callAPI(prompt: string, options?: FunctionOptions): Promise<HuggingFaceTextGenerationResponse>;
|
48
48
|
get settingsForEvent(): Partial<HuggingFaceTextGenerationModelSettings>;
|
49
49
|
readonly countPromptTokens: undefined;
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
50
|
+
doGenerateText(prompt: string, options?: FunctionOptions): Promise<{
|
51
|
+
response: {
|
52
|
+
generated_text: string;
|
53
|
+
}[];
|
54
|
+
text: string;
|
55
|
+
}>;
|
56
|
+
withPromptFormat<INPUT_PROMPT>(promptFormat: PromptFormat<INPUT_PROMPT, string>): PromptFormatTextGenerationModel<INPUT_PROMPT, string, HuggingFaceTextGenerationModelSettings, this>;
|
55
57
|
withSettings(additionalSettings: Partial<HuggingFaceTextGenerationModelSettings>): this;
|
56
58
|
}
|
57
59
|
declare const huggingFaceTextGenerationResponseSchema: z.ZodArray<z.ZodObject<{
|
@@ -55,26 +55,19 @@ export class HuggingFaceTextGenerationModel extends AbstractModel {
|
|
55
55
|
return this.settings.model;
|
56
56
|
}
|
57
57
|
async callAPI(prompt, options) {
|
58
|
-
const run = options?.run;
|
59
|
-
const settings = options?.settings;
|
60
|
-
const combinedSettings = {
|
61
|
-
...this.settings,
|
62
|
-
...settings,
|
63
|
-
};
|
64
|
-
const callSettings = {
|
65
|
-
options: {
|
66
|
-
useCache: true,
|
67
|
-
waitForModel: true,
|
68
|
-
},
|
69
|
-
...combinedSettings,
|
70
|
-
maxNewTokens: combinedSettings.maxCompletionTokens,
|
71
|
-
abortSignal: run?.abortSignal,
|
72
|
-
inputs: prompt,
|
73
|
-
};
|
74
58
|
return callWithRetryAndThrottle({
|
75
|
-
retry:
|
76
|
-
throttle:
|
77
|
-
call: async () => callHuggingFaceTextGenerationAPI(
|
59
|
+
retry: this.settings.api?.retry,
|
60
|
+
throttle: this.settings.api?.throttle,
|
61
|
+
call: async () => callHuggingFaceTextGenerationAPI({
|
62
|
+
options: {
|
63
|
+
useCache: true,
|
64
|
+
waitForModel: true,
|
65
|
+
},
|
66
|
+
...this.settings,
|
67
|
+
maxNewTokens: this.settings.maxCompletionTokens,
|
68
|
+
abortSignal: options?.run?.abortSignal,
|
69
|
+
inputs: prompt,
|
70
|
+
}),
|
78
71
|
});
|
79
72
|
}
|
80
73
|
get settingsForEvent() {
|
@@ -92,11 +85,12 @@ export class HuggingFaceTextGenerationModel extends AbstractModel {
|
|
92
85
|
];
|
93
86
|
return Object.fromEntries(Object.entries(this.settings).filter(([key]) => eventSettingProperties.includes(key)));
|
94
87
|
}
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
88
|
+
async doGenerateText(prompt, options) {
|
89
|
+
const response = await this.callAPI(prompt, options);
|
90
|
+
return {
|
91
|
+
response,
|
92
|
+
text: response[0].generated_text,
|
93
|
+
};
|
100
94
|
}
|
101
95
|
withPromptFormat(promptFormat) {
|
102
96
|
return new PromptFormatTextGenerationModel({
|
@@ -57,18 +57,14 @@ class LlamaCppTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
|
|
57
57
|
if (texts.length > this.maxValuesPerCall) {
|
58
58
|
throw new Error(`The Llama.cpp embedding API only supports ${this.maxValuesPerCall} texts per API call.`);
|
59
59
|
}
|
60
|
-
const run = options?.run;
|
61
|
-
const settings = options?.settings;
|
62
|
-
const callSettings = {
|
63
|
-
...this.settings,
|
64
|
-
...settings,
|
65
|
-
abortSignal: run?.abortSignal,
|
66
|
-
content: texts[0],
|
67
|
-
};
|
68
60
|
return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
|
69
|
-
retry:
|
70
|
-
throttle:
|
71
|
-
call: async () => callLlamaCppEmbeddingAPI(
|
61
|
+
retry: this.settings.api?.retry,
|
62
|
+
throttle: this.settings.api?.throttle,
|
63
|
+
call: async () => callLlamaCppEmbeddingAPI({
|
64
|
+
...this.settings,
|
65
|
+
abortSignal: options?.run?.abortSignal,
|
66
|
+
content: texts[0],
|
67
|
+
}),
|
72
68
|
});
|
73
69
|
}
|
74
70
|
get settingsForEvent() {
|
@@ -76,11 +72,12 @@ class LlamaCppTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
|
|
76
72
|
embeddingDimensions: this.settings.embeddingDimensions,
|
77
73
|
};
|
78
74
|
}
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
75
|
+
async doEmbedValues(texts, options) {
|
76
|
+
const response = await this.callAPI(texts, options);
|
77
|
+
return {
|
78
|
+
response,
|
79
|
+
embeddings: [response.embedding],
|
80
|
+
};
|
84
81
|
}
|
85
82
|
withSettings(additionalSettings) {
|
86
83
|
return new LlamaCppTextEmbeddingModel(Object.assign({}, this.settings, additionalSettings));
|
@@ -1,13 +1,13 @@
|
|
1
1
|
import z from "zod";
|
2
|
+
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
2
3
|
import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
|
3
4
|
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
4
|
-
import { ModelFunctionOptions } from "../../model-function/ModelFunctionOptions.js";
|
5
5
|
import { EmbeddingModel, EmbeddingModelSettings } from "../../model-function/embed/EmbeddingModel.js";
|
6
6
|
export interface LlamaCppTextEmbeddingModelSettings extends EmbeddingModelSettings {
|
7
7
|
api?: ApiConfiguration;
|
8
8
|
embeddingDimensions?: number;
|
9
9
|
}
|
10
|
-
export declare class LlamaCppTextEmbeddingModel extends AbstractModel<LlamaCppTextEmbeddingModelSettings> implements EmbeddingModel<string,
|
10
|
+
export declare class LlamaCppTextEmbeddingModel extends AbstractModel<LlamaCppTextEmbeddingModelSettings> implements EmbeddingModel<string, LlamaCppTextEmbeddingModelSettings> {
|
11
11
|
constructor(settings?: LlamaCppTextEmbeddingModelSettings);
|
12
12
|
readonly provider: "llamacpp";
|
13
13
|
get modelName(): null;
|
@@ -16,12 +16,14 @@ export declare class LlamaCppTextEmbeddingModel extends AbstractModel<LlamaCppTe
|
|
16
16
|
readonly embeddingDimensions: number | undefined;
|
17
17
|
private readonly tokenizer;
|
18
18
|
tokenize(text: string): Promise<number[]>;
|
19
|
-
callAPI(texts: Array<string>, options?:
|
19
|
+
callAPI(texts: Array<string>, options?: FunctionOptions): Promise<LlamaCppTextEmbeddingResponse>;
|
20
20
|
get settingsForEvent(): Partial<LlamaCppTextEmbeddingModelSettings>;
|
21
|
-
|
22
|
-
|
21
|
+
doEmbedValues(texts: string[], options?: FunctionOptions): Promise<{
|
22
|
+
response: {
|
23
|
+
embedding: number[];
|
24
|
+
};
|
25
|
+
embeddings: number[][];
|
23
26
|
}>;
|
24
|
-
extractEmbeddings(response: LlamaCppTextEmbeddingResponse): number[][];
|
25
27
|
withSettings(additionalSettings: Partial<LlamaCppTextEmbeddingModelSettings>): this;
|
26
28
|
}
|
27
29
|
declare const llamaCppTextEmbeddingResponseSchema: z.ZodObject<{
|
@@ -51,18 +51,14 @@ export class LlamaCppTextEmbeddingModel extends AbstractModel {
|
|
51
51
|
if (texts.length > this.maxValuesPerCall) {
|
52
52
|
throw new Error(`The Llama.cpp embedding API only supports ${this.maxValuesPerCall} texts per API call.`);
|
53
53
|
}
|
54
|
-
const run = options?.run;
|
55
|
-
const settings = options?.settings;
|
56
|
-
const callSettings = {
|
57
|
-
...this.settings,
|
58
|
-
...settings,
|
59
|
-
abortSignal: run?.abortSignal,
|
60
|
-
content: texts[0],
|
61
|
-
};
|
62
54
|
return callWithRetryAndThrottle({
|
63
|
-
retry:
|
64
|
-
throttle:
|
65
|
-
call: async () => callLlamaCppEmbeddingAPI(
|
55
|
+
retry: this.settings.api?.retry,
|
56
|
+
throttle: this.settings.api?.throttle,
|
57
|
+
call: async () => callLlamaCppEmbeddingAPI({
|
58
|
+
...this.settings,
|
59
|
+
abortSignal: options?.run?.abortSignal,
|
60
|
+
content: texts[0],
|
61
|
+
}),
|
66
62
|
});
|
67
63
|
}
|
68
64
|
get settingsForEvent() {
|
@@ -70,11 +66,12 @@ export class LlamaCppTextEmbeddingModel extends AbstractModel {
|
|
70
66
|
embeddingDimensions: this.settings.embeddingDimensions,
|
71
67
|
};
|
72
68
|
}
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
69
|
+
async doEmbedValues(texts, options) {
|
70
|
+
const response = await this.callAPI(texts, options);
|
71
|
+
return {
|
72
|
+
response,
|
73
|
+
embeddings: [response.embedding],
|
74
|
+
};
|
78
75
|
}
|
79
76
|
withSettings(additionalSettings) {
|
80
77
|
return new LlamaCppTextEmbeddingModel(Object.assign({}, this.settings, additionalSettings));
|
@@ -11,7 +11,7 @@ const postToApi_js_1 = require("../../core/api/postToApi.cjs");
|
|
11
11
|
const AsyncQueue_js_1 = require("../../event-source/AsyncQueue.cjs");
|
12
12
|
const parseEventSourceStream_js_1 = require("../../event-source/parseEventSourceStream.cjs");
|
13
13
|
const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
|
14
|
-
const
|
14
|
+
const PromptFormatTextStreamingModel_js_1 = require("../../prompt/PromptFormatTextStreamingModel.cjs");
|
15
15
|
const LlamaCppApiConfiguration_js_1 = require("./LlamaCppApiConfiguration.cjs");
|
16
16
|
const LlamaCppError_js_1 = require("./LlamaCppError.cjs");
|
17
17
|
const LlamaCppTokenizer_js_1 = require("./LlamaCppTokenizer.cjs");
|
@@ -39,25 +39,19 @@ class LlamaCppTextGenerationModel extends AbstractModel_js_1.AbstractModel {
|
|
39
39
|
return this.settings.contextWindowSize;
|
40
40
|
}
|
41
41
|
async callAPI(prompt, options) {
|
42
|
-
const { run, settings, responseFormat } = options;
|
43
|
-
const combinedSettings = {
|
44
|
-
...this.settings,
|
45
|
-
...settings,
|
46
|
-
};
|
47
|
-
const callSettings = {
|
48
|
-
...combinedSettings,
|
49
|
-
// mapping
|
50
|
-
nPredict: combinedSettings.maxCompletionTokens,
|
51
|
-
stop: combinedSettings.stopSequences,
|
52
|
-
// other
|
53
|
-
abortSignal: run?.abortSignal,
|
54
|
-
prompt,
|
55
|
-
responseFormat,
|
56
|
-
};
|
57
42
|
return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
|
58
|
-
retry:
|
59
|
-
throttle:
|
60
|
-
call: async () => callLlamaCppTextGenerationAPI(
|
43
|
+
retry: this.settings.api?.retry,
|
44
|
+
throttle: this.settings.api?.throttle,
|
45
|
+
call: async () => callLlamaCppTextGenerationAPI({
|
46
|
+
...this.settings,
|
47
|
+
// mapping
|
48
|
+
nPredict: this.settings.maxCompletionTokens,
|
49
|
+
stop: this.settings.stopSequences,
|
50
|
+
// other
|
51
|
+
abortSignal: options.run?.abortSignal,
|
52
|
+
prompt,
|
53
|
+
responseFormat: options.responseFormat,
|
54
|
+
}),
|
61
55
|
});
|
62
56
|
}
|
63
57
|
get settingsForEvent() {
|
@@ -87,16 +81,22 @@ class LlamaCppTextGenerationModel extends AbstractModel_js_1.AbstractModel {
|
|
87
81
|
const tokens = await this.tokenizer.tokenize(prompt);
|
88
82
|
return tokens.length;
|
89
83
|
}
|
90
|
-
|
91
|
-
|
84
|
+
async doGenerateText(prompt, options) {
|
85
|
+
const response = await this.callAPI(prompt, {
|
92
86
|
...options,
|
93
87
|
responseFormat: exports.LlamaCppTextGenerationResponseFormat.json,
|
94
88
|
});
|
89
|
+
return {
|
90
|
+
response,
|
91
|
+
text: response.content,
|
92
|
+
usage: {
|
93
|
+
promptTokens: response.tokens_evaluated,
|
94
|
+
completionTokens: response.tokens_predicted,
|
95
|
+
totalTokens: response.tokens_evaluated + response.tokens_predicted,
|
96
|
+
},
|
97
|
+
};
|
95
98
|
}
|
96
|
-
|
97
|
-
return response.content;
|
98
|
-
}
|
99
|
-
generateDeltaStreamResponse(prompt, options) {
|
99
|
+
doStreamText(prompt, options) {
|
100
100
|
return this.callAPI(prompt, {
|
101
101
|
...options,
|
102
102
|
responseFormat: exports.LlamaCppTextGenerationResponseFormat.deltaIterable,
|
@@ -106,7 +106,7 @@ class LlamaCppTextGenerationModel extends AbstractModel_js_1.AbstractModel {
|
|
106
106
|
return fullDelta.delta;
|
107
107
|
}
|
108
108
|
withPromptFormat(promptFormat) {
|
109
|
-
return new
|
109
|
+
return new PromptFormatTextStreamingModel_js_1.PromptFormatTextStreamingModel({
|
110
110
|
model: this.withSettings({
|
111
111
|
stopSequences: [
|
112
112
|
...(this.settings.stopSequences ?? []),
|
@@ -116,13 +116,6 @@ class LlamaCppTextGenerationModel extends AbstractModel_js_1.AbstractModel {
|
|
116
116
|
promptFormat,
|
117
117
|
});
|
118
118
|
}
|
119
|
-
extractUsage(response) {
|
120
|
-
return {
|
121
|
-
promptTokens: response.tokens_evaluated,
|
122
|
-
completionTokens: response.tokens_predicted,
|
123
|
-
totalTokens: response.tokens_evaluated + response.tokens_predicted,
|
124
|
-
};
|
125
|
-
}
|
126
119
|
withSettings(additionalSettings) {
|
127
120
|
return new LlamaCppTextGenerationModel(Object.assign({}, this.settings, additionalSettings));
|
128
121
|
}
|
@@ -242,6 +235,7 @@ async function createLlamaCppFullDeltaIterableQueue(stream) {
|
|
242
235
|
isComplete: eventData.stop,
|
243
236
|
delta: eventData.content,
|
244
237
|
},
|
238
|
+
valueDelta: eventData.content,
|
245
239
|
});
|
246
240
|
if (eventData.stop) {
|
247
241
|
queue.close();
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import z from "zod";
|
2
|
+
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
2
3
|
import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
|
3
4
|
import { ResponseHandler } from "../../core/api/postToApi.js";
|
4
5
|
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
5
|
-
import {
|
6
|
-
import {
|
7
|
-
import { TextGenerationModel, TextGenerationModelSettings } from "../../model-function/generate-text/TextGenerationModel.js";
|
6
|
+
import { Delta } from "../../model-function/Delta.js";
|
7
|
+
import { TextGenerationModelSettings, TextStreamingModel } from "../../model-function/generate-text/TextGenerationModel.js";
|
8
8
|
import { PromptFormat } from "../../prompt/PromptFormat.js";
|
9
|
-
import {
|
9
|
+
import { PromptFormatTextStreamingModel } from "../../prompt/PromptFormatTextStreamingModel.js";
|
10
10
|
import { LlamaCppTokenizer } from "./LlamaCppTokenizer.js";
|
11
11
|
export interface LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE extends number | undefined> extends TextGenerationModelSettings {
|
12
12
|
api?: ApiConfiguration;
|
@@ -31,7 +31,7 @@ export interface LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE extends
|
|
31
31
|
ignoreEos?: boolean;
|
32
32
|
logitBias?: Array<[number, number | false]>;
|
33
33
|
}
|
34
|
-
export declare class LlamaCppTextGenerationModel<CONTEXT_WINDOW_SIZE extends number | undefined> extends AbstractModel<LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>> implements
|
34
|
+
export declare class LlamaCppTextGenerationModel<CONTEXT_WINDOW_SIZE extends number | undefined> extends AbstractModel<LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>> implements TextStreamingModel<string, LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>> {
|
35
35
|
constructor(settings?: LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>);
|
36
36
|
readonly provider = "llamacpp";
|
37
37
|
get modelName(): null;
|
@@ -39,67 +39,69 @@ export declare class LlamaCppTextGenerationModel<CONTEXT_WINDOW_SIZE extends num
|
|
39
39
|
readonly tokenizer: LlamaCppTokenizer;
|
40
40
|
callAPI<RESPONSE>(prompt: string, options: {
|
41
41
|
responseFormat: LlamaCppTextGenerationResponseFormatType<RESPONSE>;
|
42
|
-
} &
|
42
|
+
} & FunctionOptions): Promise<RESPONSE>;
|
43
43
|
get settingsForEvent(): Partial<LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>>;
|
44
44
|
countPromptTokens(prompt: string): Promise<number>;
|
45
|
-
|
46
|
-
|
47
|
-
prompt: string;
|
48
|
-
content: string;
|
49
|
-
stop: true;
|
50
|
-
generation_settings: {
|
45
|
+
doGenerateText(prompt: string, options?: FunctionOptions): Promise<{
|
46
|
+
response: {
|
51
47
|
model: string;
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
48
|
+
prompt: string;
|
49
|
+
content: string;
|
50
|
+
stop: true;
|
51
|
+
generation_settings: {
|
52
|
+
model: string;
|
53
|
+
stream: boolean;
|
54
|
+
seed: number;
|
55
|
+
mirostat: number;
|
56
|
+
stop: string[];
|
57
|
+
frequency_penalty: number;
|
58
|
+
ignore_eos: boolean;
|
59
|
+
logit_bias: number[];
|
60
|
+
mirostat_eta: number;
|
61
|
+
mirostat_tau: number;
|
62
|
+
n_ctx: number;
|
63
|
+
n_keep: number;
|
64
|
+
n_predict: number;
|
65
|
+
n_probs: number;
|
66
|
+
penalize_nl: boolean;
|
67
|
+
presence_penalty: number;
|
68
|
+
repeat_last_n: number;
|
69
|
+
repeat_penalty: number;
|
70
|
+
temp: number;
|
71
|
+
tfs_z: number;
|
72
|
+
top_k: number;
|
73
|
+
top_p: number;
|
74
|
+
typical_p: number;
|
75
|
+
};
|
76
|
+
stopped_eos: boolean;
|
77
|
+
stopped_limit: boolean;
|
78
|
+
stopped_word: boolean;
|
79
|
+
stopping_word: string;
|
80
|
+
timings: {
|
81
|
+
predicted_ms: number;
|
82
|
+
predicted_n: number;
|
83
|
+
predicted_per_second: number | null;
|
84
|
+
predicted_per_token_ms: number | null;
|
85
|
+
prompt_ms: number | null;
|
86
|
+
prompt_n: number;
|
87
|
+
prompt_per_second: number | null;
|
88
|
+
prompt_per_token_ms: number | null;
|
89
|
+
};
|
90
|
+
tokens_cached: number;
|
91
|
+
tokens_evaluated: number;
|
92
|
+
tokens_predicted: number;
|
93
|
+
truncated: boolean;
|
74
94
|
};
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
predicted_ms: number;
|
81
|
-
predicted_n: number;
|
82
|
-
predicted_per_second: number | null;
|
83
|
-
predicted_per_token_ms: number | null;
|
84
|
-
prompt_ms: number | null;
|
85
|
-
prompt_n: number;
|
86
|
-
prompt_per_second: number | null;
|
87
|
-
prompt_per_token_ms: number | null;
|
95
|
+
text: string;
|
96
|
+
usage: {
|
97
|
+
promptTokens: number;
|
98
|
+
completionTokens: number;
|
99
|
+
totalTokens: number;
|
88
100
|
};
|
89
|
-
tokens_cached: number;
|
90
|
-
tokens_evaluated: number;
|
91
|
-
tokens_predicted: number;
|
92
|
-
truncated: boolean;
|
93
101
|
}>;
|
94
|
-
|
95
|
-
generateDeltaStreamResponse(prompt: string, options?: ModelFunctionOptions<LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>>): Promise<AsyncIterable<DeltaEvent<LlamaCppTextGenerationDelta>>>;
|
102
|
+
doStreamText(prompt: string, options?: FunctionOptions): Promise<AsyncIterable<Delta<string>>>;
|
96
103
|
extractTextDelta(fullDelta: LlamaCppTextGenerationDelta): string | undefined;
|
97
|
-
withPromptFormat<INPUT_PROMPT>(promptFormat: PromptFormat<INPUT_PROMPT, string>):
|
98
|
-
extractUsage(response: LlamaCppTextGenerationResponse): {
|
99
|
-
promptTokens: number;
|
100
|
-
completionTokens: number;
|
101
|
-
totalTokens: number;
|
102
|
-
};
|
104
|
+
withPromptFormat<INPUT_PROMPT>(promptFormat: PromptFormat<INPUT_PROMPT, string>): PromptFormatTextStreamingModel<INPUT_PROMPT, string, LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>, this>;
|
103
105
|
withSettings(additionalSettings: Partial<LlamaCppTextGenerationModelSettings<CONTEXT_WINDOW_SIZE>>): this;
|
104
106
|
}
|
105
107
|
declare const llamaCppTextGenerationResponseSchema: z.ZodObject<{
|
@@ -387,7 +389,7 @@ export declare const LlamaCppTextGenerationResponseFormat: {
|
|
387
389
|
stream: true;
|
388
390
|
handler: ({ response }: {
|
389
391
|
response: Response;
|
390
|
-
}) => Promise<AsyncIterable<
|
392
|
+
}) => Promise<AsyncIterable<Delta<string>>>;
|
391
393
|
};
|
392
394
|
};
|
393
395
|
export {};
|