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
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## v0.112.0 - 2024-01-02
|
4
|
+
|
5
|
+
### Changed
|
6
|
+
|
7
|
+
- **breaking change**: renamed `useToolsOrGenerateText` to `useTools`
|
8
|
+
- **breaking change**: renamed `generateToolCallsOrText` to `generateToolCalls`
|
9
|
+
|
10
|
+
### Removed
|
11
|
+
|
12
|
+
- Restriction on tool names. OpenAI tool calls do not have such a restriction.
|
13
|
+
|
3
14
|
## v0.111.0 - 2024-01-01
|
4
15
|
|
5
16
|
Reworked API configuration support.
|
package/README.md
CHANGED
@@ -328,67 +328,7 @@ Providers: [OpenAI](https://modelfusion.dev/integration/model-provider/openai),
|
|
328
328
|
|
329
329
|
Tools are functions that can be executed by an AI model. They are useful for building chatbots and agents.
|
330
330
|
|
331
|
-
Predefined tools: [Math.js](https://modelfusion.dev/guide/tools/predefined-tools/mathjs), [SerpAPI](https://modelfusion.dev/guide/tools/predefined-tools/serpapi), [Google Custom Search](https://modelfusion.dev/guide/tools/predefined-tools/google-custom-search)
|
332
|
-
|
333
|
-
#### [Creating Tools](https://modelfusion.dev/guide/tools/create-tools)
|
334
|
-
|
335
|
-
A tool is comprised of an async execute function, a name, a description, and a schema for the input parameters.
|
336
|
-
|
337
|
-
```ts
|
338
|
-
const calculator = new Tool({
|
339
|
-
name: "calculator",
|
340
|
-
description: "Execute a calculation",
|
341
|
-
|
342
|
-
parameters: zodSchema(
|
343
|
-
z.object({
|
344
|
-
a: z.number().describe("The first number."),
|
345
|
-
b: z.number().describe("The second number."),
|
346
|
-
operator: z
|
347
|
-
.enum(["+", "-", "*", "/"])
|
348
|
-
.describe("The operator (+, -, *, /)."),
|
349
|
-
})
|
350
|
-
),
|
351
|
-
|
352
|
-
execute: async ({ a, b, operator }) => {
|
353
|
-
switch (operator) {
|
354
|
-
case "+":
|
355
|
-
return a + b;
|
356
|
-
case "-":
|
357
|
-
return a - b;
|
358
|
-
case "*":
|
359
|
-
return a * b;
|
360
|
-
case "/":
|
361
|
-
return a / b;
|
362
|
-
default:
|
363
|
-
throw new Error(`Unknown operator: ${operator}`);
|
364
|
-
}
|
365
|
-
},
|
366
|
-
});
|
367
|
-
```
|
368
|
-
|
369
|
-
#### [generateToolCall](https://modelfusion.dev/guide/tools/generate-tool-call)
|
370
|
-
|
371
|
-
With `generateToolCall`, you can generate a tool call for a specific tool with a language model that supports tools calls (e.g. OpenAI Chat). This function does not execute the tools.
|
372
|
-
|
373
|
-
```ts
|
374
|
-
const { id, name, args } = await generateToolCall(
|
375
|
-
openai.ChatTextGenerator({ model: "gpt-3.5-turbo" }),
|
376
|
-
calculator,
|
377
|
-
[openai.ChatMessage.user("What's fourteen times twelve?")]
|
378
|
-
);
|
379
|
-
```
|
380
|
-
|
381
|
-
#### [generateToolCallsOrText](https://modelfusion.dev/guide/tools/generate-tool-calls-or-text)
|
382
|
-
|
383
|
-
With `generateToolCallsOrText`, you can ask a language model to generate several tool calls as well as text. The model will choose which tools (if any) should be called with which arguments. Both the text and the tool calls are optional. This function does not execute the tools.
|
384
|
-
|
385
|
-
```ts
|
386
|
-
const { text, toolCalls } = await generateToolCallsOrText(
|
387
|
-
openai.ChatTextGenerator({ model: "gpt-3.5-turbo" }),
|
388
|
-
[toolA, toolB, toolC],
|
389
|
-
[openai.ChatMessage.user(query)]
|
390
|
-
);
|
391
|
-
```
|
331
|
+
Predefined tools: [Math.js](https://modelfusion.dev/guide/tools/predefined-tools/mathjs), [MediaWiki Search](https://modelfusion.dev/guide/tools/predefined-tools/mediawiki-search), [SerpAPI](https://modelfusion.dev/guide/tools/predefined-tools/serpapi), [Google Custom Search](https://modelfusion.dev/guide/tools/predefined-tools/google-custom-search)
|
392
332
|
|
393
333
|
#### [executeTool](https://modelfusion.dev/guide/tools/execute-tool)
|
394
334
|
|
@@ -420,21 +360,57 @@ console.log(`Ok:`, ok);
|
|
420
360
|
console.log(`Result or Error:`, result);
|
421
361
|
```
|
422
362
|
|
423
|
-
#### [
|
363
|
+
#### [useTools](https://modelfusion.dev/guide/tools/use-tools-or-generate-text)
|
424
364
|
|
425
|
-
With `
|
365
|
+
With `useTools`, you can ask a language model to generate several tool calls as well as text. The model will choose which tools (if any) should be called with which arguments. Both the text and the tool calls are optional. This function executes the tools.
|
426
366
|
|
427
367
|
```ts
|
428
|
-
const { text, toolResults } = await
|
368
|
+
const { text, toolResults } = await useTools(
|
429
369
|
openai.ChatTextGenerator({ model: "gpt-3.5-turbo" }),
|
430
370
|
[calculator /* ... */],
|
431
371
|
[openai.ChatMessage.user("What's fourteen times twelve?")]
|
432
372
|
);
|
433
373
|
```
|
434
374
|
|
375
|
+
#### [Creating Tools](https://modelfusion.dev/guide/tools/create-tools)
|
376
|
+
|
377
|
+
A tool is comprised of an async execute function, a name, a description, and a schema for the input parameters.
|
378
|
+
|
379
|
+
```ts
|
380
|
+
const calculator = new Tool({
|
381
|
+
name: "calculator",
|
382
|
+
description: "Execute a calculation",
|
383
|
+
|
384
|
+
parameters: zodSchema(
|
385
|
+
z.object({
|
386
|
+
a: z.number().describe("The first number."),
|
387
|
+
b: z.number().describe("The second number."),
|
388
|
+
operator: z
|
389
|
+
.enum(["+", "-", "*", "/"])
|
390
|
+
.describe("The operator (+, -, *, /)."),
|
391
|
+
})
|
392
|
+
),
|
393
|
+
|
394
|
+
execute: async ({ a, b, operator }) => {
|
395
|
+
switch (operator) {
|
396
|
+
case "+":
|
397
|
+
return a + b;
|
398
|
+
case "-":
|
399
|
+
return a - b;
|
400
|
+
case "*":
|
401
|
+
return a * b;
|
402
|
+
case "/":
|
403
|
+
return a / b;
|
404
|
+
default:
|
405
|
+
throw new Error(`Unknown operator: ${operator}`);
|
406
|
+
}
|
407
|
+
},
|
408
|
+
});
|
409
|
+
```
|
410
|
+
|
435
411
|
#### [Agent Loop](https://modelfusion.dev/guide/tools/agent-loop)
|
436
412
|
|
437
|
-
You can use `
|
413
|
+
You can use `useTools` to implement an agent loop that responds to user messages and executes tools. [Learn more](https://modelfusion.dev/guide/tools/agent-loop).
|
438
414
|
|
439
415
|
### [Vector Indices](https://modelfusion.dev/guide/vector-index)
|
440
416
|
|
package/core/FunctionEvent.d.ts
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
import { ExtensionFunctionStartedEvent, ExtensionFunctionFinishedEvent } from "./ExtensionFunctionEvent.js";
|
2
1
|
import { ModelCallFinishedEvent, ModelCallStartedEvent } from "../model-function/ModelCallEvent.js";
|
3
2
|
import { RetrieveFinishedEvent, RetrieveStartedEvent } from "../retriever/RetrieveEvent.js";
|
4
3
|
import { ExecuteToolFinishedEvent, ExecuteToolStartedEvent } from "../tool/execute-tool/ExecuteToolEvent.js";
|
5
4
|
import { UseToolFinishedEvent, UseToolStartedEvent } from "../tool/use-tool/UseToolEvent.js";
|
6
|
-
import {
|
5
|
+
import { useToolsFinishedEvent, useToolsStartedEvent } from "../tool/use-tools/UseToolsEvent.js";
|
7
6
|
import { UpsertIntoVectorIndexFinishedEvent, UpsertIntoVectorIndexStartedEvent } from "../vector-index/UpsertIntoVectorIndexEvent.js";
|
8
7
|
import { ExecuteFunctionFinishedEvent, ExecuteFunctionStartedEvent } from "./ExecuteFunctionEvent.js";
|
8
|
+
import { ExtensionFunctionFinishedEvent, ExtensionFunctionStartedEvent } from "./ExtensionFunctionEvent.js";
|
9
9
|
export interface BaseFunctionEvent {
|
10
10
|
/**
|
11
11
|
* Unique identifier for the function call.
|
@@ -82,4 +82,4 @@ export interface BaseFunctionFinishedEvent extends BaseFunctionEvent {
|
|
82
82
|
*/
|
83
83
|
result: BaseFunctionFinishedEventResult;
|
84
84
|
}
|
85
|
-
export type FunctionEvent = ExecuteFunctionStartedEvent | ExecuteFunctionFinishedEvent | ExecuteToolStartedEvent | ExecuteToolFinishedEvent | ExtensionFunctionStartedEvent | ExtensionFunctionFinishedEvent | ModelCallStartedEvent | ModelCallFinishedEvent | RetrieveStartedEvent | RetrieveFinishedEvent | UpsertIntoVectorIndexStartedEvent | UpsertIntoVectorIndexFinishedEvent | UseToolStartedEvent | UseToolFinishedEvent |
|
85
|
+
export type FunctionEvent = ExecuteFunctionStartedEvent | ExecuteFunctionFinishedEvent | ExecuteToolStartedEvent | ExecuteToolFinishedEvent | ExtensionFunctionStartedEvent | ExtensionFunctionFinishedEvent | ModelCallStartedEvent | ModelCallFinishedEvent | RetrieveStartedEvent | RetrieveFinishedEvent | UpsertIntoVectorIndexStartedEvent | UpsertIntoVectorIndexFinishedEvent | UseToolStartedEvent | UseToolFinishedEvent | useToolsStartedEvent | useToolsFinishedEvent;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { BaseFunctionFinishedEvent, BaseFunctionStartedEvent } from "../core/FunctionEvent.js";
|
2
2
|
import { ToolCallGenerationFinishedEvent, ToolCallGenerationStartedEvent } from "../tool/generate-tool-call/ToolCallGenerationEvent.js";
|
3
|
-
import {
|
3
|
+
import { ToolCallsGenerationFinishedEvent, ToolCallsGenerationStartedEvent } from "../tool/generate-tool-calls/ToolCallsGenerationEvent.js";
|
4
4
|
import { ModelInformation } from "./ModelInformation.js";
|
5
5
|
import { EmbeddingFinishedEvent, EmbeddingStartedEvent } from "./embed/EmbeddingEvent.js";
|
6
6
|
import { ImageGenerationFinishedEvent, ImageGenerationStartedEvent } from "./generate-image/ImageGenerationEvent.js";
|
@@ -49,5 +49,5 @@ export interface BaseModelCallFinishedEvent extends BaseFunctionFinishedEvent {
|
|
49
49
|
*/
|
50
50
|
result: BaseModelCallFinishedEventResult;
|
51
51
|
}
|
52
|
-
export type ModelCallStartedEvent = EmbeddingStartedEvent | ImageGenerationStartedEvent | SpeechGenerationStartedEvent | SpeechStreamingStartedEvent | StructureGenerationStartedEvent | StructureStreamingStartedEvent | TextGenerationStartedEvent | TextStreamingStartedEvent | ToolCallGenerationStartedEvent |
|
53
|
-
export type ModelCallFinishedEvent = EmbeddingFinishedEvent | ImageGenerationFinishedEvent | SpeechGenerationFinishedEvent | SpeechStreamingFinishedEvent | StructureGenerationFinishedEvent | StructureStreamingFinishedEvent | TextGenerationFinishedEvent | TextStreamingFinishedEvent | ToolCallGenerationFinishedEvent |
|
52
|
+
export type ModelCallStartedEvent = EmbeddingStartedEvent | ImageGenerationStartedEvent | SpeechGenerationStartedEvent | SpeechStreamingStartedEvent | StructureGenerationStartedEvent | StructureStreamingStartedEvent | TextGenerationStartedEvent | TextStreamingStartedEvent | ToolCallGenerationStartedEvent | ToolCallsGenerationStartedEvent | TranscriptionStartedEvent;
|
53
|
+
export type ModelCallFinishedEvent = EmbeddingFinishedEvent | ImageGenerationFinishedEvent | SpeechGenerationFinishedEvent | SpeechStreamingFinishedEvent | StructureGenerationFinishedEvent | StructureStreamingFinishedEvent | TextGenerationFinishedEvent | TextStreamingFinishedEvent | ToolCallGenerationFinishedEvent | ToolCallsGenerationFinishedEvent | TranscriptionFinishedEvent;
|
@@ -10,9 +10,9 @@ class PromptTemplateFullTextModel extends PromptTemplateTextStreamingModel_js_1.
|
|
10
10
|
const mappedPrompt = this.promptTemplate.format(prompt);
|
11
11
|
return this.model.doGenerateToolCall(tool, mappedPrompt, options);
|
12
12
|
}
|
13
|
-
|
13
|
+
doGenerateToolCalls(tools, prompt, options) {
|
14
14
|
const mappedPrompt = this.promptTemplate.format(prompt);
|
15
|
-
return this.model.
|
15
|
+
return this.model.doGenerateToolCalls(tools, mappedPrompt, options);
|
16
16
|
}
|
17
17
|
withPromptTemplate(promptTemplate) {
|
18
18
|
return new PromptTemplateFullTextModel({
|
@@ -1,11 +1,11 @@
|
|
1
1
|
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
2
2
|
import { ToolDefinition } from "../../tool/ToolDefinition.js";
|
3
3
|
import { ToolCallGenerationModel } from "../../tool/generate-tool-call/ToolCallGenerationModel.js";
|
4
|
-
import {
|
4
|
+
import { ToolCallsGenerationModel } from "../../tool/generate-tool-calls/ToolCallsGenerationModel.js";
|
5
5
|
import { PromptTemplateTextStreamingModel } from "./PromptTemplateTextStreamingModel.js";
|
6
6
|
import { TextGenerationModelSettings, TextStreamingModel } from "./TextGenerationModel.js";
|
7
7
|
import { TextGenerationPromptTemplate } from "./TextGenerationPromptTemplate.js";
|
8
|
-
export declare class PromptTemplateFullTextModel<PROMPT, MODEL_PROMPT, SETTINGS extends TextGenerationModelSettings, MODEL extends TextStreamingModel<MODEL_PROMPT, SETTINGS> & ToolCallGenerationModel<MODEL_PROMPT, SETTINGS> &
|
8
|
+
export declare class PromptTemplateFullTextModel<PROMPT, MODEL_PROMPT, SETTINGS extends TextGenerationModelSettings, MODEL extends TextStreamingModel<MODEL_PROMPT, SETTINGS> & ToolCallGenerationModel<MODEL_PROMPT, SETTINGS> & ToolCallsGenerationModel<MODEL_PROMPT, SETTINGS>> extends PromptTemplateTextStreamingModel<PROMPT, MODEL_PROMPT, SETTINGS, MODEL> implements TextStreamingModel<PROMPT, SETTINGS>, ToolCallGenerationModel<PROMPT, SETTINGS>, ToolCallsGenerationModel<PROMPT, SETTINGS> {
|
9
9
|
constructor(options: {
|
10
10
|
model: MODEL;
|
11
11
|
promptTemplate: TextGenerationPromptTemplate<PROMPT, MODEL_PROMPT>;
|
@@ -22,7 +22,7 @@ export declare class PromptTemplateFullTextModel<PROMPT, MODEL_PROMPT, SETTINGS
|
|
22
22
|
totalTokens: number;
|
23
23
|
} | undefined;
|
24
24
|
}>;
|
25
|
-
|
25
|
+
doGenerateToolCalls(tools: ToolDefinition<string, unknown>[], prompt: PROMPT, options?: FunctionOptions | undefined): PromiseLike<{
|
26
26
|
response: unknown;
|
27
27
|
text: string | null;
|
28
28
|
toolCalls: {
|
@@ -7,9 +7,9 @@ export class PromptTemplateFullTextModel extends PromptTemplateTextStreamingMode
|
|
7
7
|
const mappedPrompt = this.promptTemplate.format(prompt);
|
8
8
|
return this.model.doGenerateToolCall(tool, mappedPrompt, options);
|
9
9
|
}
|
10
|
-
|
10
|
+
doGenerateToolCalls(tools, prompt, options) {
|
11
11
|
const mappedPrompt = this.promptTemplate.format(prompt);
|
12
|
-
return this.model.
|
12
|
+
return this.model.doGenerateToolCalls(tools, mappedPrompt, options);
|
13
13
|
}
|
14
14
|
withPromptTemplate(promptTemplate) {
|
15
15
|
return new PromptTemplateFullTextModel({
|
@@ -2,7 +2,7 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.PromptTemplateTextGenerationModel = void 0;
|
4
4
|
const TextGenerationToolCallModel_js_1 = require("../../tool/generate-tool-call/TextGenerationToolCallModel.cjs");
|
5
|
-
const
|
5
|
+
const TextGenerationToolCallsModel_js_1 = require("../../tool/generate-tool-calls/TextGenerationToolCallsModel.cjs");
|
6
6
|
const StructureFromTextGenerationModel_js_1 = require("../generate-structure/StructureFromTextGenerationModel.cjs");
|
7
7
|
class PromptTemplateTextGenerationModel {
|
8
8
|
constructor({ model, promptTemplate, }) {
|
@@ -54,7 +54,7 @@ class PromptTemplateTextGenerationModel {
|
|
54
54
|
});
|
55
55
|
}
|
56
56
|
asToolCallsOrTextGenerationModel(promptTemplate) {
|
57
|
-
return new
|
57
|
+
return new TextGenerationToolCallsModel_js_1.TextGenerationToolCallsModel({
|
58
58
|
model: this,
|
59
59
|
template: promptTemplate,
|
60
60
|
});
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { FunctionOptions } from "../../core/FunctionOptions.js";
|
2
2
|
import { TextGenerationToolCallModel, ToolCallPromptTemplate } from "../../tool/generate-tool-call/TextGenerationToolCallModel.js";
|
3
|
-
import {
|
4
|
-
import {
|
3
|
+
import { TextGenerationToolCallsModel } from "../../tool/generate-tool-calls/TextGenerationToolCallsModel.js";
|
4
|
+
import { ToolCallsPromptTemplate } from "../../tool/generate-tool-calls/ToolCallsPromptTemplate.js";
|
5
5
|
import { StructureFromTextGenerationModel } from "../generate-structure/StructureFromTextGenerationModel.js";
|
6
6
|
import { StructureFromTextPromptTemplate } from "../generate-structure/StructureFromTextPromptTemplate.js";
|
7
7
|
import { TextGenerationModel, TextGenerationModelSettings } from "./TextGenerationModel.js";
|
@@ -29,7 +29,7 @@ export declare class PromptTemplateTextGenerationModel<PROMPT, MODEL_PROMPT, SET
|
|
29
29
|
}>;
|
30
30
|
get settingsForEvent(): Partial<SETTINGS>;
|
31
31
|
asToolCallGenerationModel<INPUT_PROMPT>(promptTemplate: ToolCallPromptTemplate<INPUT_PROMPT, PROMPT>): TextGenerationToolCallModel<INPUT_PROMPT, PROMPT, this>;
|
32
|
-
asToolCallsOrTextGenerationModel<INPUT_PROMPT>(promptTemplate:
|
32
|
+
asToolCallsOrTextGenerationModel<INPUT_PROMPT>(promptTemplate: ToolCallsPromptTemplate<INPUT_PROMPT, PROMPT>): TextGenerationToolCallsModel<INPUT_PROMPT, PROMPT, this>;
|
33
33
|
asStructureGenerationModel<INPUT_PROMPT>(promptTemplate: StructureFromTextPromptTemplate<INPUT_PROMPT, PROMPT>): StructureFromTextGenerationModel<INPUT_PROMPT, PROMPT, this>;
|
34
34
|
withPromptTemplate<INPUT_PROMPT>(promptTemplate: TextGenerationPromptTemplate<INPUT_PROMPT, PROMPT>): PromptTemplateTextGenerationModel<INPUT_PROMPT, PROMPT, SETTINGS, this>;
|
35
35
|
withSettings(additionalSettings: Partial<SETTINGS>): this;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { TextGenerationToolCallModel, } from "../../tool/generate-tool-call/TextGenerationToolCallModel.js";
|
2
|
-
import {
|
2
|
+
import { TextGenerationToolCallsModel } from "../../tool/generate-tool-calls/TextGenerationToolCallsModel.js";
|
3
3
|
import { StructureFromTextGenerationModel } from "../generate-structure/StructureFromTextGenerationModel.js";
|
4
4
|
export class PromptTemplateTextGenerationModel {
|
5
5
|
constructor({ model, promptTemplate, }) {
|
@@ -51,7 +51,7 @@ export class PromptTemplateTextGenerationModel {
|
|
51
51
|
});
|
52
52
|
}
|
53
53
|
asToolCallsOrTextGenerationModel(promptTemplate) {
|
54
|
-
return new
|
54
|
+
return new TextGenerationToolCallsModel({
|
55
55
|
model: this,
|
56
56
|
template: promptTemplate,
|
57
57
|
});
|
@@ -61,12 +61,12 @@ export declare class MistralChatModel extends AbstractModel<MistralChatModelSett
|
|
61
61
|
doGenerateTexts(prompt: MistralChatPrompt, options?: FunctionOptions): Promise<{
|
62
62
|
response: {
|
63
63
|
object: string;
|
64
|
+
model: string;
|
64
65
|
usage: {
|
65
66
|
prompt_tokens: number;
|
66
67
|
completion_tokens: number;
|
67
68
|
total_tokens: number;
|
68
69
|
};
|
69
|
-
model: string;
|
70
70
|
id: string;
|
71
71
|
created: number;
|
72
72
|
choices: {
|
@@ -162,12 +162,12 @@ declare const mistralChatResponseSchema: z.ZodObject<{
|
|
162
162
|
}>;
|
163
163
|
}, "strip", z.ZodTypeAny, {
|
164
164
|
object: string;
|
165
|
+
model: string;
|
165
166
|
usage: {
|
166
167
|
prompt_tokens: number;
|
167
168
|
completion_tokens: number;
|
168
169
|
total_tokens: number;
|
169
170
|
};
|
170
|
-
model: string;
|
171
171
|
id: string;
|
172
172
|
created: number;
|
173
173
|
choices: {
|
@@ -180,12 +180,12 @@ declare const mistralChatResponseSchema: z.ZodObject<{
|
|
180
180
|
}[];
|
181
181
|
}, {
|
182
182
|
object: string;
|
183
|
+
model: string;
|
183
184
|
usage: {
|
184
185
|
prompt_tokens: number;
|
185
186
|
completion_tokens: number;
|
186
187
|
total_tokens: number;
|
187
188
|
};
|
188
|
-
model: string;
|
189
189
|
id: string;
|
190
190
|
created: number;
|
191
191
|
choices: {
|
@@ -271,12 +271,12 @@ export declare const MistralChatResponseFormat: {
|
|
271
271
|
stream: boolean;
|
272
272
|
handler: ResponseHandler<{
|
273
273
|
object: string;
|
274
|
+
model: string;
|
274
275
|
usage: {
|
275
276
|
prompt_tokens: number;
|
276
277
|
completion_tokens: number;
|
277
278
|
total_tokens: number;
|
278
279
|
};
|
279
|
-
model: string;
|
280
280
|
id: string;
|
281
281
|
created: number;
|
282
282
|
choices: {
|
@@ -37,11 +37,11 @@ export declare class MistralTextEmbeddingModel extends AbstractModel<MistralText
|
|
37
37
|
embedding: number[];
|
38
38
|
index: number;
|
39
39
|
}[];
|
40
|
+
model: string;
|
40
41
|
usage: {
|
41
42
|
prompt_tokens: number;
|
42
43
|
total_tokens: number;
|
43
44
|
};
|
44
|
-
model: string;
|
45
45
|
id: string;
|
46
46
|
};
|
47
47
|
embeddings: number[][];
|
@@ -82,11 +82,11 @@ declare const MistralTextEmbeddingResponseSchema: z.ZodObject<{
|
|
82
82
|
embedding: number[];
|
83
83
|
index: number;
|
84
84
|
}[];
|
85
|
+
model: string;
|
85
86
|
usage: {
|
86
87
|
prompt_tokens: number;
|
87
88
|
total_tokens: number;
|
88
89
|
};
|
89
|
-
model: string;
|
90
90
|
id: string;
|
91
91
|
}, {
|
92
92
|
object: string;
|
@@ -95,11 +95,11 @@ declare const MistralTextEmbeddingResponseSchema: z.ZodObject<{
|
|
95
95
|
embedding: number[];
|
96
96
|
index: number;
|
97
97
|
}[];
|
98
|
+
model: string;
|
98
99
|
usage: {
|
99
100
|
prompt_tokens: number;
|
100
101
|
total_tokens: number;
|
101
102
|
};
|
102
|
-
model: string;
|
103
103
|
id: string;
|
104
104
|
}>;
|
105
105
|
export type MistralTextEmbeddingResponse = z.infer<typeof MistralTextEmbeddingResponseSchema>;
|
@@ -11,7 +11,7 @@ const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
|
|
11
11
|
const PromptTemplateTextStreamingModel_js_1 = require("../../model-function/generate-text/PromptTemplateTextStreamingModel.cjs");
|
12
12
|
const TextGenerationModel_js_1 = require("../../model-function/generate-text/TextGenerationModel.cjs");
|
13
13
|
const TextGenerationToolCallModel_js_1 = require("../../tool/generate-tool-call/TextGenerationToolCallModel.cjs");
|
14
|
-
const
|
14
|
+
const TextGenerationToolCallsModel_js_1 = require("../../tool/generate-tool-calls/TextGenerationToolCallsModel.cjs");
|
15
15
|
const createJsonStreamResponseHandler_js_1 = require("../../util/streaming/createJsonStreamResponseHandler.cjs");
|
16
16
|
const OllamaApiConfiguration_js_1 = require("./OllamaApiConfiguration.cjs");
|
17
17
|
const OllamaChatPromptTemplate_js_1 = require("./OllamaChatPromptTemplate.cjs");
|
@@ -143,7 +143,7 @@ class OllamaChatModel extends AbstractModel_js_1.AbstractModel {
|
|
143
143
|
});
|
144
144
|
}
|
145
145
|
asToolCallsOrTextGenerationModel(promptTemplate) {
|
146
|
-
return new
|
146
|
+
return new TextGenerationToolCallsModel_js_1.TextGenerationToolCallsModel({
|
147
147
|
model: this,
|
148
148
|
template: promptTemplate,
|
149
149
|
});
|
@@ -7,8 +7,8 @@ import { PromptTemplateTextStreamingModel } from "../../model-function/generate-
|
|
7
7
|
import { TextStreamingModel } from "../../model-function/generate-text/TextGenerationModel.js";
|
8
8
|
import { TextGenerationPromptTemplate } from "../../model-function/generate-text/TextGenerationPromptTemplate.js";
|
9
9
|
import { TextGenerationToolCallModel, ToolCallPromptTemplate } from "../../tool/generate-tool-call/TextGenerationToolCallModel.js";
|
10
|
-
import {
|
11
|
-
import {
|
10
|
+
import { TextGenerationToolCallsModel } from "../../tool/generate-tool-calls/TextGenerationToolCallsModel.js";
|
11
|
+
import { ToolCallsPromptTemplate } from "../../tool/generate-tool-calls/ToolCallsPromptTemplate.js";
|
12
12
|
import { OllamaTextGenerationSettings } from "./OllamaTextGenerationSettings.js";
|
13
13
|
export type OllamaChatMessage = {
|
14
14
|
role: "system" | "user" | "assistant";
|
@@ -78,7 +78,7 @@ export declare class OllamaChatModel extends AbstractModel<OllamaChatModelSettin
|
|
78
78
|
}>>>;
|
79
79
|
extractTextDelta(delta: unknown): string | undefined;
|
80
80
|
asToolCallGenerationModel<INPUT_PROMPT>(promptTemplate: ToolCallPromptTemplate<INPUT_PROMPT, OllamaChatPrompt>): TextGenerationToolCallModel<INPUT_PROMPT, OllamaChatPrompt, this>;
|
81
|
-
asToolCallsOrTextGenerationModel<INPUT_PROMPT>(promptTemplate:
|
81
|
+
asToolCallsOrTextGenerationModel<INPUT_PROMPT>(promptTemplate: ToolCallsPromptTemplate<INPUT_PROMPT, OllamaChatPrompt>): TextGenerationToolCallsModel<INPUT_PROMPT, OllamaChatPrompt, this>;
|
82
82
|
/**
|
83
83
|
* Returns this model with a text prompt template.
|
84
84
|
*/
|
@@ -8,7 +8,7 @@ import { AbstractModel } from "../../model-function/AbstractModel.js";
|
|
8
8
|
import { PromptTemplateTextStreamingModel } from "../../model-function/generate-text/PromptTemplateTextStreamingModel.js";
|
9
9
|
import { textGenerationModelProperties, } from "../../model-function/generate-text/TextGenerationModel.js";
|
10
10
|
import { TextGenerationToolCallModel, } from "../../tool/generate-tool-call/TextGenerationToolCallModel.js";
|
11
|
-
import {
|
11
|
+
import { TextGenerationToolCallsModel } from "../../tool/generate-tool-calls/TextGenerationToolCallsModel.js";
|
12
12
|
import { createJsonStreamResponseHandler } from "../../util/streaming/createJsonStreamResponseHandler.js";
|
13
13
|
import { OllamaApiConfiguration } from "./OllamaApiConfiguration.js";
|
14
14
|
import { chat, instruction, text } from "./OllamaChatPromptTemplate.js";
|
@@ -140,7 +140,7 @@ export class OllamaChatModel extends AbstractModel {
|
|
140
140
|
});
|
141
141
|
}
|
142
142
|
asToolCallsOrTextGenerationModel(promptTemplate) {
|
143
|
-
return new
|
143
|
+
return new TextGenerationToolCallsModel({
|
144
144
|
model: this,
|
145
145
|
template: promptTemplate,
|
146
146
|
});
|
@@ -11,7 +11,7 @@ const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
|
|
11
11
|
const PromptTemplateTextStreamingModel_js_1 = require("../../model-function/generate-text/PromptTemplateTextStreamingModel.cjs");
|
12
12
|
const TextGenerationModel_js_1 = require("../../model-function/generate-text/TextGenerationModel.cjs");
|
13
13
|
const TextGenerationToolCallModel_js_1 = require("../../tool/generate-tool-call/TextGenerationToolCallModel.cjs");
|
14
|
-
const
|
14
|
+
const TextGenerationToolCallsModel_js_1 = require("../../tool/generate-tool-calls/TextGenerationToolCallsModel.cjs");
|
15
15
|
const createJsonStreamResponseHandler_js_1 = require("../../util/streaming/createJsonStreamResponseHandler.cjs");
|
16
16
|
const OllamaApiConfiguration_js_1 = require("./OllamaApiConfiguration.cjs");
|
17
17
|
const OllamaError_js_1 = require("./OllamaError.cjs");
|
@@ -145,7 +145,7 @@ class OllamaCompletionModel extends AbstractModel_js_1.AbstractModel {
|
|
145
145
|
});
|
146
146
|
}
|
147
147
|
asToolCallsOrTextGenerationModel(promptTemplate) {
|
148
|
-
return new
|
148
|
+
return new TextGenerationToolCallsModel_js_1.TextGenerationToolCallsModel({
|
149
149
|
model: this,
|
150
150
|
template: promptTemplate,
|
151
151
|
});
|
@@ -7,8 +7,8 @@ import { PromptTemplateTextStreamingModel } from "../../model-function/generate-
|
|
7
7
|
import { TextStreamingModel } from "../../model-function/generate-text/TextGenerationModel.js";
|
8
8
|
import { TextGenerationPromptTemplate } from "../../model-function/generate-text/TextGenerationPromptTemplate.js";
|
9
9
|
import { TextGenerationToolCallModel, ToolCallPromptTemplate } from "../../tool/generate-tool-call/TextGenerationToolCallModel.js";
|
10
|
-
import {
|
11
|
-
import {
|
10
|
+
import { TextGenerationToolCallsModel } from "../../tool/generate-tool-calls/TextGenerationToolCallsModel.js";
|
11
|
+
import { ToolCallsPromptTemplate } from "../../tool/generate-tool-calls/ToolCallsPromptTemplate.js";
|
12
12
|
import { OllamaTextGenerationSettings } from "./OllamaTextGenerationSettings.js";
|
13
13
|
export interface OllamaCompletionPrompt {
|
14
14
|
/**
|
@@ -91,7 +91,7 @@ export declare class OllamaCompletionModel<CONTEXT_WINDOW_SIZE extends number |
|
|
91
91
|
}>>>;
|
92
92
|
extractTextDelta(delta: unknown): string | undefined;
|
93
93
|
asToolCallGenerationModel<INPUT_PROMPT>(promptTemplate: ToolCallPromptTemplate<INPUT_PROMPT, OllamaCompletionPrompt>): TextGenerationToolCallModel<INPUT_PROMPT, OllamaCompletionPrompt, this>;
|
94
|
-
asToolCallsOrTextGenerationModel<INPUT_PROMPT>(promptTemplate:
|
94
|
+
asToolCallsOrTextGenerationModel<INPUT_PROMPT>(promptTemplate: ToolCallsPromptTemplate<INPUT_PROMPT, OllamaCompletionPrompt>): TextGenerationToolCallsModel<INPUT_PROMPT, OllamaCompletionPrompt, this>;
|
95
95
|
withTextPrompt(): PromptTemplateTextStreamingModel<string, OllamaCompletionPrompt, OllamaCompletionModelSettings<CONTEXT_WINDOW_SIZE>, this>;
|
96
96
|
/**
|
97
97
|
* Maps the prompt for a text version of the Ollama completion prompt template (without image support).
|
@@ -8,7 +8,7 @@ import { AbstractModel } from "../../model-function/AbstractModel.js";
|
|
8
8
|
import { PromptTemplateTextStreamingModel } from "../../model-function/generate-text/PromptTemplateTextStreamingModel.js";
|
9
9
|
import { textGenerationModelProperties, } from "../../model-function/generate-text/TextGenerationModel.js";
|
10
10
|
import { TextGenerationToolCallModel, } from "../../tool/generate-tool-call/TextGenerationToolCallModel.js";
|
11
|
-
import {
|
11
|
+
import { TextGenerationToolCallsModel } from "../../tool/generate-tool-calls/TextGenerationToolCallsModel.js";
|
12
12
|
import { createJsonStreamResponseHandler } from "../../util/streaming/createJsonStreamResponseHandler.js";
|
13
13
|
import { OllamaApiConfiguration } from "./OllamaApiConfiguration.js";
|
14
14
|
import { failedOllamaCallResponseHandler } from "./OllamaError.js";
|
@@ -142,7 +142,7 @@ export class OllamaCompletionModel extends AbstractModel {
|
|
142
142
|
});
|
143
143
|
}
|
144
144
|
asToolCallsOrTextGenerationModel(promptTemplate) {
|
145
|
-
return new
|
145
|
+
return new TextGenerationToolCallsModel({
|
146
146
|
model: this,
|
147
147
|
template: promptTemplate,
|
148
148
|
});
|
@@ -151,7 +151,7 @@ class AbstractOpenAIChatModel extends AbstractModel_js_1.AbstractModel {
|
|
151
151
|
usage: this.extractUsage(response),
|
152
152
|
};
|
153
153
|
}
|
154
|
-
async
|
154
|
+
async doGenerateToolCalls(tools, prompt, options) {
|
155
155
|
const response = await this.callAPI(prompt, {
|
156
156
|
...options,
|
157
157
|
responseFormat: exports.OpenAIChatResponseFormat.json,
|
@@ -93,12 +93,12 @@ export declare abstract class AbstractOpenAIChatModel<SETTINGS extends AbstractO
|
|
93
93
|
doGenerateTexts(prompt: OpenAIChatPrompt, options?: FunctionOptions): Promise<{
|
94
94
|
response: {
|
95
95
|
object: "chat.completion";
|
96
|
+
model: string;
|
96
97
|
usage: {
|
97
98
|
prompt_tokens: number;
|
98
99
|
completion_tokens: number;
|
99
100
|
total_tokens: number;
|
100
101
|
};
|
101
|
-
model: string;
|
102
102
|
id: string;
|
103
103
|
created: number;
|
104
104
|
choices: {
|
@@ -166,12 +166,12 @@ export declare abstract class AbstractOpenAIChatModel<SETTINGS extends AbstractO
|
|
166
166
|
doGenerateToolCall(tool: ToolDefinition<string, unknown>, prompt: OpenAIChatPrompt, options?: FunctionOptions): Promise<{
|
167
167
|
response: {
|
168
168
|
object: "chat.completion";
|
169
|
+
model: string;
|
169
170
|
usage: {
|
170
171
|
prompt_tokens: number;
|
171
172
|
completion_tokens: number;
|
172
173
|
total_tokens: number;
|
173
174
|
};
|
174
|
-
model: string;
|
175
175
|
id: string;
|
176
176
|
created: number;
|
177
177
|
choices: {
|
@@ -207,15 +207,15 @@ export declare abstract class AbstractOpenAIChatModel<SETTINGS extends AbstractO
|
|
207
207
|
totalTokens: number;
|
208
208
|
};
|
209
209
|
}>;
|
210
|
-
|
210
|
+
doGenerateToolCalls(tools: Array<ToolDefinition<string, unknown>>, prompt: OpenAIChatPrompt, options?: FunctionOptions): Promise<{
|
211
211
|
response: {
|
212
212
|
object: "chat.completion";
|
213
|
+
model: string;
|
213
214
|
usage: {
|
214
215
|
prompt_tokens: number;
|
215
216
|
completion_tokens: number;
|
216
217
|
total_tokens: number;
|
217
218
|
};
|
218
|
-
model: string;
|
219
219
|
id: string;
|
220
220
|
created: number;
|
221
221
|
choices: {
|
@@ -397,12 +397,12 @@ declare const openAIChatResponseSchema: z.ZodObject<{
|
|
397
397
|
}>;
|
398
398
|
}, "strip", z.ZodTypeAny, {
|
399
399
|
object: "chat.completion";
|
400
|
+
model: string;
|
400
401
|
usage: {
|
401
402
|
prompt_tokens: number;
|
402
403
|
completion_tokens: number;
|
403
404
|
total_tokens: number;
|
404
405
|
};
|
405
|
-
model: string;
|
406
406
|
id: string;
|
407
407
|
created: number;
|
408
408
|
choices: {
|
@@ -429,12 +429,12 @@ declare const openAIChatResponseSchema: z.ZodObject<{
|
|
429
429
|
system_fingerprint?: string | null | undefined;
|
430
430
|
}, {
|
431
431
|
object: "chat.completion";
|
432
|
+
model: string;
|
432
433
|
usage: {
|
433
434
|
prompt_tokens: number;
|
434
435
|
completion_tokens: number;
|
435
436
|
total_tokens: number;
|
436
437
|
};
|
437
|
-
model: string;
|
438
438
|
id: string;
|
439
439
|
created: number;
|
440
440
|
choices: {
|
@@ -647,12 +647,12 @@ export declare const OpenAIChatResponseFormat: {
|
|
647
647
|
stream: boolean;
|
648
648
|
handler: ResponseHandler<{
|
649
649
|
object: "chat.completion";
|
650
|
+
model: string;
|
650
651
|
usage: {
|
651
652
|
prompt_tokens: number;
|
652
653
|
completion_tokens: number;
|
653
654
|
total_tokens: number;
|
654
655
|
};
|
655
|
-
model: string;
|
656
656
|
id: string;
|
657
657
|
created: number;
|
658
658
|
choices: {
|
@@ -148,7 +148,7 @@ export class AbstractOpenAIChatModel extends AbstractModel {
|
|
148
148
|
usage: this.extractUsage(response),
|
149
149
|
};
|
150
150
|
}
|
151
|
-
async
|
151
|
+
async doGenerateToolCalls(tools, prompt, options) {
|
152
152
|
const response = await this.callAPI(prompt, {
|
153
153
|
...options,
|
154
154
|
responseFormat: OpenAIChatResponseFormat.json,
|