modelfusion 0.111.0 → 0.113.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.
Files changed (81) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/README.md +26 -154
  3. package/core/FunctionEvent.d.ts +3 -3
  4. package/model-function/ModelCallEvent.d.ts +3 -3
  5. package/model-function/generate-structure/StructureFromTextPromptTemplate.d.ts +13 -0
  6. package/model-function/generate-structure/jsonStructurePrompt.cjs +12 -0
  7. package/model-function/generate-structure/jsonStructurePrompt.d.ts +3 -3
  8. package/model-function/generate-structure/jsonStructurePrompt.js +12 -0
  9. package/model-function/generate-text/PromptTemplateFullTextModel.cjs +2 -2
  10. package/model-function/generate-text/PromptTemplateFullTextModel.d.ts +3 -3
  11. package/model-function/generate-text/PromptTemplateFullTextModel.js +2 -2
  12. package/model-function/generate-text/PromptTemplateTextGenerationModel.cjs +2 -2
  13. package/model-function/generate-text/PromptTemplateTextGenerationModel.d.ts +3 -3
  14. package/model-function/generate-text/PromptTemplateTextGenerationModel.js +2 -2
  15. package/model-function/generate-text/TextGenerationModel.d.ts +4 -0
  16. package/model-provider/mistral/MistralChatModel.d.ts +4 -4
  17. package/model-provider/mistral/MistralTextEmbeddingModel.d.ts +3 -3
  18. package/model-provider/ollama/OllamaChatModel.cjs +17 -2
  19. package/model-provider/ollama/OllamaChatModel.d.ts +7 -3
  20. package/model-provider/ollama/OllamaChatModel.js +17 -2
  21. package/model-provider/ollama/OllamaCompletionModel.cjs +2 -2
  22. package/model-provider/ollama/OllamaCompletionModel.d.ts +3 -3
  23. package/model-provider/ollama/OllamaCompletionModel.js +2 -2
  24. package/model-provider/openai/AbstractOpenAIChatModel.cjs +1 -1
  25. package/model-provider/openai/AbstractOpenAIChatModel.d.ts +7 -7
  26. package/model-provider/openai/AbstractOpenAIChatModel.js +1 -1
  27. package/model-provider/openai/AbstractOpenAICompletionModel.d.ts +4 -4
  28. package/model-provider/openai/OpenAIChatFunctionCallStructureGenerationModel.d.ts +1 -1
  29. package/model-provider/openai/OpenAIChatModel.cjs +12 -4
  30. package/model-provider/openai/OpenAIChatModel.d.ts +5 -4
  31. package/model-provider/openai/OpenAIChatModel.js +12 -4
  32. package/model-provider/openai/OpenAITextEmbeddingModel.d.ts +3 -3
  33. package/model-provider/openai-compatible/OpenAICompatibleChatModel.cjs +12 -4
  34. package/model-provider/openai-compatible/OpenAICompatibleChatModel.d.ts +5 -4
  35. package/model-provider/openai-compatible/OpenAICompatibleChatModel.js +12 -4
  36. package/package.json +2 -2
  37. package/tool/Tool.cjs +0 -10
  38. package/tool/Tool.d.ts +0 -1
  39. package/tool/Tool.js +0 -10
  40. package/tool/{generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.cjs → generate-tool-calls/TextGenerationToolCallsModel.cjs} +7 -7
  41. package/tool/{generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.d.ts → generate-tool-calls/TextGenerationToolCallsModel.d.ts} +6 -6
  42. package/tool/{generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.js → generate-tool-calls/TextGenerationToolCallsModel.js} +5 -5
  43. package/tool/generate-tool-calls/ToolCallsGenerationEvent.d.ts +23 -0
  44. package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationModel.d.ts → generate-tool-calls/ToolCallsGenerationModel.d.ts} +3 -3
  45. package/tool/{generate-tool-calls-or-text/ToolCallsOrTextParseError.cjs → generate-tool-calls/ToolCallsParseError.cjs} +5 -5
  46. package/tool/{generate-tool-calls-or-text/ToolCallsOrTextParseError.d.ts → generate-tool-calls/ToolCallsParseError.d.ts} +1 -1
  47. package/tool/{generate-tool-calls-or-text/ToolCallsOrTextParseError.js → generate-tool-calls/ToolCallsParseError.js} +3 -3
  48. package/tool/{generate-tool-calls-or-text/ToolCallsOrGenerateTextPromptTemplate.d.ts → generate-tool-calls/ToolCallsPromptTemplate.d.ts} +1 -1
  49. package/tool/{generate-tool-calls-or-text/generateToolCallsOrText.cjs → generate-tool-calls/generateToolCalls.cjs} +5 -5
  50. package/tool/{generate-tool-calls-or-text/generateToolCallsOrText.d.ts → generate-tool-calls/generateToolCalls.d.ts} +3 -3
  51. package/tool/{generate-tool-calls-or-text/generateToolCallsOrText.js → generate-tool-calls/generateToolCalls.js} +3 -3
  52. package/tool/{generate-tool-calls-or-text → generate-tool-calls}/index.cjs +6 -6
  53. package/tool/generate-tool-calls/index.d.ts +6 -0
  54. package/tool/generate-tool-calls/index.js +6 -0
  55. package/tool/index.cjs +2 -3
  56. package/tool/index.d.ts +2 -3
  57. package/tool/index.js +2 -3
  58. package/tool/use-tools/UseToolsEvent.d.ts +7 -0
  59. package/tool/{use-tools-or-generate-text → use-tools}/index.cjs +2 -2
  60. package/tool/use-tools/index.d.ts +2 -0
  61. package/tool/use-tools/index.js +2 -0
  62. package/tool/{use-tools-or-generate-text/useToolsOrGenerateText.cjs → use-tools/useTools.cjs} +6 -6
  63. package/tool/{use-tools-or-generate-text/useToolsOrGenerateText.d.ts → use-tools/useTools.d.ts} +2 -2
  64. package/tool/{use-tools-or-generate-text/useToolsOrGenerateText.js → use-tools/useTools.js} +4 -4
  65. package/tool/InvalidToolNameError.cjs +0 -17
  66. package/tool/InvalidToolNameError.d.ts +0 -7
  67. package/tool/InvalidToolNameError.js +0 -13
  68. package/tool/generate-tool-calls-or-text/ToolCallsOrTextGenerationEvent.d.ts +0 -23
  69. package/tool/generate-tool-calls-or-text/index.d.ts +0 -6
  70. package/tool/generate-tool-calls-or-text/index.js +0 -6
  71. package/tool/use-tools-or-generate-text/UseToolsOrGenerateTextEvent.d.ts +0 -7
  72. package/tool/use-tools-or-generate-text/index.d.ts +0 -2
  73. package/tool/use-tools-or-generate-text/index.js +0 -2
  74. /package/tool/{generate-tool-calls-or-text/ToolCallsOrGenerateTextPromptTemplate.cjs → generate-tool-calls/ToolCallsGenerationEvent.cjs} +0 -0
  75. /package/tool/{generate-tool-calls-or-text/ToolCallsOrGenerateTextPromptTemplate.js → generate-tool-calls/ToolCallsGenerationEvent.js} +0 -0
  76. /package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationEvent.cjs → generate-tool-calls/ToolCallsGenerationModel.cjs} +0 -0
  77. /package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationEvent.js → generate-tool-calls/ToolCallsGenerationModel.js} +0 -0
  78. /package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationModel.cjs → generate-tool-calls/ToolCallsPromptTemplate.cjs} +0 -0
  79. /package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationModel.js → generate-tool-calls/ToolCallsPromptTemplate.js} +0 -0
  80. /package/tool/{use-tools-or-generate-text/UseToolsOrGenerateTextEvent.cjs → use-tools/UseToolsEvent.cjs} +0 -0
  81. /package/tool/{use-tools-or-generate-text/UseToolsOrGenerateTextEvent.js → use-tools/UseToolsEvent.js} +0 -0
@@ -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>;
@@ -8,10 +8,11 @@ const postToApi_js_1 = require("../../core/api/postToApi.cjs");
8
8
  const ZodSchema_js_1 = require("../../core/schema/ZodSchema.cjs");
9
9
  const parseJSON_js_1 = require("../../core/schema/parseJSON.cjs");
10
10
  const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
11
+ const StructureFromTextStreamingModel_js_1 = require("../../model-function/generate-structure/StructureFromTextStreamingModel.cjs");
11
12
  const PromptTemplateTextStreamingModel_js_1 = require("../../model-function/generate-text/PromptTemplateTextStreamingModel.cjs");
12
13
  const TextGenerationModel_js_1 = require("../../model-function/generate-text/TextGenerationModel.cjs");
13
14
  const TextGenerationToolCallModel_js_1 = require("../../tool/generate-tool-call/TextGenerationToolCallModel.cjs");
14
- const TextGenerationToolCallsOrGenerateTextModel_js_1 = require("../../tool/generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.cjs");
15
+ const TextGenerationToolCallsModel_js_1 = require("../../tool/generate-tool-calls/TextGenerationToolCallsModel.cjs");
15
16
  const createJsonStreamResponseHandler_js_1 = require("../../util/streaming/createJsonStreamResponseHandler.cjs");
16
17
  const OllamaApiConfiguration_js_1 = require("./OllamaApiConfiguration.cjs");
17
18
  const OllamaChatPromptTemplate_js_1 = require("./OllamaChatPromptTemplate.cjs");
@@ -143,11 +144,22 @@ class OllamaChatModel extends AbstractModel_js_1.AbstractModel {
143
144
  });
144
145
  }
145
146
  asToolCallsOrTextGenerationModel(promptTemplate) {
146
- return new TextGenerationToolCallsOrGenerateTextModel_js_1.TextGenerationToolCallsOrGenerateTextModel({
147
+ return new TextGenerationToolCallsModel_js_1.TextGenerationToolCallsModel({
147
148
  model: this,
148
149
  template: promptTemplate,
149
150
  });
150
151
  }
152
+ asStructureGenerationModel(promptTemplate) {
153
+ return "adaptModel" in promptTemplate
154
+ ? new StructureFromTextStreamingModel_js_1.StructureFromTextStreamingModel({
155
+ model: promptTemplate.adaptModel(this),
156
+ template: promptTemplate,
157
+ })
158
+ : new StructureFromTextStreamingModel_js_1.StructureFromTextStreamingModel({
159
+ model: this,
160
+ template: promptTemplate,
161
+ });
162
+ }
151
163
  /**
152
164
  * Returns this model with a text prompt template.
153
165
  */
@@ -177,6 +189,9 @@ class OllamaChatModel extends AbstractModel_js_1.AbstractModel {
177
189
  promptTemplate,
178
190
  });
179
191
  }
192
+ withJsonOutput() {
193
+ return this.withSettings({ format: "json" });
194
+ }
180
195
  withSettings(additionalSettings) {
181
196
  return new OllamaChatModel(Object.assign({}, this.settings, additionalSettings));
182
197
  }
@@ -3,12 +3,14 @@ import { FunctionOptions } 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";
6
+ import { FlexibleStructureFromTextPromptTemplate, StructureFromTextPromptTemplate } from "../../model-function/generate-structure/StructureFromTextPromptTemplate.js";
7
+ import { StructureFromTextStreamingModel } from "../../model-function/generate-structure/StructureFromTextStreamingModel.js";
6
8
  import { PromptTemplateTextStreamingModel } from "../../model-function/generate-text/PromptTemplateTextStreamingModel.js";
7
9
  import { TextStreamingModel } from "../../model-function/generate-text/TextGenerationModel.js";
8
10
  import { TextGenerationPromptTemplate } from "../../model-function/generate-text/TextGenerationPromptTemplate.js";
9
11
  import { TextGenerationToolCallModel, ToolCallPromptTemplate } from "../../tool/generate-tool-call/TextGenerationToolCallModel.js";
10
- import { TextGenerationToolCallsOrGenerateTextModel } from "../../tool/generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.js";
11
- import { ToolCallsOrGenerateTextPromptTemplate } from "../../tool/generate-tool-calls-or-text/ToolCallsOrGenerateTextPromptTemplate.js";
12
+ import { TextGenerationToolCallsModel } from "../../tool/generate-tool-calls/TextGenerationToolCallsModel.js";
13
+ import { ToolCallsPromptTemplate } from "../../tool/generate-tool-calls/ToolCallsPromptTemplate.js";
12
14
  import { OllamaTextGenerationSettings } from "./OllamaTextGenerationSettings.js";
13
15
  export type OllamaChatMessage = {
14
16
  role: "system" | "user" | "assistant";
@@ -78,7 +80,8 @@ export declare class OllamaChatModel extends AbstractModel<OllamaChatModelSettin
78
80
  }>>>;
79
81
  extractTextDelta(delta: unknown): string | undefined;
80
82
  asToolCallGenerationModel<INPUT_PROMPT>(promptTemplate: ToolCallPromptTemplate<INPUT_PROMPT, OllamaChatPrompt>): TextGenerationToolCallModel<INPUT_PROMPT, OllamaChatPrompt, this>;
81
- asToolCallsOrTextGenerationModel<INPUT_PROMPT>(promptTemplate: ToolCallsOrGenerateTextPromptTemplate<INPUT_PROMPT, OllamaChatPrompt>): TextGenerationToolCallsOrGenerateTextModel<INPUT_PROMPT, OllamaChatPrompt, this>;
83
+ asToolCallsOrTextGenerationModel<INPUT_PROMPT>(promptTemplate: ToolCallsPromptTemplate<INPUT_PROMPT, OllamaChatPrompt>): TextGenerationToolCallsModel<INPUT_PROMPT, OllamaChatPrompt, this>;
84
+ asStructureGenerationModel<INPUT_PROMPT, OllamaChatPrompt>(promptTemplate: StructureFromTextPromptTemplate<INPUT_PROMPT, OllamaChatPrompt> | FlexibleStructureFromTextPromptTemplate<INPUT_PROMPT, unknown>): StructureFromTextStreamingModel<INPUT_PROMPT, unknown, TextStreamingModel<unknown, import("../../model-function/generate-text/TextGenerationModel.js").TextGenerationModelSettings>> | StructureFromTextStreamingModel<INPUT_PROMPT, OllamaChatPrompt, TextStreamingModel<OllamaChatPrompt, import("../../model-function/generate-text/TextGenerationModel.js").TextGenerationModelSettings>>;
82
85
  /**
83
86
  * Returns this model with a text prompt template.
84
87
  */
@@ -92,6 +95,7 @@ export declare class OllamaChatModel extends AbstractModel<OllamaChatModelSettin
92
95
  */
93
96
  withChatPrompt(): PromptTemplateTextStreamingModel<import("../../index.js").ChatPrompt, OllamaChatPrompt, OllamaChatModelSettings, this>;
94
97
  withPromptTemplate<INPUT_PROMPT>(promptTemplate: TextGenerationPromptTemplate<INPUT_PROMPT, OllamaChatPrompt>): PromptTemplateTextStreamingModel<INPUT_PROMPT, OllamaChatPrompt, OllamaChatModelSettings, this>;
98
+ withJsonOutput(): this;
95
99
  withSettings(additionalSettings: Partial<OllamaChatModelSettings>): this;
96
100
  }
97
101
  declare const ollamaChatResponseSchema: z.ZodObject<{
@@ -5,10 +5,11 @@ import { postJsonToApi } from "../../core/api/postToApi.js";
5
5
  import { zodSchema } from "../../core/schema/ZodSchema.js";
6
6
  import { safeParseJSON } from "../../core/schema/parseJSON.js";
7
7
  import { AbstractModel } from "../../model-function/AbstractModel.js";
8
+ import { StructureFromTextStreamingModel } from "../../model-function/generate-structure/StructureFromTextStreamingModel.js";
8
9
  import { PromptTemplateTextStreamingModel } from "../../model-function/generate-text/PromptTemplateTextStreamingModel.js";
9
10
  import { textGenerationModelProperties, } from "../../model-function/generate-text/TextGenerationModel.js";
10
11
  import { TextGenerationToolCallModel, } from "../../tool/generate-tool-call/TextGenerationToolCallModel.js";
11
- import { TextGenerationToolCallsOrGenerateTextModel } from "../../tool/generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.js";
12
+ import { TextGenerationToolCallsModel } from "../../tool/generate-tool-calls/TextGenerationToolCallsModel.js";
12
13
  import { createJsonStreamResponseHandler } from "../../util/streaming/createJsonStreamResponseHandler.js";
13
14
  import { OllamaApiConfiguration } from "./OllamaApiConfiguration.js";
14
15
  import { chat, instruction, text } from "./OllamaChatPromptTemplate.js";
@@ -140,11 +141,22 @@ export class OllamaChatModel extends AbstractModel {
140
141
  });
141
142
  }
142
143
  asToolCallsOrTextGenerationModel(promptTemplate) {
143
- return new TextGenerationToolCallsOrGenerateTextModel({
144
+ return new TextGenerationToolCallsModel({
144
145
  model: this,
145
146
  template: promptTemplate,
146
147
  });
147
148
  }
149
+ asStructureGenerationModel(promptTemplate) {
150
+ return "adaptModel" in promptTemplate
151
+ ? new StructureFromTextStreamingModel({
152
+ model: promptTemplate.adaptModel(this),
153
+ template: promptTemplate,
154
+ })
155
+ : new StructureFromTextStreamingModel({
156
+ model: this,
157
+ template: promptTemplate,
158
+ });
159
+ }
148
160
  /**
149
161
  * Returns this model with a text prompt template.
150
162
  */
@@ -174,6 +186,9 @@ export class OllamaChatModel extends AbstractModel {
174
186
  promptTemplate,
175
187
  });
176
188
  }
189
+ withJsonOutput() {
190
+ return this.withSettings({ format: "json" });
191
+ }
177
192
  withSettings(additionalSettings) {
178
193
  return new OllamaChatModel(Object.assign({}, this.settings, additionalSettings));
179
194
  }
@@ -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 TextGenerationToolCallsOrGenerateTextModel_js_1 = require("../../tool/generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.cjs");
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 TextGenerationToolCallsOrGenerateTextModel_js_1.TextGenerationToolCallsOrGenerateTextModel({
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 { TextGenerationToolCallsOrGenerateTextModel } from "../../tool/generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.js";
11
- import { ToolCallsOrGenerateTextPromptTemplate } from "../../tool/generate-tool-calls-or-text/ToolCallsOrGenerateTextPromptTemplate.js";
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: ToolCallsOrGenerateTextPromptTemplate<INPUT_PROMPT, OllamaCompletionPrompt>): TextGenerationToolCallsOrGenerateTextModel<INPUT_PROMPT, OllamaCompletionPrompt, this>;
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 { TextGenerationToolCallsOrGenerateTextModel } from "../../tool/generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.js";
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 TextGenerationToolCallsOrGenerateTextModel({
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 doGenerateToolCallsOrText(tools, prompt, options) {
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
- doGenerateToolCallsOrText(tools: Array<ToolDefinition<string, unknown>>, prompt: OpenAIChatPrompt, options?: FunctionOptions): Promise<{
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 doGenerateToolCallsOrText(tools, prompt, options) {
151
+ async doGenerateToolCalls(tools, prompt, options) {
152
152
  const response = await this.callAPI(prompt, {
153
153
  ...options,
154
154
  responseFormat: OpenAIChatResponseFormat.json,
@@ -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: {
@@ -219,10 +219,15 @@ class OpenAIChatModel extends AbstractOpenAIChatModel_js_1.AbstractOpenAIChatMod
219
219
  });
220
220
  }
221
221
  asStructureGenerationModel(promptTemplate) {
222
- return new StructureFromTextStreamingModel_js_1.StructureFromTextStreamingModel({
223
- model: this,
224
- template: promptTemplate,
225
- });
222
+ return "adaptModel" in promptTemplate
223
+ ? new StructureFromTextStreamingModel_js_1.StructureFromTextStreamingModel({
224
+ model: promptTemplate.adaptModel(this),
225
+ template: promptTemplate,
226
+ })
227
+ : new StructureFromTextStreamingModel_js_1.StructureFromTextStreamingModel({
228
+ model: this,
229
+ template: promptTemplate,
230
+ });
226
231
  }
227
232
  /**
228
233
  * Returns this model with a text prompt template.
@@ -253,6 +258,9 @@ class OpenAIChatModel extends AbstractOpenAIChatModel_js_1.AbstractOpenAIChatMod
253
258
  promptTemplate,
254
259
  });
255
260
  }
261
+ withJsonOutput() {
262
+ return this.withSettings({ responseFormat: { type: "json_object" } });
263
+ }
256
264
  withSettings(additionalSettings) {
257
265
  return new OpenAIChatModel(Object.assign({}, this.settings, additionalSettings));
258
266
  }
@@ -1,10 +1,10 @@
1
- import { StructureFromTextPromptTemplate } from "../../model-function/generate-structure/StructureFromTextPromptTemplate.js";
1
+ import { FlexibleStructureFromTextPromptTemplate, StructureFromTextPromptTemplate } from "../../model-function/generate-structure/StructureFromTextPromptTemplate.js";
2
2
  import { StructureFromTextStreamingModel } from "../../model-function/generate-structure/StructureFromTextStreamingModel.js";
3
3
  import { PromptTemplateFullTextModel } from "../../model-function/generate-text/PromptTemplateFullTextModel.js";
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 { ToolCallsOrTextGenerationModel } from "../../tool/generate-tool-calls-or-text/ToolCallsOrTextGenerationModel.js";
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>, ToolCallsOrTextGenerationModel<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;
@@ -140,7 +140,7 @@ export declare class OpenAIChatModel extends AbstractOpenAIChatModel<OpenAIChatS
140
140
  fnName: string;
141
141
  fnDescription?: string;
142
142
  }): OpenAIChatFunctionCallStructureGenerationModel<TextGenerationPromptTemplate<OpenAIChatPrompt, OpenAIChatPrompt>>;
143
- asStructureGenerationModel<INPUT_PROMPT>(promptTemplate: StructureFromTextPromptTemplate<INPUT_PROMPT, OpenAIChatPrompt>): StructureFromTextStreamingModel<INPUT_PROMPT, OpenAIChatPrompt, this>;
143
+ asStructureGenerationModel<INPUT_PROMPT, OpenAIChatPrompt>(promptTemplate: StructureFromTextPromptTemplate<INPUT_PROMPT, OpenAIChatPrompt> | FlexibleStructureFromTextPromptTemplate<INPUT_PROMPT, unknown>): StructureFromTextStreamingModel<INPUT_PROMPT, unknown, TextStreamingModel<unknown, import("../../model-function/generate-text/TextGenerationModel.js").TextGenerationModelSettings>> | StructureFromTextStreamingModel<INPUT_PROMPT, OpenAIChatPrompt, TextStreamingModel<OpenAIChatPrompt, import("../../model-function/generate-text/TextGenerationModel.js").TextGenerationModelSettings>>;
144
144
  /**
145
145
  * Returns this model with a text prompt template.
146
146
  */
@@ -154,6 +154,7 @@ export declare class OpenAIChatModel extends AbstractOpenAIChatModel<OpenAIChatS
154
154
  */
155
155
  withChatPrompt(): PromptTemplateFullTextModel<import("../../index.js").ChatPrompt, OpenAIChatPrompt, OpenAIChatSettings, this>;
156
156
  withPromptTemplate<INPUT_PROMPT>(promptTemplate: TextGenerationPromptTemplate<INPUT_PROMPT, OpenAIChatPrompt>): PromptTemplateFullTextModel<INPUT_PROMPT, OpenAIChatPrompt, OpenAIChatSettings, this>;
157
+ withJsonOutput(): this;
157
158
  withSettings(additionalSettings: Partial<OpenAIChatSettings>): this;
158
159
  }
159
160
  export {};
@@ -213,10 +213,15 @@ export class OpenAIChatModel extends AbstractOpenAIChatModel {
213
213
  });
214
214
  }
215
215
  asStructureGenerationModel(promptTemplate) {
216
- return new StructureFromTextStreamingModel({
217
- model: this,
218
- template: promptTemplate,
219
- });
216
+ return "adaptModel" in promptTemplate
217
+ ? new StructureFromTextStreamingModel({
218
+ model: promptTemplate.adaptModel(this),
219
+ template: promptTemplate,
220
+ })
221
+ : new StructureFromTextStreamingModel({
222
+ model: this,
223
+ template: promptTemplate,
224
+ });
220
225
  }
221
226
  /**
222
227
  * Returns this model with a text prompt template.
@@ -247,6 +252,9 @@ export class OpenAIChatModel extends AbstractOpenAIChatModel {
247
252
  promptTemplate,
248
253
  });
249
254
  }
255
+ withJsonOutput() {
256
+ return this.withSettings({ responseFormat: { type: "json_object" } });
257
+ }
250
258
  withSettings(additionalSettings) {
251
259
  return new OpenAIChatModel(Object.assign({}, this.settings, additionalSettings));
252
260
  }
@@ -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 {};
@@ -58,10 +58,15 @@ class OpenAICompatibleChatModel extends AbstractOpenAIChatModel_js_1.AbstractOpe
58
58
  return Object.fromEntries(Object.entries(this.settings).filter(([key]) => eventSettingProperties.includes(key)));
59
59
  }
60
60
  asStructureGenerationModel(promptTemplate) {
61
- return new StructureFromTextStreamingModel_js_1.StructureFromTextStreamingModel({
62
- model: this,
63
- template: promptTemplate,
64
- });
61
+ return "adaptModel" in promptTemplate
62
+ ? new StructureFromTextStreamingModel_js_1.StructureFromTextStreamingModel({
63
+ model: promptTemplate.adaptModel(this),
64
+ template: promptTemplate,
65
+ })
66
+ : new StructureFromTextStreamingModel_js_1.StructureFromTextStreamingModel({
67
+ model: this,
68
+ template: promptTemplate,
69
+ });
65
70
  }
66
71
  /**
67
72
  * Returns this model with a text prompt template.
@@ -92,6 +97,9 @@ class OpenAICompatibleChatModel extends AbstractOpenAIChatModel_js_1.AbstractOpe
92
97
  promptTemplate,
93
98
  });
94
99
  }
100
+ withJsonOutput() {
101
+ return this.withSettings({ responseFormat: { type: "json_object" } });
102
+ }
95
103
  withSettings(additionalSettings) {
96
104
  return new OpenAICompatibleChatModel(Object.assign({}, this.settings, additionalSettings));
97
105
  }
@@ -1,10 +1,10 @@
1
- import { StructureFromTextPromptTemplate } from "../../model-function/generate-structure/StructureFromTextPromptTemplate.js";
1
+ import { FlexibleStructureFromTextPromptTemplate, StructureFromTextPromptTemplate } from "../../model-function/generate-structure/StructureFromTextPromptTemplate.js";
2
2
  import { StructureFromTextStreamingModel } from "../../model-function/generate-structure/StructureFromTextStreamingModel.js";
3
3
  import { PromptTemplateFullTextModel } from "../../model-function/generate-text/PromptTemplateFullTextModel.js";
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 { ToolCallsOrTextGenerationModel } from "../../tool/generate-tool-calls-or-text/ToolCallsOrTextGenerationModel.js";
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>, ToolCallsOrTextGenerationModel<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;
@@ -26,7 +26,7 @@ export declare class OpenAICompatibleChatModel extends AbstractOpenAIChatModel<O
26
26
  readonly tokenizer: undefined;
27
27
  readonly countPromptTokens: undefined;
28
28
  get settingsForEvent(): Partial<OpenAICompatibleChatSettings>;
29
- asStructureGenerationModel<INPUT_PROMPT>(promptTemplate: StructureFromTextPromptTemplate<INPUT_PROMPT, OpenAIChatPrompt>): StructureFromTextStreamingModel<INPUT_PROMPT, OpenAIChatPrompt, this>;
29
+ asStructureGenerationModel<INPUT_PROMPT, OpenAIChatPrompt>(promptTemplate: StructureFromTextPromptTemplate<INPUT_PROMPT, OpenAIChatPrompt> | FlexibleStructureFromTextPromptTemplate<INPUT_PROMPT, unknown>): StructureFromTextStreamingModel<INPUT_PROMPT, unknown, TextStreamingModel<unknown, import("../../model-function/generate-text/TextGenerationModel.js").TextGenerationModelSettings>> | StructureFromTextStreamingModel<INPUT_PROMPT, OpenAIChatPrompt, TextStreamingModel<OpenAIChatPrompt, import("../../model-function/generate-text/TextGenerationModel.js").TextGenerationModelSettings>>;
30
30
  /**
31
31
  * Returns this model with a text prompt template.
32
32
  */
@@ -40,5 +40,6 @@ export declare class OpenAICompatibleChatModel extends AbstractOpenAIChatModel<O
40
40
  */
41
41
  withChatPrompt(): PromptTemplateFullTextModel<import("../../index.js").ChatPrompt, OpenAIChatPrompt, OpenAICompatibleChatSettings, this>;
42
42
  withPromptTemplate<INPUT_PROMPT>(promptTemplate: TextGenerationPromptTemplate<INPUT_PROMPT, OpenAIChatPrompt>): PromptTemplateFullTextModel<INPUT_PROMPT, OpenAIChatPrompt, OpenAICompatibleChatSettings, this>;
43
+ withJsonOutput(): this;
43
44
  withSettings(additionalSettings: Partial<OpenAICompatibleChatSettings>): this;
44
45
  }