modelfusion 0.111.0 → 0.112.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/CHANGELOG.md +11 -0
- package/README.md +41 -65
- package/core/FunctionEvent.d.ts +3 -3
- package/model-function/ModelCallEvent.d.ts +3 -3
- package/model-function/generate-text/PromptTemplateFullTextModel.cjs +2 -2
- package/model-function/generate-text/PromptTemplateFullTextModel.d.ts +3 -3
- package/model-function/generate-text/PromptTemplateFullTextModel.js +2 -2
- package/model-function/generate-text/PromptTemplateTextGenerationModel.cjs +2 -2
- package/model-function/generate-text/PromptTemplateTextGenerationModel.d.ts +3 -3
- package/model-function/generate-text/PromptTemplateTextGenerationModel.js +2 -2
- package/model-provider/mistral/MistralChatModel.d.ts +4 -4
- package/model-provider/mistral/MistralTextEmbeddingModel.d.ts +3 -3
- package/model-provider/ollama/OllamaChatModel.cjs +2 -2
- package/model-provider/ollama/OllamaChatModel.d.ts +3 -3
- package/model-provider/ollama/OllamaChatModel.js +2 -2
- package/model-provider/ollama/OllamaCompletionModel.cjs +2 -2
- package/model-provider/ollama/OllamaCompletionModel.d.ts +3 -3
- package/model-provider/ollama/OllamaCompletionModel.js +2 -2
- package/model-provider/openai/AbstractOpenAIChatModel.cjs +1 -1
- package/model-provider/openai/AbstractOpenAIChatModel.d.ts +7 -7
- package/model-provider/openai/AbstractOpenAIChatModel.js +1 -1
- package/model-provider/openai/AbstractOpenAICompletionModel.d.ts +4 -4
- package/model-provider/openai/OpenAIChatFunctionCallStructureGenerationModel.d.ts +1 -1
- package/model-provider/openai/OpenAIChatModel.d.ts +2 -2
- package/model-provider/openai/OpenAITextEmbeddingModel.d.ts +3 -3
- package/model-provider/openai-compatible/OpenAICompatibleChatModel.d.ts +2 -2
- package/package.json +1 -1
- package/tool/Tool.cjs +0 -10
- package/tool/Tool.d.ts +0 -1
- package/tool/Tool.js +0 -10
- package/tool/{generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.cjs → generate-tool-calls/TextGenerationToolCallsModel.cjs} +7 -7
- package/tool/{generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.d.ts → generate-tool-calls/TextGenerationToolCallsModel.d.ts} +6 -6
- package/tool/{generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.js → generate-tool-calls/TextGenerationToolCallsModel.js} +5 -5
- package/tool/generate-tool-calls/ToolCallsGenerationEvent.d.ts +23 -0
- package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationModel.d.ts → generate-tool-calls/ToolCallsGenerationModel.d.ts} +3 -3
- package/tool/{generate-tool-calls-or-text/ToolCallsOrTextParseError.cjs → generate-tool-calls/ToolCallsParseError.cjs} +5 -5
- package/tool/{generate-tool-calls-or-text/ToolCallsOrTextParseError.d.ts → generate-tool-calls/ToolCallsParseError.d.ts} +1 -1
- package/tool/{generate-tool-calls-or-text/ToolCallsOrTextParseError.js → generate-tool-calls/ToolCallsParseError.js} +3 -3
- package/tool/{generate-tool-calls-or-text/ToolCallsOrGenerateTextPromptTemplate.d.ts → generate-tool-calls/ToolCallsPromptTemplate.d.ts} +1 -1
- package/tool/{generate-tool-calls-or-text/generateToolCallsOrText.cjs → generate-tool-calls/generateToolCalls.cjs} +5 -5
- package/tool/{generate-tool-calls-or-text/generateToolCallsOrText.d.ts → generate-tool-calls/generateToolCalls.d.ts} +3 -3
- package/tool/{generate-tool-calls-or-text/generateToolCallsOrText.js → generate-tool-calls/generateToolCalls.js} +3 -3
- package/tool/{generate-tool-calls-or-text → generate-tool-calls}/index.cjs +6 -6
- package/tool/generate-tool-calls/index.d.ts +6 -0
- package/tool/generate-tool-calls/index.js +6 -0
- package/tool/index.cjs +2 -3
- package/tool/index.d.ts +2 -3
- package/tool/index.js +2 -3
- package/tool/use-tools/UseToolsEvent.d.ts +7 -0
- package/tool/{use-tools-or-generate-text → use-tools}/index.cjs +2 -2
- package/tool/use-tools/index.d.ts +2 -0
- package/tool/use-tools/index.js +2 -0
- package/tool/{use-tools-or-generate-text/useToolsOrGenerateText.cjs → use-tools/useTools.cjs} +6 -6
- package/tool/{use-tools-or-generate-text/useToolsOrGenerateText.d.ts → use-tools/useTools.d.ts} +2 -2
- package/tool/{use-tools-or-generate-text/useToolsOrGenerateText.js → use-tools/useTools.js} +4 -4
- package/tool/InvalidToolNameError.cjs +0 -17
- package/tool/InvalidToolNameError.d.ts +0 -7
- package/tool/InvalidToolNameError.js +0 -13
- package/tool/generate-tool-calls-or-text/ToolCallsOrTextGenerationEvent.d.ts +0 -23
- package/tool/generate-tool-calls-or-text/index.d.ts +0 -6
- package/tool/generate-tool-calls-or-text/index.js +0 -6
- package/tool/use-tools-or-generate-text/UseToolsOrGenerateTextEvent.d.ts +0 -7
- package/tool/use-tools-or-generate-text/index.d.ts +0 -2
- package/tool/use-tools-or-generate-text/index.js +0 -2
- /package/tool/{generate-tool-calls-or-text/ToolCallsOrGenerateTextPromptTemplate.cjs → generate-tool-calls/ToolCallsGenerationEvent.cjs} +0 -0
- /package/tool/{generate-tool-calls-or-text/ToolCallsOrGenerateTextPromptTemplate.js → generate-tool-calls/ToolCallsGenerationEvent.js} +0 -0
- /package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationEvent.cjs → generate-tool-calls/ToolCallsGenerationModel.cjs} +0 -0
- /package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationEvent.js → generate-tool-calls/ToolCallsGenerationModel.js} +0 -0
- /package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationModel.cjs → generate-tool-calls/ToolCallsPromptTemplate.cjs} +0 -0
- /package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationModel.js → generate-tool-calls/ToolCallsPromptTemplate.js} +0 -0
- /package/tool/{use-tools-or-generate-text/UseToolsOrGenerateTextEvent.cjs → use-tools/UseToolsEvent.cjs} +0 -0
- /package/tool/{use-tools-or-generate-text/UseToolsOrGenerateTextEvent.js → use-tools/UseToolsEvent.js} +0 -0
@@ -33,12 +33,12 @@ export declare abstract class AbstractOpenAICompletionModel<SETTINGS extends Abs
|
|
33
33
|
doGenerateTexts(prompt: string, options?: FunctionOptions): Promise<{
|
34
34
|
response: {
|
35
35
|
object: "text_completion";
|
36
|
+
model: string;
|
36
37
|
usage: {
|
37
38
|
prompt_tokens: number;
|
38
39
|
completion_tokens: number;
|
39
40
|
total_tokens: number;
|
40
41
|
};
|
41
|
-
model: string;
|
42
42
|
id: string;
|
43
43
|
created: number;
|
44
44
|
choices: {
|
@@ -111,12 +111,12 @@ declare const OpenAICompletionResponseSchema: z.ZodObject<{
|
|
111
111
|
}>;
|
112
112
|
}, "strip", z.ZodTypeAny, {
|
113
113
|
object: "text_completion";
|
114
|
+
model: string;
|
114
115
|
usage: {
|
115
116
|
prompt_tokens: number;
|
116
117
|
completion_tokens: number;
|
117
118
|
total_tokens: number;
|
118
119
|
};
|
119
|
-
model: string;
|
120
120
|
id: string;
|
121
121
|
created: number;
|
122
122
|
choices: {
|
@@ -128,12 +128,12 @@ declare const OpenAICompletionResponseSchema: z.ZodObject<{
|
|
128
128
|
system_fingerprint?: string | undefined;
|
129
129
|
}, {
|
130
130
|
object: "text_completion";
|
131
|
+
model: string;
|
131
132
|
usage: {
|
132
133
|
prompt_tokens: number;
|
133
134
|
completion_tokens: number;
|
134
135
|
total_tokens: number;
|
135
136
|
};
|
136
|
-
model: string;
|
137
137
|
id: string;
|
138
138
|
created: number;
|
139
139
|
choices: {
|
@@ -157,12 +157,12 @@ export declare const OpenAITextResponseFormat: {
|
|
157
157
|
stream: boolean;
|
158
158
|
handler: ResponseHandler<{
|
159
159
|
object: "text_completion";
|
160
|
+
model: string;
|
160
161
|
usage: {
|
161
162
|
prompt_tokens: number;
|
162
163
|
completion_tokens: number;
|
163
164
|
total_tokens: number;
|
164
165
|
};
|
165
|
-
model: string;
|
166
166
|
id: string;
|
167
167
|
created: number;
|
168
168
|
choices: {
|
@@ -45,12 +45,12 @@ OpenAIChatSettings> {
|
|
45
45
|
options?: FunctionOptions): Promise<{
|
46
46
|
response: {
|
47
47
|
object: "chat.completion";
|
48
|
+
model: string;
|
48
49
|
usage: {
|
49
50
|
prompt_tokens: number;
|
50
51
|
completion_tokens: number;
|
51
52
|
total_tokens: number;
|
52
53
|
};
|
53
|
-
model: string;
|
54
54
|
id: string;
|
55
55
|
created: number;
|
56
56
|
choices: {
|
@@ -4,7 +4,7 @@ import { PromptTemplateFullTextModel } from "../../model-function/generate-text/
|
|
4
4
|
import { TextStreamingModel } from "../../model-function/generate-text/TextGenerationModel.js";
|
5
5
|
import { TextGenerationPromptTemplate } from "../../model-function/generate-text/TextGenerationPromptTemplate.js";
|
6
6
|
import { ToolCallGenerationModel } from "../../tool/generate-tool-call/ToolCallGenerationModel.js";
|
7
|
-
import {
|
7
|
+
import { ToolCallsGenerationModel } from "../../tool/generate-tool-calls/ToolCallsGenerationModel.js";
|
8
8
|
import { AbstractOpenAIChatModel, AbstractOpenAIChatSettings, OpenAIChatPrompt, OpenAIChatResponse } from "./AbstractOpenAIChatModel.js";
|
9
9
|
import { OpenAIChatFunctionCallStructureGenerationModel } from "./OpenAIChatFunctionCallStructureGenerationModel.js";
|
10
10
|
import { TikTokenTokenizer } from "./TikTokenTokenizer.js";
|
@@ -124,7 +124,7 @@ export interface OpenAIChatSettings extends AbstractOpenAIChatSettings {
|
|
124
124
|
* ),
|
125
125
|
* ]);
|
126
126
|
*/
|
127
|
-
export declare class OpenAIChatModel extends AbstractOpenAIChatModel<OpenAIChatSettings> implements TextStreamingModel<OpenAIChatPrompt, OpenAIChatSettings>, ToolCallGenerationModel<OpenAIChatPrompt, OpenAIChatSettings>,
|
127
|
+
export declare class OpenAIChatModel extends AbstractOpenAIChatModel<OpenAIChatSettings> implements TextStreamingModel<OpenAIChatPrompt, OpenAIChatSettings>, ToolCallGenerationModel<OpenAIChatPrompt, OpenAIChatSettings>, ToolCallsGenerationModel<OpenAIChatPrompt, OpenAIChatSettings> {
|
128
128
|
constructor(settings: OpenAIChatSettings);
|
129
129
|
readonly provider: "openai";
|
130
130
|
get modelName(): OpenAIChatModelType;
|
@@ -57,11 +57,11 @@ export declare class OpenAITextEmbeddingModel extends AbstractModel<OpenAITextEm
|
|
57
57
|
embedding: number[];
|
58
58
|
index: number;
|
59
59
|
}[];
|
60
|
+
model: string;
|
60
61
|
usage: {
|
61
62
|
prompt_tokens: number;
|
62
63
|
total_tokens: number;
|
63
64
|
};
|
64
|
-
model: string;
|
65
65
|
};
|
66
66
|
embeddings: number[][];
|
67
67
|
}>;
|
@@ -100,11 +100,11 @@ declare const openAITextEmbeddingResponseSchema: z.ZodObject<{
|
|
100
100
|
embedding: number[];
|
101
101
|
index: number;
|
102
102
|
}[];
|
103
|
+
model: string;
|
103
104
|
usage: {
|
104
105
|
prompt_tokens: number;
|
105
106
|
total_tokens: number;
|
106
107
|
};
|
107
|
-
model: string;
|
108
108
|
}, {
|
109
109
|
object: "list";
|
110
110
|
data: {
|
@@ -112,11 +112,11 @@ declare const openAITextEmbeddingResponseSchema: z.ZodObject<{
|
|
112
112
|
embedding: number[];
|
113
113
|
index: number;
|
114
114
|
}[];
|
115
|
+
model: string;
|
115
116
|
usage: {
|
116
117
|
prompt_tokens: number;
|
117
118
|
total_tokens: number;
|
118
119
|
};
|
119
|
-
model: string;
|
120
120
|
}>;
|
121
121
|
export type OpenAITextEmbeddingResponse = z.infer<typeof openAITextEmbeddingResponseSchema>;
|
122
122
|
export {};
|
@@ -4,7 +4,7 @@ import { PromptTemplateFullTextModel } from "../../model-function/generate-text/
|
|
4
4
|
import { TextStreamingModel } from "../../model-function/generate-text/TextGenerationModel.js";
|
5
5
|
import { TextGenerationPromptTemplate } from "../../model-function/generate-text/TextGenerationPromptTemplate.js";
|
6
6
|
import { ToolCallGenerationModel } from "../../tool/generate-tool-call/ToolCallGenerationModel.js";
|
7
|
-
import {
|
7
|
+
import { ToolCallsGenerationModel } from "../../tool/generate-tool-calls/ToolCallsGenerationModel.js";
|
8
8
|
import { AbstractOpenAIChatModel, AbstractOpenAIChatSettings, OpenAIChatPrompt } from "../openai/AbstractOpenAIChatModel.js";
|
9
9
|
import { OpenAICompatibleProviderName } from "./OpenAICompatibleProviderName.js";
|
10
10
|
export interface OpenAICompatibleChatSettings extends AbstractOpenAIChatSettings {
|
@@ -18,7 +18,7 @@ export interface OpenAICompatibleChatSettings extends AbstractOpenAIChatSettings
|
|
18
18
|
*
|
19
19
|
* @see https://platform.openai.com/docs/api-reference/chat/create
|
20
20
|
*/
|
21
|
-
export declare class OpenAICompatibleChatModel extends AbstractOpenAIChatModel<OpenAICompatibleChatSettings> implements TextStreamingModel<OpenAIChatPrompt, OpenAICompatibleChatSettings>, ToolCallGenerationModel<OpenAIChatPrompt, OpenAICompatibleChatSettings>,
|
21
|
+
export declare class OpenAICompatibleChatModel extends AbstractOpenAIChatModel<OpenAICompatibleChatSettings> implements TextStreamingModel<OpenAIChatPrompt, OpenAICompatibleChatSettings>, ToolCallGenerationModel<OpenAIChatPrompt, OpenAICompatibleChatSettings>, ToolCallsGenerationModel<OpenAIChatPrompt, OpenAICompatibleChatSettings> {
|
22
22
|
constructor(settings: OpenAICompatibleChatSettings);
|
23
23
|
get provider(): OpenAICompatibleProviderName;
|
24
24
|
get modelName(): string;
|
package/package.json
CHANGED
package/tool/Tool.cjs
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.Tool = void 0;
|
4
|
-
const InvalidToolNameError_js_1 = require("./InvalidToolNameError.cjs");
|
5
|
-
const namePattern = /^[a-zA-Z0-9_-]{1,64}$/;
|
6
4
|
/**
|
7
5
|
* A tool is a function with a name, description and defined inputs that can be used
|
8
6
|
* by agents and chatbots.
|
@@ -11,7 +9,6 @@ class Tool {
|
|
11
9
|
constructor({ name, description, parameters, returnType, execute, }) {
|
12
10
|
/**
|
13
11
|
* The name of the tool.
|
14
|
-
* It has to be a function name that matches the regular expression pattern '^[a-zA-Z0-9_-]{1,64}$'.
|
15
12
|
* Should be understandable for language models and unique among the tools that they know.
|
16
13
|
*/
|
17
14
|
Object.defineProperty(this, "name", {
|
@@ -57,13 +54,6 @@ class Tool {
|
|
57
54
|
writable: true,
|
58
55
|
value: void 0
|
59
56
|
});
|
60
|
-
// check that the name is a valid function name:
|
61
|
-
if (!namePattern.test(name)) {
|
62
|
-
throw new InvalidToolNameError_js_1.InvalidToolNameError({
|
63
|
-
toolName: name,
|
64
|
-
namePattern,
|
65
|
-
});
|
66
|
-
}
|
67
57
|
this.name = name;
|
68
58
|
this.description = description;
|
69
59
|
this.parameters = parameters;
|
package/tool/Tool.d.ts
CHANGED
@@ -9,7 +9,6 @@ import { ToolDefinition } from "./ToolDefinition.js";
|
|
9
9
|
export declare class Tool<NAME extends string, PARAMETERS, RESULT> implements ToolDefinition<NAME, PARAMETERS> {
|
10
10
|
/**
|
11
11
|
* The name of the tool.
|
12
|
-
* It has to be a function name that matches the regular expression pattern '^[a-zA-Z0-9_-]{1,64}$'.
|
13
12
|
* Should be understandable for language models and unique among the tools that they know.
|
14
13
|
*/
|
15
14
|
readonly name: NAME;
|
package/tool/Tool.js
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
import { InvalidToolNameError } from "./InvalidToolNameError.js";
|
2
|
-
const namePattern = /^[a-zA-Z0-9_-]{1,64}$/;
|
3
1
|
/**
|
4
2
|
* A tool is a function with a name, description and defined inputs that can be used
|
5
3
|
* by agents and chatbots.
|
@@ -8,7 +6,6 @@ export class Tool {
|
|
8
6
|
constructor({ name, description, parameters, returnType, execute, }) {
|
9
7
|
/**
|
10
8
|
* The name of the tool.
|
11
|
-
* It has to be a function name that matches the regular expression pattern '^[a-zA-Z0-9_-]{1,64}$'.
|
12
9
|
* Should be understandable for language models and unique among the tools that they know.
|
13
10
|
*/
|
14
11
|
Object.defineProperty(this, "name", {
|
@@ -54,13 +51,6 @@ export class Tool {
|
|
54
51
|
writable: true,
|
55
52
|
value: void 0
|
56
53
|
});
|
57
|
-
// check that the name is a valid function name:
|
58
|
-
if (!namePattern.test(name)) {
|
59
|
-
throw new InvalidToolNameError({
|
60
|
-
toolName: name,
|
61
|
-
namePattern,
|
62
|
-
});
|
63
|
-
}
|
64
54
|
this.name = name;
|
65
55
|
this.description = description;
|
66
56
|
this.parameters = parameters;
|
@@ -1,9 +1,9 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
3
|
+
exports.TextGenerationToolCallsModel = void 0;
|
4
4
|
const generateText_js_1 = require("../../model-function/generate-text/generateText.cjs");
|
5
|
-
const
|
6
|
-
class
|
5
|
+
const ToolCallsParseError_js_1 = require("./ToolCallsParseError.cjs");
|
6
|
+
class TextGenerationToolCallsModel {
|
7
7
|
constructor({ model, template, }) {
|
8
8
|
Object.defineProperty(this, "model", {
|
9
9
|
enumerable: true,
|
@@ -29,7 +29,7 @@ class TextGenerationToolCallsOrGenerateTextModel {
|
|
29
29
|
get settingsForEvent() {
|
30
30
|
return this.model.settingsForEvent;
|
31
31
|
}
|
32
|
-
async
|
32
|
+
async doGenerateToolCalls(tools, prompt, options) {
|
33
33
|
const { response, text: generatedText, metadata, } = await (0, generateText_js_1.generateText)(this.model, this.template.createPrompt(prompt, tools), {
|
34
34
|
...options,
|
35
35
|
fullResponse: true,
|
@@ -44,17 +44,17 @@ class TextGenerationToolCallsOrGenerateTextModel {
|
|
44
44
|
};
|
45
45
|
}
|
46
46
|
catch (error) {
|
47
|
-
throw new
|
47
|
+
throw new ToolCallsParseError_js_1.ToolCallsParseError({
|
48
48
|
valueText: generatedText,
|
49
49
|
cause: error,
|
50
50
|
});
|
51
51
|
}
|
52
52
|
}
|
53
53
|
withSettings(additionalSettings) {
|
54
|
-
return new
|
54
|
+
return new TextGenerationToolCallsModel({
|
55
55
|
model: this.model.withSettings(additionalSettings),
|
56
56
|
template: this.template,
|
57
57
|
});
|
58
58
|
}
|
59
59
|
}
|
60
|
-
exports.
|
60
|
+
exports.TextGenerationToolCallsModel = TextGenerationToolCallsModel;
|
@@ -1,19 +1,19 @@
|
|
1
1
|
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
2
2
|
import { TextGenerationModel } from "../../model-function/generate-text/TextGenerationModel.js";
|
3
3
|
import { ToolDefinition } from "../ToolDefinition.js";
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
export declare class
|
4
|
+
import { ToolCallsGenerationModel, ToolCallsGenerationModelSettings } from "./ToolCallsGenerationModel.js";
|
5
|
+
import { ToolCallsPromptTemplate } from "./ToolCallsPromptTemplate.js";
|
6
|
+
export declare class TextGenerationToolCallsModel<SOURCE_PROMPT, TARGET_PROMPT, MODEL extends TextGenerationModel<TARGET_PROMPT, ToolCallsGenerationModelSettings>> implements ToolCallsGenerationModel<SOURCE_PROMPT, MODEL["settings"]> {
|
7
7
|
private readonly model;
|
8
8
|
private readonly template;
|
9
9
|
constructor({ model, template, }: {
|
10
10
|
model: MODEL;
|
11
|
-
template:
|
11
|
+
template: ToolCallsPromptTemplate<SOURCE_PROMPT, TARGET_PROMPT>;
|
12
12
|
});
|
13
13
|
get modelInformation(): import("../../index.js").ModelInformation;
|
14
|
-
get settings():
|
14
|
+
get settings(): ToolCallsGenerationModelSettings;
|
15
15
|
get settingsForEvent(): Partial<MODEL["settings"]>;
|
16
|
-
|
16
|
+
doGenerateToolCalls(tools: Array<ToolDefinition<string, unknown>>, prompt: SOURCE_PROMPT, options?: FunctionOptions): Promise<{
|
17
17
|
response: unknown;
|
18
18
|
text: string | null;
|
19
19
|
toolCalls: {
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { generateText } from "../../model-function/generate-text/generateText.js";
|
2
|
-
import {
|
3
|
-
export class
|
2
|
+
import { ToolCallsParseError } from "./ToolCallsParseError.js";
|
3
|
+
export class TextGenerationToolCallsModel {
|
4
4
|
constructor({ model, template, }) {
|
5
5
|
Object.defineProperty(this, "model", {
|
6
6
|
enumerable: true,
|
@@ -26,7 +26,7 @@ export class TextGenerationToolCallsOrGenerateTextModel {
|
|
26
26
|
get settingsForEvent() {
|
27
27
|
return this.model.settingsForEvent;
|
28
28
|
}
|
29
|
-
async
|
29
|
+
async doGenerateToolCalls(tools, prompt, options) {
|
30
30
|
const { response, text: generatedText, metadata, } = await generateText(this.model, this.template.createPrompt(prompt, tools), {
|
31
31
|
...options,
|
32
32
|
fullResponse: true,
|
@@ -41,14 +41,14 @@ export class TextGenerationToolCallsOrGenerateTextModel {
|
|
41
41
|
};
|
42
42
|
}
|
43
43
|
catch (error) {
|
44
|
-
throw new
|
44
|
+
throw new ToolCallsParseError({
|
45
45
|
valueText: generatedText,
|
46
46
|
cause: error,
|
47
47
|
});
|
48
48
|
}
|
49
49
|
}
|
50
50
|
withSettings(additionalSettings) {
|
51
|
-
return new
|
51
|
+
return new TextGenerationToolCallsModel({
|
52
52
|
model: this.model.withSettings(additionalSettings),
|
53
53
|
template: this.template,
|
54
54
|
});
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { BaseModelCallFinishedEvent, BaseModelCallStartedEvent } from "../../model-function/ModelCallEvent.js";
|
2
|
+
export interface ToolCallsGenerationStartedEvent extends BaseModelCallStartedEvent {
|
3
|
+
functionType: "generate-tool-calls";
|
4
|
+
}
|
5
|
+
export type ToolCallsGenerationFinishedEventResult = {
|
6
|
+
status: "success";
|
7
|
+
response: unknown;
|
8
|
+
value: unknown;
|
9
|
+
usage?: {
|
10
|
+
promptTokens: number;
|
11
|
+
completionTokens: number;
|
12
|
+
totalTokens: number;
|
13
|
+
};
|
14
|
+
} | {
|
15
|
+
status: "error";
|
16
|
+
error: unknown;
|
17
|
+
} | {
|
18
|
+
status: "abort";
|
19
|
+
};
|
20
|
+
export type ToolCallsGenerationFinishedEvent = BaseModelCallFinishedEvent & {
|
21
|
+
functionType: "generate-tool-calls";
|
22
|
+
result: ToolCallsGenerationFinishedEventResult;
|
23
|
+
};
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
2
2
|
import { Model, ModelSettings } from "../../model-function/Model.js";
|
3
3
|
import { ToolDefinition } from "../ToolDefinition.js";
|
4
|
-
export interface
|
4
|
+
export interface ToolCallsGenerationModelSettings extends ModelSettings {
|
5
5
|
}
|
6
|
-
export interface
|
7
|
-
|
6
|
+
export interface ToolCallsGenerationModel<PROMPT, SETTINGS extends ToolCallsGenerationModelSettings> extends Model<SETTINGS> {
|
7
|
+
doGenerateToolCalls(tools: Array<ToolDefinition<string, unknown>>, prompt: PROMPT, options?: FunctionOptions): PromiseLike<{
|
8
8
|
response: unknown;
|
9
9
|
text: string | null;
|
10
10
|
toolCalls: Array<{
|
@@ -1,10 +1,10 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
3
|
+
exports.ToolCallsParseError = void 0;
|
4
4
|
const getErrorMessage_js_1 = require("../../util/getErrorMessage.cjs");
|
5
|
-
class
|
5
|
+
class ToolCallsParseError extends Error {
|
6
6
|
constructor({ valueText, cause }) {
|
7
|
-
super(`Tool calls
|
7
|
+
super(`Tool calls parsing failed. ` +
|
8
8
|
`Value: ${valueText}.\n` +
|
9
9
|
`Error message: ${(0, getErrorMessage_js_1.getErrorMessage)(cause)}`);
|
10
10
|
Object.defineProperty(this, "valueText", {
|
@@ -19,7 +19,7 @@ class ToolCallsOrTextParseError extends Error {
|
|
19
19
|
writable: true,
|
20
20
|
value: void 0
|
21
21
|
});
|
22
|
-
this.name = "
|
22
|
+
this.name = "ToolCallsParseError";
|
23
23
|
this.cause = cause;
|
24
24
|
this.valueText = valueText;
|
25
25
|
}
|
@@ -33,4 +33,4 @@ class ToolCallsOrTextParseError extends Error {
|
|
33
33
|
};
|
34
34
|
}
|
35
35
|
}
|
36
|
-
exports.
|
36
|
+
exports.ToolCallsParseError = ToolCallsParseError;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { getErrorMessage } from "../../util/getErrorMessage.js";
|
2
|
-
export class
|
2
|
+
export class ToolCallsParseError extends Error {
|
3
3
|
constructor({ valueText, cause }) {
|
4
|
-
super(`Tool calls
|
4
|
+
super(`Tool calls parsing failed. ` +
|
5
5
|
`Value: ${valueText}.\n` +
|
6
6
|
`Error message: ${getErrorMessage(cause)}`);
|
7
7
|
Object.defineProperty(this, "valueText", {
|
@@ -16,7 +16,7 @@ export class ToolCallsOrTextParseError extends Error {
|
|
16
16
|
writable: true,
|
17
17
|
value: void 0
|
18
18
|
});
|
19
|
-
this.name = "
|
19
|
+
this.name = "ToolCallsParseError";
|
20
20
|
this.cause = cause;
|
21
21
|
this.valueText = valueText;
|
22
22
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ToolDefinition } from "../ToolDefinition.js";
|
2
|
-
export interface
|
2
|
+
export interface ToolCallsPromptTemplate<SOURCE_PROMPT, TARGET_PROMPT> {
|
3
3
|
createPrompt: (prompt: SOURCE_PROMPT, tools: Array<ToolDefinition<string, unknown>>) => TARGET_PROMPT;
|
4
4
|
extractToolCallsAndText: (response: string) => {
|
5
5
|
text: string | null;
|
@@ -1,21 +1,21 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
3
|
+
exports.generateToolCalls = void 0;
|
4
4
|
const executeStandardCall_js_1 = require("../../model-function/executeStandardCall.cjs");
|
5
5
|
const NoSuchToolDefinitionError_js_1 = require("../NoSuchToolDefinitionError.cjs");
|
6
6
|
const ToolCallArgumentsValidationError_js_1 = require("../ToolCallArgumentsValidationError.cjs");
|
7
|
-
async function
|
7
|
+
async function generateToolCalls(model, tools, prompt, options) {
|
8
8
|
// Note: PROMPT must not be a function.
|
9
9
|
const expandedPrompt = typeof prompt === "function"
|
10
10
|
? prompt(tools)
|
11
11
|
: prompt;
|
12
12
|
const fullResponse = await (0, executeStandardCall_js_1.executeStandardCall)({
|
13
|
-
functionType: "generate-tool-calls
|
13
|
+
functionType: "generate-tool-calls",
|
14
14
|
input: expandedPrompt,
|
15
15
|
model,
|
16
16
|
options,
|
17
17
|
generateResponse: async (options) => {
|
18
|
-
const result = await model.
|
18
|
+
const result = await model.doGenerateToolCalls(tools, expandedPrompt, options);
|
19
19
|
const { text, toolCalls: rawToolCalls } = result;
|
20
20
|
// no tool calls:
|
21
21
|
if (rawToolCalls == null) {
|
@@ -60,4 +60,4 @@ async function generateToolCallsOrText(model, tools, prompt, options) {
|
|
60
60
|
});
|
61
61
|
return options?.fullResponse ? fullResponse : fullResponse.value;
|
62
62
|
}
|
63
|
-
exports.
|
63
|
+
exports.generateToolCalls = generateToolCalls;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
2
2
|
import { ModelCallMetadata } from "../../model-function/ModelCallMetadata.js";
|
3
3
|
import { ToolDefinition } from "../ToolDefinition.js";
|
4
|
-
import {
|
4
|
+
import { ToolCallsGenerationModel, ToolCallsGenerationModelSettings } from "./ToolCallsGenerationModel.js";
|
5
5
|
type ToolCallDefinitionArray<T extends ToolDefinition<any, any>[]> = T;
|
6
6
|
type ToToolCallDefinitionMap<T extends ToolCallDefinitionArray<ToolDefinition<any, any>[]>> = {
|
7
7
|
[K in T[number]["name"]]: Extract<T[number], ToolDefinition<K, any>>;
|
@@ -14,13 +14,13 @@ type ToToolCallUnion<T> = {
|
|
14
14
|
} : never;
|
15
15
|
}[keyof T];
|
16
16
|
type ToOutputValue<TOOL_CALLS extends ToolCallDefinitionArray<ToolDefinition<any, any>[]>> = ToToolCallUnion<ToToolCallDefinitionMap<TOOL_CALLS>>;
|
17
|
-
export declare function
|
17
|
+
export declare function generateToolCalls<TOOLS extends Array<ToolDefinition<any, any>>, PROMPT>(model: ToolCallsGenerationModel<PROMPT, ToolCallsGenerationModelSettings>, tools: TOOLS, prompt: PROMPT | ((tools: TOOLS) => PROMPT), options?: FunctionOptions & {
|
18
18
|
fullResponse?: false;
|
19
19
|
}): Promise<{
|
20
20
|
text: string | null;
|
21
21
|
toolCalls: Array<ToOutputValue<TOOLS>> | null;
|
22
22
|
}>;
|
23
|
-
export declare function
|
23
|
+
export declare function generateToolCalls<TOOLS extends ToolDefinition<any, any>[], PROMPT>(model: ToolCallsGenerationModel<PROMPT, ToolCallsGenerationModelSettings>, tools: TOOLS, prompt: PROMPT | ((tools: TOOLS) => PROMPT), options: FunctionOptions & {
|
24
24
|
fullResponse?: boolean;
|
25
25
|
}): Promise<{
|
26
26
|
value: {
|
@@ -1,18 +1,18 @@
|
|
1
1
|
import { executeStandardCall } from "../../model-function/executeStandardCall.js";
|
2
2
|
import { NoSuchToolDefinitionError } from "../NoSuchToolDefinitionError.js";
|
3
3
|
import { ToolCallArgumentsValidationError } from "../ToolCallArgumentsValidationError.js";
|
4
|
-
export async function
|
4
|
+
export async function generateToolCalls(model, tools, prompt, options) {
|
5
5
|
// Note: PROMPT must not be a function.
|
6
6
|
const expandedPrompt = typeof prompt === "function"
|
7
7
|
? prompt(tools)
|
8
8
|
: prompt;
|
9
9
|
const fullResponse = await executeStandardCall({
|
10
|
-
functionType: "generate-tool-calls
|
10
|
+
functionType: "generate-tool-calls",
|
11
11
|
input: expandedPrompt,
|
12
12
|
model,
|
13
13
|
options,
|
14
14
|
generateResponse: async (options) => {
|
15
|
-
const result = await model.
|
15
|
+
const result = await model.doGenerateToolCalls(tools, expandedPrompt, options);
|
16
16
|
const { text, toolCalls: rawToolCalls } = result;
|
17
17
|
// no tool calls:
|
18
18
|
if (rawToolCalls == null) {
|
@@ -14,9 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
15
|
};
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
-
__exportStar(require("./
|
18
|
-
__exportStar(require("./
|
19
|
-
__exportStar(require("./
|
20
|
-
__exportStar(require("./
|
21
|
-
__exportStar(require("./
|
22
|
-
__exportStar(require("./
|
17
|
+
__exportStar(require("./TextGenerationToolCallsModel.cjs"), exports);
|
18
|
+
__exportStar(require("./ToolCallsGenerationEvent.cjs"), exports);
|
19
|
+
__exportStar(require("./ToolCallsGenerationModel.cjs"), exports);
|
20
|
+
__exportStar(require("./ToolCallsPromptTemplate.cjs"), exports);
|
21
|
+
__exportStar(require("./ToolCallsParseError.cjs"), exports);
|
22
|
+
__exportStar(require("./generateToolCalls.cjs"), exports);
|
@@ -0,0 +1,6 @@
|
|
1
|
+
export * from "./TextGenerationToolCallsModel.js";
|
2
|
+
export * from "./ToolCallsGenerationEvent.js";
|
3
|
+
export * from "./ToolCallsGenerationModel.js";
|
4
|
+
export * from "./ToolCallsPromptTemplate.js";
|
5
|
+
export * from "./ToolCallsParseError.js";
|
6
|
+
export * from "./generateToolCalls.js";
|
@@ -0,0 +1,6 @@
|
|
1
|
+
export * from "./TextGenerationToolCallsModel.js";
|
2
|
+
export * from "./ToolCallsGenerationEvent.js";
|
3
|
+
export * from "./ToolCallsGenerationModel.js";
|
4
|
+
export * from "./ToolCallsPromptTemplate.js";
|
5
|
+
export * from "./ToolCallsParseError.js";
|
6
|
+
export * from "./generateToolCalls.js";
|
package/tool/index.cjs
CHANGED
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
15
|
};
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
-
__exportStar(require("./InvalidToolNameError.cjs"), exports);
|
18
17
|
__exportStar(require("./NoSuchToolDefinitionError.cjs"), exports);
|
19
18
|
__exportStar(require("./Tool.cjs"), exports);
|
20
19
|
__exportStar(require("./ToolCall.cjs"), exports);
|
@@ -27,6 +26,6 @@ __exportStar(require("./ToolExecutionError.cjs"), exports);
|
|
27
26
|
__exportStar(require("./WebSearchTool.cjs"), exports);
|
28
27
|
__exportStar(require("./execute-tool/index.cjs"), exports);
|
29
28
|
__exportStar(require("./generate-tool-call/index.cjs"), exports);
|
30
|
-
__exportStar(require("./generate-tool-calls
|
29
|
+
__exportStar(require("./generate-tool-calls/index.cjs"), exports);
|
31
30
|
__exportStar(require("./use-tool/index.cjs"), exports);
|
32
|
-
__exportStar(require("./use-tools
|
31
|
+
__exportStar(require("./use-tools/index.cjs"), exports);
|
package/tool/index.d.ts
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
export * from "./InvalidToolNameError.js";
|
2
1
|
export * from "./NoSuchToolDefinitionError.js";
|
3
2
|
export * from "./Tool.js";
|
4
3
|
export * from "./ToolCall.js";
|
@@ -11,6 +10,6 @@ export * from "./ToolExecutionError.js";
|
|
11
10
|
export * from "./WebSearchTool.js";
|
12
11
|
export * from "./execute-tool/index.js";
|
13
12
|
export * from "./generate-tool-call/index.js";
|
14
|
-
export * from "./generate-tool-calls
|
13
|
+
export * from "./generate-tool-calls/index.js";
|
15
14
|
export * from "./use-tool/index.js";
|
16
|
-
export * from "./use-tools
|
15
|
+
export * from "./use-tools/index.js";
|
package/tool/index.js
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
export * from "./InvalidToolNameError.js";
|
2
1
|
export * from "./NoSuchToolDefinitionError.js";
|
3
2
|
export * from "./Tool.js";
|
4
3
|
export * from "./ToolCall.js";
|
@@ -11,6 +10,6 @@ export * from "./ToolExecutionError.js";
|
|
11
10
|
export * from "./WebSearchTool.js";
|
12
11
|
export * from "./execute-tool/index.js";
|
13
12
|
export * from "./generate-tool-call/index.js";
|
14
|
-
export * from "./generate-tool-calls
|
13
|
+
export * from "./generate-tool-calls/index.js";
|
15
14
|
export * from "./use-tool/index.js";
|
16
|
-
export * from "./use-tools
|
15
|
+
export * from "./use-tools/index.js";
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { BaseFunctionFinishedEvent, BaseFunctionStartedEvent } from "../../core/FunctionEvent.js";
|
2
|
+
export interface useToolsStartedEvent extends BaseFunctionStartedEvent {
|
3
|
+
functionType: "use-tools";
|
4
|
+
}
|
5
|
+
export interface useToolsFinishedEvent extends BaseFunctionFinishedEvent {
|
6
|
+
functionType: "use-tools";
|
7
|
+
}
|
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
15
|
};
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
-
__exportStar(require("./
|
18
|
-
__exportStar(require("./
|
17
|
+
__exportStar(require("./UseToolsEvent.cjs"), exports);
|
18
|
+
__exportStar(require("./useTools.cjs"), exports);
|