modelfusion 0.113.0 → 0.114.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/CHANGELOG.md +65 -0
- package/README.md +89 -89
- package/core/FunctionOptions.d.ts +14 -0
- package/core/api/AbstractApiConfiguration.cjs +16 -1
- package/core/api/AbstractApiConfiguration.d.ts +7 -3
- package/core/api/AbstractApiConfiguration.js +16 -1
- package/core/api/ApiConfiguration.d.ts +10 -1
- package/core/api/BaseUrlApiConfiguration.cjs +9 -5
- package/core/api/BaseUrlApiConfiguration.d.ts +7 -7
- package/core/api/BaseUrlApiConfiguration.js +9 -5
- package/core/api/CustomHeaderProvider.cjs +2 -0
- package/core/api/CustomHeaderProvider.d.ts +2 -0
- package/core/api/CustomHeaderProvider.js +1 -0
- package/core/api/index.cjs +1 -0
- package/core/api/index.d.ts +1 -0
- package/core/api/index.js +1 -0
- package/core/cache/Cache.cjs +2 -0
- package/core/cache/Cache.d.ts +12 -0
- package/core/cache/Cache.js +1 -0
- package/core/cache/MemoryCache.cjs +23 -0
- package/core/cache/MemoryCache.d.ts +15 -0
- package/core/cache/MemoryCache.js +19 -0
- package/core/cache/index.cjs +18 -0
- package/core/cache/index.d.ts +2 -0
- package/core/cache/index.js +2 -0
- package/core/index.cjs +1 -0
- package/core/index.d.ts +1 -0
- package/core/index.js +1 -0
- package/core/schema/TypeValidationError.cjs +36 -0
- package/core/schema/TypeValidationError.d.ts +15 -0
- package/core/schema/TypeValidationError.js +32 -0
- package/core/schema/index.cjs +2 -0
- package/core/schema/index.d.ts +2 -0
- package/core/schema/index.js +2 -0
- package/core/schema/parseJSON.cjs +6 -14
- package/core/schema/parseJSON.d.ts +3 -2
- package/core/schema/parseJSON.js +6 -14
- package/core/schema/validateTypes.cjs +65 -0
- package/core/schema/validateTypes.d.ts +34 -0
- package/core/schema/validateTypes.js +60 -0
- package/model-function/embed/EmbeddingModel.d.ts +2 -2
- package/model-function/executeStandardCall.cjs +3 -1
- package/model-function/executeStandardCall.d.ts +2 -2
- package/model-function/executeStandardCall.js +3 -1
- package/model-function/executeStreamCall.cjs +2 -1
- package/model-function/executeStreamCall.d.ts +2 -2
- package/model-function/executeStreamCall.js +2 -1
- package/model-function/generate-image/ImageGenerationModel.d.ts +2 -2
- package/model-function/generate-image/PromptTemplateImageGenerationModel.d.ts +2 -2
- package/model-function/generate-speech/SpeechGenerationModel.d.ts +3 -3
- package/model-function/generate-structure/generateStructure.cjs +4 -1
- package/model-function/generate-structure/generateStructure.js +4 -1
- package/model-function/generate-structure/streamStructure.cjs +4 -1
- package/model-function/generate-structure/streamStructure.js +4 -1
- package/model-function/generate-text/PromptTemplateTextGenerationModel.cjs +3 -0
- package/model-function/generate-text/PromptTemplateTextGenerationModel.d.ts +11 -2
- package/model-function/generate-text/PromptTemplateTextGenerationModel.js +3 -0
- package/model-function/generate-text/PromptTemplateTextStreamingModel.d.ts +2 -2
- package/model-function/generate-text/TextGenerationModel.d.ts +12 -3
- package/model-function/generate-text/generateText.cjs +43 -1
- package/model-function/generate-text/generateText.js +43 -1
- package/model-function/generate-transcription/TranscriptionModel.d.ts +2 -2
- package/model-provider/anthropic/AnthropicTextGenerationModel.cjs +20 -8
- package/model-provider/anthropic/AnthropicTextGenerationModel.d.ts +27 -5
- package/model-provider/anthropic/AnthropicTextGenerationModel.js +20 -8
- package/model-provider/automatic1111/Automatic1111ImageGenerationModel.cjs +8 -3
- package/model-provider/automatic1111/Automatic1111ImageGenerationModel.d.ts +3 -3
- package/model-provider/automatic1111/Automatic1111ImageGenerationModel.js +8 -3
- package/model-provider/cohere/CohereTextEmbeddingModel.cjs +8 -3
- package/model-provider/cohere/CohereTextEmbeddingModel.d.ts +3 -3
- package/model-provider/cohere/CohereTextEmbeddingModel.js +8 -3
- package/model-provider/cohere/CohereTextGenerationModel.cjs +20 -8
- package/model-provider/cohere/CohereTextGenerationModel.d.ts +45 -5
- package/model-provider/cohere/CohereTextGenerationModel.js +20 -8
- package/model-provider/cohere/CohereTokenizer.cjs +16 -6
- package/model-provider/cohere/CohereTokenizer.d.ts +3 -3
- package/model-provider/cohere/CohereTokenizer.js +16 -6
- package/model-provider/elevenlabs/ElevenLabsApiConfiguration.cjs +1 -1
- package/model-provider/elevenlabs/ElevenLabsApiConfiguration.js +1 -1
- package/model-provider/elevenlabs/ElevenLabsSpeechModel.cjs +8 -3
- package/model-provider/elevenlabs/ElevenLabsSpeechModel.d.ts +2 -2
- package/model-provider/elevenlabs/ElevenLabsSpeechModel.js +8 -3
- package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.cjs +8 -3
- package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.d.ts +3 -3
- package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.js +8 -3
- package/model-provider/huggingface/HuggingFaceTextGenerationModel.cjs +18 -4
- package/model-provider/huggingface/HuggingFaceTextGenerationModel.d.ts +21 -3
- package/model-provider/huggingface/HuggingFaceTextGenerationModel.js +18 -4
- package/model-provider/llamacpp/LlamaCppCompletionModel.cjs +20 -8
- package/model-provider/llamacpp/LlamaCppCompletionModel.d.ts +125 -5
- package/model-provider/llamacpp/LlamaCppCompletionModel.js +20 -8
- package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.cjs +8 -3
- package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.d.ts +3 -3
- package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.js +8 -3
- package/model-provider/llamacpp/LlamaCppTokenizer.cjs +8 -3
- package/model-provider/llamacpp/LlamaCppTokenizer.d.ts +2 -2
- package/model-provider/llamacpp/LlamaCppTokenizer.js +8 -3
- package/model-provider/lmnt/LmntSpeechModel.cjs +8 -3
- package/model-provider/lmnt/LmntSpeechModel.d.ts +2 -2
- package/model-provider/lmnt/LmntSpeechModel.js +8 -3
- package/model-provider/mistral/MistralChatModel.cjs +20 -8
- package/model-provider/mistral/MistralChatModel.d.ts +55 -5
- package/model-provider/mistral/MistralChatModel.js +20 -8
- package/model-provider/mistral/MistralTextEmbeddingModel.cjs +8 -3
- package/model-provider/mistral/MistralTextEmbeddingModel.d.ts +3 -3
- package/model-provider/mistral/MistralTextEmbeddingModel.js +8 -3
- package/model-provider/ollama/OllamaChatModel.cjs +20 -8
- package/model-provider/ollama/OllamaChatModel.d.ts +27 -5
- package/model-provider/ollama/OllamaChatModel.js +20 -8
- package/model-provider/ollama/OllamaCompletionModel.cjs +20 -7
- package/model-provider/ollama/OllamaCompletionModel.d.ts +43 -5
- package/model-provider/ollama/OllamaCompletionModel.js +20 -7
- package/model-provider/ollama/OllamaTextEmbeddingModel.cjs +8 -3
- package/model-provider/ollama/OllamaTextEmbeddingModel.d.ts +3 -3
- package/model-provider/ollama/OllamaTextEmbeddingModel.js +8 -3
- package/model-provider/openai/AbstractOpenAIChatModel.cjs +25 -15
- package/model-provider/openai/AbstractOpenAIChatModel.d.ts +108 -21
- package/model-provider/openai/AbstractOpenAIChatModel.js +25 -15
- package/model-provider/openai/AbstractOpenAICompletionModel.cjs +21 -9
- package/model-provider/openai/AbstractOpenAICompletionModel.d.ts +35 -5
- package/model-provider/openai/AbstractOpenAICompletionModel.js +21 -9
- package/model-provider/openai/AzureOpenAIApiConfiguration.cjs +5 -2
- package/model-provider/openai/AzureOpenAIApiConfiguration.d.ts +2 -1
- package/model-provider/openai/AzureOpenAIApiConfiguration.js +5 -2
- package/model-provider/openai/OpenAIChatFunctionCallStructureGenerationModel.cjs +12 -6
- package/model-provider/openai/OpenAIChatFunctionCallStructureGenerationModel.d.ts +91 -7
- package/model-provider/openai/OpenAIChatFunctionCallStructureGenerationModel.js +12 -6
- package/model-provider/openai/OpenAIImageGenerationModel.cjs +10 -6
- package/model-provider/openai/OpenAIImageGenerationModel.d.ts +4 -4
- package/model-provider/openai/OpenAIImageGenerationModel.js +10 -6
- package/model-provider/openai/OpenAISpeechModel.cjs +9 -4
- package/model-provider/openai/OpenAISpeechModel.d.ts +3 -3
- package/model-provider/openai/OpenAISpeechModel.js +9 -4
- package/model-provider/openai/OpenAITextEmbeddingModel.cjs +11 -6
- package/model-provider/openai/OpenAITextEmbeddingModel.d.ts +3 -3
- package/model-provider/openai/OpenAITextEmbeddingModel.js +11 -6
- package/model-provider/openai/OpenAITranscriptionModel.cjs +9 -6
- package/model-provider/openai/OpenAITranscriptionModel.d.ts +4 -4
- package/model-provider/openai/OpenAITranscriptionModel.js +9 -6
- package/model-provider/stability/StabilityImageGenerationModel.cjs +10 -5
- package/model-provider/stability/StabilityImageGenerationModel.d.ts +3 -3
- package/model-provider/stability/StabilityImageGenerationModel.js +10 -5
- package/model-provider/whispercpp/WhisperCppTranscriptionModel.cjs +9 -7
- package/model-provider/whispercpp/WhisperCppTranscriptionModel.d.ts +3 -3
- package/model-provider/whispercpp/WhisperCppTranscriptionModel.js +9 -7
- package/observability/helicone/HeliconeOpenAIApiConfiguration.cjs +2 -1
- package/observability/helicone/HeliconeOpenAIApiConfiguration.d.ts +3 -1
- package/observability/helicone/HeliconeOpenAIApiConfiguration.js +2 -1
- package/package.json +1 -1
@@ -1,5 +1,5 @@
|
|
1
1
|
import { z } from "zod";
|
2
|
-
import {
|
2
|
+
import { FunctionCallOptions } from "../../core/FunctionOptions.js";
|
3
3
|
import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
|
4
4
|
import { ResponseHandler } from "../../core/api/postToApi.js";
|
5
5
|
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
@@ -54,11 +54,11 @@ export declare class CohereTextGenerationModel extends AbstractModel<CohereTextG
|
|
54
54
|
readonly contextWindowSize: number;
|
55
55
|
readonly tokenizer: CohereTokenizer;
|
56
56
|
countPromptTokens(input: string): Promise<number>;
|
57
|
-
callAPI<RESPONSE>(prompt: string, options: {
|
57
|
+
callAPI<RESPONSE>(prompt: string, callOptions: FunctionCallOptions, options: {
|
58
58
|
responseFormat: CohereTextGenerationResponseFormatType<RESPONSE>;
|
59
|
-
}
|
59
|
+
}): Promise<RESPONSE>;
|
60
60
|
get settingsForEvent(): Partial<CohereTextGenerationModelSettings>;
|
61
|
-
doGenerateTexts(prompt: string, options
|
61
|
+
doGenerateTexts(prompt: string, options: FunctionCallOptions): Promise<{
|
62
62
|
response: {
|
63
63
|
id: string;
|
64
64
|
prompt: string;
|
@@ -78,8 +78,48 @@ export declare class CohereTextGenerationModel extends AbstractModel<CohereTextG
|
|
78
78
|
finishReason: TextGenerationFinishReason;
|
79
79
|
}[];
|
80
80
|
}>;
|
81
|
+
restoreGeneratedTexts(rawResponse: unknown): {
|
82
|
+
response: {
|
83
|
+
id: string;
|
84
|
+
prompt: string;
|
85
|
+
generations: {
|
86
|
+
text: string;
|
87
|
+
id: string;
|
88
|
+
finish_reason?: string | undefined;
|
89
|
+
}[];
|
90
|
+
meta?: {
|
91
|
+
api_version: {
|
92
|
+
version: string;
|
93
|
+
};
|
94
|
+
} | undefined;
|
95
|
+
};
|
96
|
+
textGenerationResults: {
|
97
|
+
text: string;
|
98
|
+
finishReason: TextGenerationFinishReason;
|
99
|
+
}[];
|
100
|
+
};
|
101
|
+
processTextGenerationResponse(response: CohereTextGenerationResponse): {
|
102
|
+
response: {
|
103
|
+
id: string;
|
104
|
+
prompt: string;
|
105
|
+
generations: {
|
106
|
+
text: string;
|
107
|
+
id: string;
|
108
|
+
finish_reason?: string | undefined;
|
109
|
+
}[];
|
110
|
+
meta?: {
|
111
|
+
api_version: {
|
112
|
+
version: string;
|
113
|
+
};
|
114
|
+
} | undefined;
|
115
|
+
};
|
116
|
+
textGenerationResults: {
|
117
|
+
text: string;
|
118
|
+
finishReason: TextGenerationFinishReason;
|
119
|
+
}[];
|
120
|
+
};
|
81
121
|
private translateFinishReason;
|
82
|
-
doStreamText(prompt: string, options
|
122
|
+
doStreamText(prompt: string, options: FunctionCallOptions): Promise<AsyncIterable<import("../../index.js").Delta<{
|
83
123
|
text: string;
|
84
124
|
is_finished: false;
|
85
125
|
} | {
|
@@ -2,6 +2,7 @@ import { z } from "zod";
|
|
2
2
|
import { callWithRetryAndThrottle } from "../../core/api/callWithRetryAndThrottle.js";
|
3
3
|
import { createJsonResponseHandler, postJsonToApi, } from "../../core/api/postToApi.js";
|
4
4
|
import { zodSchema } from "../../core/schema/ZodSchema.js";
|
5
|
+
import { validateTypes } from "../../core/schema/validateTypes.js";
|
5
6
|
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
6
7
|
import { PromptTemplateTextStreamingModel } from "../../model-function/generate-text/PromptTemplateTextStreamingModel.js";
|
7
8
|
import { textGenerationModelProperties, } from "../../model-function/generate-text/TextGenerationModel.js";
|
@@ -70,16 +71,21 @@ export class CohereTextGenerationModel extends AbstractModel {
|
|
70
71
|
async countPromptTokens(input) {
|
71
72
|
return countTokens(this.tokenizer, input);
|
72
73
|
}
|
73
|
-
async callAPI(prompt, options) {
|
74
|
+
async callAPI(prompt, callOptions, options) {
|
74
75
|
const api = this.settings.api ?? new CohereApiConfiguration();
|
75
76
|
const responseFormat = options.responseFormat;
|
76
|
-
const abortSignal =
|
77
|
+
const abortSignal = callOptions.run?.abortSignal;
|
77
78
|
return callWithRetryAndThrottle({
|
78
79
|
retry: api.retry,
|
79
80
|
throttle: api.throttle,
|
80
81
|
call: async () => postJsonToApi({
|
81
82
|
url: api.assembleUrl(`/generate`),
|
82
|
-
headers: api.headers
|
83
|
+
headers: api.headers({
|
84
|
+
functionType: callOptions.functionType,
|
85
|
+
functionId: callOptions.functionId,
|
86
|
+
run: callOptions.run,
|
87
|
+
callId: callOptions.callId,
|
88
|
+
}),
|
83
89
|
body: {
|
84
90
|
stream: responseFormat.stream,
|
85
91
|
model: this.settings.model,
|
@@ -119,10 +125,17 @@ export class CohereTextGenerationModel extends AbstractModel {
|
|
119
125
|
return Object.fromEntries(Object.entries(this.settings).filter(([key]) => eventSettingProperties.includes(key)));
|
120
126
|
}
|
121
127
|
async doGenerateTexts(prompt, options) {
|
122
|
-
|
123
|
-
...options,
|
128
|
+
return this.processTextGenerationResponse(await this.callAPI(prompt, options, {
|
124
129
|
responseFormat: CohereTextGenerationResponseFormat.json,
|
125
|
-
});
|
130
|
+
}));
|
131
|
+
}
|
132
|
+
restoreGeneratedTexts(rawResponse) {
|
133
|
+
return this.processTextGenerationResponse(validateTypes({
|
134
|
+
structure: rawResponse,
|
135
|
+
schema: zodSchema(cohereTextGenerationResponseSchema),
|
136
|
+
}));
|
137
|
+
}
|
138
|
+
processTextGenerationResponse(response) {
|
126
139
|
return {
|
127
140
|
response,
|
128
141
|
textGenerationResults: response.generations.map((generation) => ({
|
@@ -146,8 +159,7 @@ export class CohereTextGenerationModel extends AbstractModel {
|
|
146
159
|
}
|
147
160
|
}
|
148
161
|
doStreamText(prompt, options) {
|
149
|
-
return this.callAPI(prompt, {
|
150
|
-
...options,
|
162
|
+
return this.callAPI(prompt, options, {
|
151
163
|
responseFormat: CohereTextGenerationResponseFormat.deltaIterable,
|
152
164
|
});
|
153
165
|
}
|
@@ -33,15 +33,20 @@ class CohereTokenizer {
|
|
33
33
|
});
|
34
34
|
this.settings = settings;
|
35
35
|
}
|
36
|
-
async callTokenizeAPI(text,
|
36
|
+
async callTokenizeAPI(text, callOptions) {
|
37
37
|
const api = this.settings.api ?? new CohereApiConfiguration_js_1.CohereApiConfiguration();
|
38
|
-
const abortSignal =
|
38
|
+
const abortSignal = callOptions?.run?.abortSignal;
|
39
39
|
return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
|
40
40
|
retry: api.retry,
|
41
41
|
throttle: api.throttle,
|
42
42
|
call: async () => (0, postToApi_js_1.postJsonToApi)({
|
43
43
|
url: api.assembleUrl(`/tokenize`),
|
44
|
-
headers: api.headers
|
44
|
+
headers: api.headers({
|
45
|
+
functionType: "tokenize",
|
46
|
+
functionId: callOptions?.functionId,
|
47
|
+
run: callOptions?.run,
|
48
|
+
callId: "",
|
49
|
+
}),
|
45
50
|
body: {
|
46
51
|
model: this.settings.model,
|
47
52
|
text,
|
@@ -52,15 +57,20 @@ class CohereTokenizer {
|
|
52
57
|
}),
|
53
58
|
});
|
54
59
|
}
|
55
|
-
async callDeTokenizeAPI(tokens,
|
60
|
+
async callDeTokenizeAPI(tokens, callOptions) {
|
56
61
|
const api = this.settings.api ?? new CohereApiConfiguration_js_1.CohereApiConfiguration();
|
57
|
-
const abortSignal =
|
62
|
+
const abortSignal = callOptions?.run?.abortSignal;
|
58
63
|
return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
|
59
64
|
retry: api.retry,
|
60
65
|
throttle: api.throttle,
|
61
66
|
call: async () => (0, postToApi_js_1.postJsonToApi)({
|
62
67
|
url: api.assembleUrl(`/detokenize`),
|
63
|
-
headers: api.headers
|
68
|
+
headers: api.headers({
|
69
|
+
functionType: "detokenize",
|
70
|
+
functionId: callOptions?.functionId,
|
71
|
+
run: callOptions?.run,
|
72
|
+
callId: "",
|
73
|
+
}),
|
64
74
|
body: {
|
65
75
|
model: this.settings.model,
|
66
76
|
tokens,
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { z } from "zod";
|
2
|
-
import {
|
2
|
+
import { FunctionCallOptions } from "../../core/FunctionOptions.js";
|
3
3
|
import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
|
4
4
|
import { FullTokenizer } from "../../model-function/tokenize-text/Tokenizer.js";
|
5
5
|
import { CohereTextEmbeddingModelType } from "./CohereTextEmbeddingModel.js";
|
@@ -28,8 +28,8 @@ export interface CohereTokenizerSettings {
|
|
28
28
|
export declare class CohereTokenizer implements FullTokenizer {
|
29
29
|
readonly settings: CohereTokenizerSettings;
|
30
30
|
constructor(settings: CohereTokenizerSettings);
|
31
|
-
callTokenizeAPI(text: string,
|
32
|
-
callDeTokenizeAPI(tokens: number[],
|
31
|
+
callTokenizeAPI(text: string, callOptions?: FunctionCallOptions): Promise<CohereTokenizationResponse>;
|
32
|
+
callDeTokenizeAPI(tokens: number[], callOptions?: FunctionCallOptions): Promise<CohereDetokenizationResponse>;
|
33
33
|
tokenize(text: string): Promise<number[]>;
|
34
34
|
tokenizeWithTexts(text: string): Promise<{
|
35
35
|
tokens: number[];
|
@@ -30,15 +30,20 @@ export class CohereTokenizer {
|
|
30
30
|
});
|
31
31
|
this.settings = settings;
|
32
32
|
}
|
33
|
-
async callTokenizeAPI(text,
|
33
|
+
async callTokenizeAPI(text, callOptions) {
|
34
34
|
const api = this.settings.api ?? new CohereApiConfiguration();
|
35
|
-
const abortSignal =
|
35
|
+
const abortSignal = callOptions?.run?.abortSignal;
|
36
36
|
return callWithRetryAndThrottle({
|
37
37
|
retry: api.retry,
|
38
38
|
throttle: api.throttle,
|
39
39
|
call: async () => postJsonToApi({
|
40
40
|
url: api.assembleUrl(`/tokenize`),
|
41
|
-
headers: api.headers
|
41
|
+
headers: api.headers({
|
42
|
+
functionType: "tokenize",
|
43
|
+
functionId: callOptions?.functionId,
|
44
|
+
run: callOptions?.run,
|
45
|
+
callId: "",
|
46
|
+
}),
|
42
47
|
body: {
|
43
48
|
model: this.settings.model,
|
44
49
|
text,
|
@@ -49,15 +54,20 @@ export class CohereTokenizer {
|
|
49
54
|
}),
|
50
55
|
});
|
51
56
|
}
|
52
|
-
async callDeTokenizeAPI(tokens,
|
57
|
+
async callDeTokenizeAPI(tokens, callOptions) {
|
53
58
|
const api = this.settings.api ?? new CohereApiConfiguration();
|
54
|
-
const abortSignal =
|
59
|
+
const abortSignal = callOptions?.run?.abortSignal;
|
55
60
|
return callWithRetryAndThrottle({
|
56
61
|
retry: api.retry,
|
57
62
|
throttle: api.throttle,
|
58
63
|
call: async () => postJsonToApi({
|
59
64
|
url: api.assembleUrl(`/detokenize`),
|
60
|
-
headers: api.headers
|
65
|
+
headers: api.headers({
|
66
|
+
functionType: "detokenize",
|
67
|
+
functionId: callOptions?.functionId,
|
68
|
+
run: callOptions?.run,
|
69
|
+
callId: "",
|
70
|
+
}),
|
61
71
|
body: {
|
62
72
|
model: this.settings.model,
|
63
73
|
tokens,
|
@@ -27,7 +27,7 @@ class ElevenLabsApiConfiguration extends BaseUrlApiConfiguration_js_1.BaseUrlApi
|
|
27
27
|
});
|
28
28
|
}
|
29
29
|
get apiKey() {
|
30
|
-
return this.
|
30
|
+
return this.fixedHeadersValue["xi-api-key"];
|
31
31
|
}
|
32
32
|
}
|
33
33
|
exports.ElevenLabsApiConfiguration = ElevenLabsApiConfiguration;
|
@@ -38,9 +38,9 @@ class ElevenLabsSpeechModel extends AbstractModel_js_1.AbstractModel {
|
|
38
38
|
get modelName() {
|
39
39
|
return this.settings.voice;
|
40
40
|
}
|
41
|
-
async callAPI(text,
|
41
|
+
async callAPI(text, callOptions) {
|
42
42
|
const api = this.settings.api ?? new ElevenLabsApiConfiguration_js_1.ElevenLabsApiConfiguration();
|
43
|
-
const abortSignal =
|
43
|
+
const abortSignal = callOptions?.run?.abortSignal;
|
44
44
|
return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
|
45
45
|
retry: api.retry,
|
46
46
|
throttle: api.throttle,
|
@@ -49,7 +49,12 @@ class ElevenLabsSpeechModel extends AbstractModel_js_1.AbstractModel {
|
|
49
49
|
optimize_streaming_latency: this.settings.optimizeStreamingLatency,
|
50
50
|
output_format: this.settings.outputFormat,
|
51
51
|
})}`),
|
52
|
-
headers: api.headers
|
52
|
+
headers: api.headers({
|
53
|
+
functionType: callOptions.functionType,
|
54
|
+
functionId: callOptions.functionId,
|
55
|
+
run: callOptions.run,
|
56
|
+
callId: callOptions.callId,
|
57
|
+
}),
|
53
58
|
body: {
|
54
59
|
text,
|
55
60
|
model_id: this.settings.model ?? defaultModel,
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/// <reference types="node" />
|
2
|
-
import {
|
2
|
+
import { FunctionCallOptions } from "../../core/FunctionOptions.js";
|
3
3
|
import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
|
4
4
|
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
5
5
|
import { Delta } from "../../model-function/Delta.js";
|
@@ -37,7 +37,7 @@ export declare class ElevenLabsSpeechModel extends AbstractModel<ElevenLabsSpeec
|
|
37
37
|
get modelName(): string;
|
38
38
|
private callAPI;
|
39
39
|
get settingsForEvent(): Partial<ElevenLabsSpeechModelSettings>;
|
40
|
-
doGenerateSpeechStandard(text: string, options
|
40
|
+
doGenerateSpeechStandard(text: string, options: FunctionCallOptions): Promise<Buffer>;
|
41
41
|
doGenerateSpeechStreamDuplex(textStream: AsyncIterable<string>): Promise<AsyncIterable<Delta<Buffer>>>;
|
42
42
|
withSettings(additionalSettings: Partial<ElevenLabsSpeechModelSettings>): this;
|
43
43
|
}
|
@@ -35,9 +35,9 @@ export class ElevenLabsSpeechModel extends AbstractModel {
|
|
35
35
|
get modelName() {
|
36
36
|
return this.settings.voice;
|
37
37
|
}
|
38
|
-
async callAPI(text,
|
38
|
+
async callAPI(text, callOptions) {
|
39
39
|
const api = this.settings.api ?? new ElevenLabsApiConfiguration();
|
40
|
-
const abortSignal =
|
40
|
+
const abortSignal = callOptions?.run?.abortSignal;
|
41
41
|
return callWithRetryAndThrottle({
|
42
42
|
retry: api.retry,
|
43
43
|
throttle: api.throttle,
|
@@ -46,7 +46,12 @@ export class ElevenLabsSpeechModel extends AbstractModel {
|
|
46
46
|
optimize_streaming_latency: this.settings.optimizeStreamingLatency,
|
47
47
|
output_format: this.settings.outputFormat,
|
48
48
|
})}`),
|
49
|
-
headers: api.headers
|
49
|
+
headers: api.headers({
|
50
|
+
functionType: callOptions.functionType,
|
51
|
+
functionId: callOptions.functionId,
|
52
|
+
run: callOptions.run,
|
53
|
+
callId: callOptions.callId,
|
54
|
+
}),
|
50
55
|
body: {
|
51
56
|
text,
|
52
57
|
model_id: this.settings.model ?? defaultModel,
|
@@ -80,18 +80,23 @@ class HuggingFaceTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
|
|
80
80
|
get modelName() {
|
81
81
|
return this.settings.model;
|
82
82
|
}
|
83
|
-
async callAPI(texts,
|
83
|
+
async callAPI(texts, callOptions) {
|
84
84
|
if (texts.length > this.maxValuesPerCall) {
|
85
85
|
throw new Error(`The HuggingFace feature extraction API is configured to only support ${this.maxValuesPerCall} texts per API call.`);
|
86
86
|
}
|
87
87
|
const api = this.settings.api ?? new HuggingFaceApiConfiguration_js_1.HuggingFaceApiConfiguration();
|
88
|
-
const abortSignal =
|
88
|
+
const abortSignal = callOptions?.run?.abortSignal;
|
89
89
|
return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
|
90
90
|
retry: api.retry,
|
91
91
|
throttle: api.throttle,
|
92
92
|
call: async () => (0, postToApi_js_1.postJsonToApi)({
|
93
93
|
url: api.assembleUrl(`/${this.settings.model}`),
|
94
|
-
headers: api.headers
|
94
|
+
headers: api.headers({
|
95
|
+
functionType: callOptions.functionType,
|
96
|
+
functionId: callOptions.functionId,
|
97
|
+
run: callOptions.run,
|
98
|
+
callId: callOptions.callId,
|
99
|
+
}),
|
95
100
|
body: {
|
96
101
|
inputs: texts,
|
97
102
|
options: {
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { z } from "zod";
|
2
|
-
import {
|
2
|
+
import { FunctionCallOptions } from "../../core/FunctionOptions.js";
|
3
3
|
import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
|
4
4
|
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
5
5
|
import { EmbeddingModel, EmbeddingModelSettings } from "../../model-function/embed/EmbeddingModel.js";
|
@@ -42,10 +42,10 @@ export declare class HuggingFaceTextEmbeddingModel extends AbstractModel<Hugging
|
|
42
42
|
readonly contextWindowSize: undefined;
|
43
43
|
readonly embeddingDimensions: number | undefined;
|
44
44
|
readonly tokenizer: undefined;
|
45
|
-
callAPI(texts: Array<string>,
|
45
|
+
callAPI(texts: Array<string>, callOptions: FunctionCallOptions): Promise<HuggingFaceTextEmbeddingResponse>;
|
46
46
|
get settingsForEvent(): Partial<HuggingFaceTextEmbeddingModelSettings>;
|
47
47
|
readonly countPromptTokens: undefined;
|
48
|
-
doEmbedValues(texts: string[], options
|
48
|
+
doEmbedValues(texts: string[], options: FunctionCallOptions): Promise<{
|
49
49
|
response: number[][];
|
50
50
|
embeddings: number[][];
|
51
51
|
}>;
|
@@ -77,18 +77,23 @@ export class HuggingFaceTextEmbeddingModel extends AbstractModel {
|
|
77
77
|
get modelName() {
|
78
78
|
return this.settings.model;
|
79
79
|
}
|
80
|
-
async callAPI(texts,
|
80
|
+
async callAPI(texts, callOptions) {
|
81
81
|
if (texts.length > this.maxValuesPerCall) {
|
82
82
|
throw new Error(`The HuggingFace feature extraction API is configured to only support ${this.maxValuesPerCall} texts per API call.`);
|
83
83
|
}
|
84
84
|
const api = this.settings.api ?? new HuggingFaceApiConfiguration();
|
85
|
-
const abortSignal =
|
85
|
+
const abortSignal = callOptions?.run?.abortSignal;
|
86
86
|
return callWithRetryAndThrottle({
|
87
87
|
retry: api.retry,
|
88
88
|
throttle: api.throttle,
|
89
89
|
call: async () => postJsonToApi({
|
90
90
|
url: api.assembleUrl(`/${this.settings.model}`),
|
91
|
-
headers: api.headers
|
91
|
+
headers: api.headers({
|
92
|
+
functionType: callOptions.functionType,
|
93
|
+
functionId: callOptions.functionId,
|
94
|
+
run: callOptions.run,
|
95
|
+
callId: callOptions.callId,
|
96
|
+
}),
|
92
97
|
body: {
|
93
98
|
inputs: texts,
|
94
99
|
options: {
|
@@ -5,6 +5,7 @@ const zod_1 = require("zod");
|
|
5
5
|
const callWithRetryAndThrottle_js_1 = require("../../core/api/callWithRetryAndThrottle.cjs");
|
6
6
|
const postToApi_js_1 = require("../../core/api/postToApi.cjs");
|
7
7
|
const ZodSchema_js_1 = require("../../core/schema/ZodSchema.cjs");
|
8
|
+
const validateTypes_js_1 = require("../../core/schema/validateTypes.cjs");
|
8
9
|
const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
|
9
10
|
const PromptTemplateTextGenerationModel_js_1 = require("../../model-function/generate-text/PromptTemplateTextGenerationModel.cjs");
|
10
11
|
const TextGenerationModel_js_1 = require("../../model-function/generate-text/TextGenerationModel.cjs");
|
@@ -59,15 +60,20 @@ class HuggingFaceTextGenerationModel extends AbstractModel_js_1.AbstractModel {
|
|
59
60
|
get modelName() {
|
60
61
|
return this.settings.model;
|
61
62
|
}
|
62
|
-
async callAPI(prompt,
|
63
|
+
async callAPI(prompt, callOptions) {
|
63
64
|
const api = this.settings.api ?? new HuggingFaceApiConfiguration_js_1.HuggingFaceApiConfiguration();
|
64
|
-
const abortSignal =
|
65
|
+
const abortSignal = callOptions?.run?.abortSignal;
|
65
66
|
return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
|
66
67
|
retry: api.retry,
|
67
68
|
throttle: api.throttle,
|
68
69
|
call: async () => (0, postToApi_js_1.postJsonToApi)({
|
69
70
|
url: api.assembleUrl(`/${this.settings.model}`),
|
70
|
-
headers: api.headers
|
71
|
+
headers: api.headers({
|
72
|
+
functionType: callOptions.functionType,
|
73
|
+
functionId: callOptions.functionId,
|
74
|
+
run: callOptions.run,
|
75
|
+
callId: callOptions.callId,
|
76
|
+
}),
|
71
77
|
body: {
|
72
78
|
inputs: prompt,
|
73
79
|
top_k: this.settings.topK,
|
@@ -102,7 +108,15 @@ class HuggingFaceTextGenerationModel extends AbstractModel_js_1.AbstractModel {
|
|
102
108
|
return Object.fromEntries(Object.entries(this.settings).filter(([key]) => eventSettingProperties.includes(key)));
|
103
109
|
}
|
104
110
|
async doGenerateTexts(prompt, options) {
|
105
|
-
|
111
|
+
return this.processTextGenerationResponse(await this.callAPI(prompt, options));
|
112
|
+
}
|
113
|
+
restoreGeneratedTexts(rawResponse) {
|
114
|
+
return this.processTextGenerationResponse((0, validateTypes_js_1.validateTypes)({
|
115
|
+
structure: rawResponse,
|
116
|
+
schema: (0, ZodSchema_js_1.zodSchema)(huggingFaceTextGenerationResponseSchema),
|
117
|
+
}));
|
118
|
+
}
|
119
|
+
processTextGenerationResponse(response) {
|
106
120
|
return {
|
107
121
|
response,
|
108
122
|
textGenerationResults: response.map((response) => ({
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { z } from "zod";
|
2
|
-
import {
|
2
|
+
import { FunctionCallOptions } from "../../core/FunctionOptions.js";
|
3
3
|
import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
|
4
4
|
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
5
5
|
import { PromptTemplateTextGenerationModel } from "../../model-function/generate-text/PromptTemplateTextGenerationModel.js";
|
@@ -40,9 +40,9 @@ export declare class HuggingFaceTextGenerationModel extends AbstractModel<Huggin
|
|
40
40
|
readonly contextWindowSize: undefined;
|
41
41
|
readonly tokenizer: undefined;
|
42
42
|
readonly countPromptTokens: undefined;
|
43
|
-
callAPI(prompt: string,
|
43
|
+
callAPI(prompt: string, callOptions: FunctionCallOptions): Promise<HuggingFaceTextGenerationResponse>;
|
44
44
|
get settingsForEvent(): Partial<HuggingFaceTextGenerationModelSettings>;
|
45
|
-
doGenerateTexts(prompt: string, options
|
45
|
+
doGenerateTexts(prompt: string, options: FunctionCallOptions): Promise<{
|
46
46
|
response: {
|
47
47
|
generated_text: string;
|
48
48
|
}[];
|
@@ -51,6 +51,24 @@ export declare class HuggingFaceTextGenerationModel extends AbstractModel<Huggin
|
|
51
51
|
finishReason: "unknown";
|
52
52
|
}[];
|
53
53
|
}>;
|
54
|
+
restoreGeneratedTexts(rawResponse: unknown): {
|
55
|
+
response: {
|
56
|
+
generated_text: string;
|
57
|
+
}[];
|
58
|
+
textGenerationResults: {
|
59
|
+
text: string;
|
60
|
+
finishReason: "unknown";
|
61
|
+
}[];
|
62
|
+
};
|
63
|
+
processTextGenerationResponse(response: HuggingFaceTextGenerationResponse): {
|
64
|
+
response: {
|
65
|
+
generated_text: string;
|
66
|
+
}[];
|
67
|
+
textGenerationResults: {
|
68
|
+
text: string;
|
69
|
+
finishReason: "unknown";
|
70
|
+
}[];
|
71
|
+
};
|
54
72
|
withPromptTemplate<INPUT_PROMPT>(promptTemplate: TextGenerationPromptTemplate<INPUT_PROMPT, string>): PromptTemplateTextGenerationModel<INPUT_PROMPT, string, HuggingFaceTextGenerationModelSettings, this>;
|
55
73
|
withSettings(additionalSettings: Partial<HuggingFaceTextGenerationModelSettings>): this;
|
56
74
|
}
|
@@ -2,6 +2,7 @@ import { z } from "zod";
|
|
2
2
|
import { callWithRetryAndThrottle } from "../../core/api/callWithRetryAndThrottle.js";
|
3
3
|
import { createJsonResponseHandler, postJsonToApi, } from "../../core/api/postToApi.js";
|
4
4
|
import { zodSchema } from "../../core/schema/ZodSchema.js";
|
5
|
+
import { validateTypes } from "../../core/schema/validateTypes.js";
|
5
6
|
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
6
7
|
import { PromptTemplateTextGenerationModel } from "../../model-function/generate-text/PromptTemplateTextGenerationModel.js";
|
7
8
|
import { textGenerationModelProperties, } from "../../model-function/generate-text/TextGenerationModel.js";
|
@@ -56,15 +57,20 @@ export class HuggingFaceTextGenerationModel extends AbstractModel {
|
|
56
57
|
get modelName() {
|
57
58
|
return this.settings.model;
|
58
59
|
}
|
59
|
-
async callAPI(prompt,
|
60
|
+
async callAPI(prompt, callOptions) {
|
60
61
|
const api = this.settings.api ?? new HuggingFaceApiConfiguration();
|
61
|
-
const abortSignal =
|
62
|
+
const abortSignal = callOptions?.run?.abortSignal;
|
62
63
|
return callWithRetryAndThrottle({
|
63
64
|
retry: api.retry,
|
64
65
|
throttle: api.throttle,
|
65
66
|
call: async () => postJsonToApi({
|
66
67
|
url: api.assembleUrl(`/${this.settings.model}`),
|
67
|
-
headers: api.headers
|
68
|
+
headers: api.headers({
|
69
|
+
functionType: callOptions.functionType,
|
70
|
+
functionId: callOptions.functionId,
|
71
|
+
run: callOptions.run,
|
72
|
+
callId: callOptions.callId,
|
73
|
+
}),
|
68
74
|
body: {
|
69
75
|
inputs: prompt,
|
70
76
|
top_k: this.settings.topK,
|
@@ -99,7 +105,15 @@ export class HuggingFaceTextGenerationModel extends AbstractModel {
|
|
99
105
|
return Object.fromEntries(Object.entries(this.settings).filter(([key]) => eventSettingProperties.includes(key)));
|
100
106
|
}
|
101
107
|
async doGenerateTexts(prompt, options) {
|
102
|
-
|
108
|
+
return this.processTextGenerationResponse(await this.callAPI(prompt, options));
|
109
|
+
}
|
110
|
+
restoreGeneratedTexts(rawResponse) {
|
111
|
+
return this.processTextGenerationResponse(validateTypes({
|
112
|
+
structure: rawResponse,
|
113
|
+
schema: zodSchema(huggingFaceTextGenerationResponseSchema),
|
114
|
+
}));
|
115
|
+
}
|
116
|
+
processTextGenerationResponse(response) {
|
103
117
|
return {
|
104
118
|
response,
|
105
119
|
textGenerationResults: response.map((response) => ({
|
@@ -6,6 +6,7 @@ const callWithRetryAndThrottle_js_1 = require("../../core/api/callWithRetryAndTh
|
|
6
6
|
const postToApi_js_1 = require("../../core/api/postToApi.cjs");
|
7
7
|
const ZodSchema_js_1 = require("../../core/schema/ZodSchema.cjs");
|
8
8
|
const parseJSON_js_1 = require("../../core/schema/parseJSON.cjs");
|
9
|
+
const validateTypes_js_1 = require("../../core/schema/validateTypes.cjs");
|
9
10
|
const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
|
10
11
|
const PromptTemplateTextStreamingModel_js_1 = require("../../model-function/generate-text/PromptTemplateTextStreamingModel.cjs");
|
11
12
|
const TextGenerationModel_js_1 = require("../../model-function/generate-text/TextGenerationModel.cjs");
|
@@ -37,16 +38,21 @@ class LlamaCppCompletionModel extends AbstractModel_js_1.AbstractModel {
|
|
37
38
|
get contextWindowSize() {
|
38
39
|
return this.settings.contextWindowSize;
|
39
40
|
}
|
40
|
-
async callAPI(prompt, options) {
|
41
|
+
async callAPI(prompt, callOptions, options) {
|
41
42
|
const api = this.settings.api ?? new LlamaCppApiConfiguration_js_1.LlamaCppApiConfiguration();
|
42
43
|
const responseFormat = options.responseFormat;
|
43
|
-
const abortSignal =
|
44
|
+
const abortSignal = callOptions.run?.abortSignal;
|
44
45
|
return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
|
45
46
|
retry: api.retry,
|
46
47
|
throttle: api.throttle,
|
47
48
|
call: async () => (0, postToApi_js_1.postJsonToApi)({
|
48
49
|
url: api.assembleUrl(`/completion`),
|
49
|
-
headers: api.headers
|
50
|
+
headers: api.headers({
|
51
|
+
functionType: callOptions.functionType,
|
52
|
+
functionId: callOptions.functionId,
|
53
|
+
run: callOptions.run,
|
54
|
+
callId: callOptions.callId,
|
55
|
+
}),
|
50
56
|
body: {
|
51
57
|
stream: responseFormat.stream,
|
52
58
|
prompt: prompt.text,
|
@@ -123,10 +129,17 @@ class LlamaCppCompletionModel extends AbstractModel_js_1.AbstractModel {
|
|
123
129
|
return tokens.length;
|
124
130
|
}
|
125
131
|
async doGenerateTexts(prompt, options) {
|
126
|
-
|
127
|
-
...options,
|
132
|
+
return this.processTextGenerationResponse(await this.callAPI(prompt, options, {
|
128
133
|
responseFormat: exports.LlamaCppCompletionResponseFormat.json,
|
129
|
-
});
|
134
|
+
}));
|
135
|
+
}
|
136
|
+
restoreGeneratedTexts(rawResponse) {
|
137
|
+
return this.processTextGenerationResponse((0, validateTypes_js_1.validateTypes)({
|
138
|
+
structure: rawResponse,
|
139
|
+
schema: (0, ZodSchema_js_1.zodSchema)(llamaCppTextGenerationResponseSchema),
|
140
|
+
}));
|
141
|
+
}
|
142
|
+
processTextGenerationResponse(response) {
|
130
143
|
return {
|
131
144
|
response,
|
132
145
|
textGenerationResults: [
|
@@ -147,8 +160,7 @@ class LlamaCppCompletionModel extends AbstractModel_js_1.AbstractModel {
|
|
147
160
|
};
|
148
161
|
}
|
149
162
|
doStreamText(prompt, options) {
|
150
|
-
return this.callAPI(prompt, {
|
151
|
-
...options,
|
163
|
+
return this.callAPI(prompt, options, {
|
152
164
|
responseFormat: exports.LlamaCppCompletionResponseFormat.deltaIterable,
|
153
165
|
});
|
154
166
|
}
|