modelfusion 0.130.1 → 0.131.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 +58 -0
- package/README.md +19 -19
- package/core/api/postToApi.cjs +1 -1
- package/core/api/postToApi.js +1 -1
- package/core/schema/JsonSchemaProducer.d.ts +1 -1
- package/core/schema/Schema.d.ts +7 -7
- package/core/schema/TypeValidationError.cjs +5 -5
- package/core/schema/TypeValidationError.d.ts +4 -4
- package/core/schema/TypeValidationError.js +5 -5
- package/core/schema/UncheckedSchema.cjs +2 -2
- package/core/schema/UncheckedSchema.d.ts +5 -5
- package/core/schema/UncheckedSchema.js +2 -2
- package/core/schema/ZodSchema.cjs +5 -2
- package/core/schema/ZodSchema.d.ts +8 -8
- package/core/schema/ZodSchema.js +5 -2
- package/core/schema/parseJSON.cjs +6 -6
- package/core/schema/parseJSON.d.ts +3 -3
- package/core/schema/parseJSON.js +6 -6
- package/core/schema/validateTypes.cjs +13 -13
- package/core/schema/validateTypes.d.ts +9 -9
- package/core/schema/validateTypes.js +13 -13
- package/model-function/ModelCallEvent.d.ts +4 -4
- package/model-function/PromptTemplate.d.ts +2 -2
- package/model-function/{generate-structure/StructureFromTextGenerationModel.cjs → generate-object/ObjectFromTextGenerationModel.cjs} +8 -8
- package/model-function/{generate-structure/StructureFromTextGenerationModel.d.ts → generate-object/ObjectFromTextGenerationModel.d.ts} +6 -6
- package/model-function/{generate-structure/StructureFromTextGenerationModel.js → generate-object/ObjectFromTextGenerationModel.js} +6 -6
- package/model-function/{generate-structure/StructureFromTextPromptTemplate.d.ts → generate-object/ObjectFromTextPromptTemplate.d.ts} +4 -4
- package/model-function/{generate-structure/StructureFromTextStreamingModel.cjs → generate-object/ObjectFromTextStreamingModel.cjs} +10 -10
- package/model-function/generate-object/ObjectFromTextStreamingModel.d.ts +19 -0
- package/model-function/{generate-structure/StructureFromTextStreamingModel.js → generate-object/ObjectFromTextStreamingModel.js} +8 -8
- package/model-function/{generate-structure/StructureGenerationEvent.d.ts → generate-object/ObjectGenerationEvent.d.ts} +6 -6
- package/model-function/generate-object/ObjectGenerationModel.d.ts +24 -0
- package/model-function/{generate-structure/StructureParseError.cjs → generate-object/ObjectParseError.cjs} +5 -5
- package/model-function/{generate-structure/StructureParseError.d.ts → generate-object/ObjectParseError.d.ts} +1 -1
- package/model-function/{generate-structure/StructureParseError.js → generate-object/ObjectParseError.js} +3 -3
- package/model-function/generate-object/ObjectStream.cjs +43 -0
- package/model-function/generate-object/ObjectStream.d.ts +18 -0
- package/model-function/generate-object/ObjectStream.js +38 -0
- package/model-function/generate-object/ObjectStreamingEvent.d.ts +7 -0
- package/model-function/{generate-structure/StructureValidationError.cjs → generate-object/ObjectValidationError.cjs} +5 -5
- package/model-function/{generate-structure/StructureValidationError.d.ts → generate-object/ObjectValidationError.d.ts} +1 -1
- package/model-function/{generate-structure/StructureValidationError.js → generate-object/ObjectValidationError.js} +3 -3
- package/model-function/{generate-structure/generateStructure.cjs → generate-object/generateObject.cjs} +11 -12
- package/model-function/generate-object/generateObject.d.ts +56 -0
- package/model-function/{generate-structure/generateStructure.js → generate-object/generateObject.js} +9 -10
- package/model-function/{generate-structure → generate-object}/index.cjs +12 -11
- package/model-function/generate-object/index.d.ts +12 -0
- package/model-function/generate-object/index.js +12 -0
- package/model-function/{generate-structure/jsonStructurePrompt.cjs → generate-object/jsonObjectPrompt.cjs} +6 -6
- package/model-function/{generate-structure/jsonStructurePrompt.d.ts → generate-object/jsonObjectPrompt.d.ts} +6 -6
- package/model-function/{generate-structure/jsonStructurePrompt.js → generate-object/jsonObjectPrompt.js} +5 -5
- package/model-function/generate-object/streamObject.cjs +80 -0
- package/model-function/generate-object/streamObject.d.ts +57 -0
- package/model-function/generate-object/streamObject.js +76 -0
- package/model-function/generate-text/PromptTemplateTextGenerationModel.cjs +3 -3
- package/model-function/generate-text/PromptTemplateTextGenerationModel.d.ts +3 -3
- package/model-function/generate-text/PromptTemplateTextGenerationModel.js +3 -3
- package/model-function/generate-text/PromptTemplateTextStreamingModel.cjs +3 -3
- package/model-function/generate-text/PromptTemplateTextStreamingModel.d.ts +3 -3
- package/model-function/generate-text/PromptTemplateTextStreamingModel.js +3 -3
- package/model-function/generate-text/TextGenerationPromptTemplate.d.ts +1 -1
- package/model-function/index.cjs +1 -1
- package/model-function/index.d.ts +1 -1
- package/model-function/index.js +1 -1
- package/model-provider/cohere/CohereTextGenerationModel.cjs +1 -1
- package/model-provider/cohere/CohereTextGenerationModel.js +1 -1
- package/model-provider/elevenlabs/ElevenLabsSpeechModel.cjs +1 -1
- package/model-provider/elevenlabs/ElevenLabsSpeechModel.js +1 -1
- package/model-provider/huggingface/HuggingFaceTextGenerationModel.cjs +1 -1
- package/model-provider/huggingface/HuggingFaceTextGenerationModel.js +1 -1
- package/model-provider/llamacpp/LlamaCppBakLLaVA1PromptTemplate.cjs +1 -1
- package/model-provider/llamacpp/LlamaCppBakLLaVA1PromptTemplate.d.ts +1 -1
- package/model-provider/llamacpp/LlamaCppBakLLaVA1PromptTemplate.js +1 -1
- package/model-provider/llamacpp/LlamaCppCompletionModel.cjs +5 -5
- package/model-provider/llamacpp/LlamaCppCompletionModel.d.ts +3 -3
- package/model-provider/llamacpp/LlamaCppCompletionModel.js +5 -5
- package/model-provider/mistral/MistralChatModel.cjs +1 -1
- package/model-provider/mistral/MistralChatModel.js +1 -1
- package/model-provider/ollama/OllamaChatModel.cjs +7 -7
- package/model-provider/ollama/OllamaChatModel.d.ts +3 -3
- package/model-provider/ollama/OllamaChatModel.js +7 -7
- package/model-provider/ollama/OllamaCompletionModel.cjs +7 -7
- package/model-provider/ollama/OllamaCompletionModel.d.ts +3 -3
- package/model-provider/ollama/OllamaCompletionModel.js +7 -7
- package/model-provider/ollama/OllamaCompletionModel.test.cjs +8 -6
- package/model-provider/ollama/OllamaCompletionModel.test.js +8 -6
- package/model-provider/openai/AbstractOpenAIChatModel.cjs +1 -1
- package/model-provider/openai/AbstractOpenAIChatModel.js +1 -1
- package/model-provider/openai/AbstractOpenAICompletionModel.cjs +1 -1
- package/model-provider/openai/AbstractOpenAICompletionModel.js +1 -1
- package/model-provider/openai/{OpenAIChatFunctionCallStructureGenerationModel.cjs → OpenAIChatFunctionCallObjectGenerationModel.cjs} +12 -12
- package/model-provider/openai/{OpenAIChatFunctionCallStructureGenerationModel.d.ts → OpenAIChatFunctionCallObjectGenerationModel.d.ts} +10 -10
- package/model-provider/openai/{OpenAIChatFunctionCallStructureGenerationModel.js → OpenAIChatFunctionCallObjectGenerationModel.js} +10 -10
- package/model-provider/openai/OpenAIChatModel.cjs +7 -7
- package/model-provider/openai/OpenAIChatModel.d.ts +6 -6
- package/model-provider/openai/OpenAIChatModel.js +7 -7
- package/model-provider/openai/OpenAIChatModel.test.cjs +7 -5
- package/model-provider/openai/OpenAIChatModel.test.js +7 -5
- package/model-provider/openai-compatible/OpenAICompatibleChatModel.cjs +4 -4
- package/model-provider/openai-compatible/OpenAICompatibleChatModel.d.ts +3 -3
- package/model-provider/openai-compatible/OpenAICompatibleChatModel.js +4 -4
- package/model-provider/whispercpp/WhisperCppTranscriptionModel.cjs +3 -3
- package/model-provider/whispercpp/WhisperCppTranscriptionModel.js +3 -3
- package/package.json +1 -1
- package/tool/WebSearchTool.cjs +1 -1
- package/tool/WebSearchTool.js +1 -1
- package/tool/generate-tool-call/generateToolCall.cjs +1 -1
- package/tool/generate-tool-call/generateToolCall.js +1 -1
- package/tool/generate-tool-calls/generateToolCalls.cjs +1 -1
- package/tool/generate-tool-calls/generateToolCalls.js +1 -1
- package/{model-function/generate-structure → util}/fixJson.test.cjs +1 -1
- package/{model-function/generate-structure → util}/fixJson.test.js +1 -1
- package/util/isDeepEqualData.cjs +1 -1
- package/util/isDeepEqualData.d.ts +1 -1
- package/util/isDeepEqualData.js +1 -1
- package/util/streaming/parseEventSourceStreamAsAsyncIterable.cjs +1 -1
- package/util/streaming/parseEventSourceStreamAsAsyncIterable.js +1 -1
- package/vector-index/memory/MemoryVectorIndex.cjs +1 -1
- package/vector-index/memory/MemoryVectorIndex.js +1 -1
- package/model-function/generate-structure/StructureFromTextStreamingModel.d.ts +0 -19
- package/model-function/generate-structure/StructureGenerationModel.d.ts +0 -24
- package/model-function/generate-structure/StructureStreamingEvent.d.ts +0 -7
- package/model-function/generate-structure/generateStructure.d.ts +0 -56
- package/model-function/generate-structure/index.d.ts +0 -11
- package/model-function/generate-structure/index.js +0 -11
- package/model-function/generate-structure/streamStructure.cjs +0 -61
- package/model-function/generate-structure/streamStructure.d.ts +0 -67
- package/model-function/generate-structure/streamStructure.js +0 -57
- /package/model-function/{generate-structure/StructureFromTextPromptTemplate.cjs → generate-object/ObjectFromTextPromptTemplate.cjs} +0 -0
- /package/model-function/{generate-structure/StructureFromTextPromptTemplate.js → generate-object/ObjectFromTextPromptTemplate.js} +0 -0
- /package/model-function/{generate-structure/StructureGenerationEvent.cjs → generate-object/ObjectGenerationEvent.cjs} +0 -0
- /package/model-function/{generate-structure/StructureGenerationEvent.js → generate-object/ObjectGenerationEvent.js} +0 -0
- /package/model-function/{generate-structure/StructureGenerationModel.cjs → generate-object/ObjectGenerationModel.cjs} +0 -0
- /package/model-function/{generate-structure/StructureGenerationModel.js → generate-object/ObjectGenerationModel.js} +0 -0
- /package/model-function/{generate-structure/StructureStreamingEvent.cjs → generate-object/ObjectStreamingEvent.cjs} +0 -0
- /package/model-function/{generate-structure/StructureStreamingEvent.js → generate-object/ObjectStreamingEvent.js} +0 -0
- /package/{model-function/generate-structure → util}/fixJson.cjs +0 -0
- /package/{model-function/generate-structure → util}/fixJson.d.ts +0 -0
- /package/{model-function/generate-structure → util}/fixJson.js +0 -0
- /package/{model-function/generate-structure → util}/fixJson.test.d.ts +0 -0
- /package/{model-function/generate-structure → util}/parsePartialJson.cjs +0 -0
- /package/{model-function/generate-structure → util}/parsePartialJson.d.ts +0 -0
- /package/{model-function/generate-structure → util}/parsePartialJson.js +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { ObjectFromTextStreamingModel } from "../generate-object/ObjectFromTextStreamingModel.js";
|
2
2
|
import { PromptTemplateTextGenerationModel } from "./PromptTemplateTextGenerationModel.js";
|
3
3
|
export class PromptTemplateTextStreamingModel extends PromptTemplateTextGenerationModel {
|
4
4
|
constructor(options) {
|
@@ -11,8 +11,8 @@ export class PromptTemplateTextStreamingModel extends PromptTemplateTextGenerati
|
|
11
11
|
extractTextDelta(delta) {
|
12
12
|
return this.model.extractTextDelta(delta);
|
13
13
|
}
|
14
|
-
|
15
|
-
return new
|
14
|
+
asObjectGenerationModel(promptTemplate) {
|
15
|
+
return new ObjectFromTextStreamingModel({
|
16
16
|
model: this,
|
17
17
|
template: promptTemplate,
|
18
18
|
});
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { PromptTemplate } from "../PromptTemplate.js";
|
2
2
|
/**
|
3
|
-
* Prompt templates format a source prompt
|
3
|
+
* Prompt templates format a source prompt as a target prompt.
|
4
4
|
*/
|
5
5
|
export interface TextGenerationPromptTemplate<SOURCE_PROMPT, TARGET_PROMPT> extends PromptTemplate<SOURCE_PROMPT, TARGET_PROMPT> {
|
6
6
|
/**
|
package/model-function/index.cjs
CHANGED
@@ -29,7 +29,7 @@ __exportStar(require("./generate-image/ImageGenerationModel.cjs"), exports);
|
|
29
29
|
__exportStar(require("./generate-image/PromptTemplateImageGenerationModel.cjs"), exports);
|
30
30
|
__exportStar(require("./generate-image/generateImage.cjs"), exports);
|
31
31
|
__exportStar(require("./generate-speech/index.cjs"), exports);
|
32
|
-
__exportStar(require("./generate-
|
32
|
+
__exportStar(require("./generate-object/index.cjs"), exports);
|
33
33
|
__exportStar(require("./generate-text/index.cjs"), exports);
|
34
34
|
__exportStar(require("./generate-transcription/TranscriptionEvent.cjs"), exports);
|
35
35
|
__exportStar(require("./generate-transcription/TranscriptionModel.cjs"), exports);
|
@@ -13,7 +13,7 @@ export * from "./generate-image/ImageGenerationModel.js";
|
|
13
13
|
export * from "./generate-image/PromptTemplateImageGenerationModel.js";
|
14
14
|
export * from "./generate-image/generateImage.js";
|
15
15
|
export * from "./generate-speech/index.js";
|
16
|
-
export * from "./generate-
|
16
|
+
export * from "./generate-object/index.js";
|
17
17
|
export * from "./generate-text/index.js";
|
18
18
|
export * from "./generate-transcription/TranscriptionEvent.js";
|
19
19
|
export * from "./generate-transcription/TranscriptionModel.js";
|
package/model-function/index.js
CHANGED
@@ -13,7 +13,7 @@ export * from "./generate-image/ImageGenerationModel.js";
|
|
13
13
|
export * from "./generate-image/PromptTemplateImageGenerationModel.js";
|
14
14
|
export * from "./generate-image/generateImage.js";
|
15
15
|
export * from "./generate-speech/index.js";
|
16
|
-
export * from "./generate-
|
16
|
+
export * from "./generate-object/index.js";
|
17
17
|
export * from "./generate-text/index.js";
|
18
18
|
export * from "./generate-transcription/TranscriptionEvent.js";
|
19
19
|
export * from "./generate-transcription/TranscriptionModel.js";
|
@@ -134,7 +134,7 @@ class CohereTextGenerationModel extends AbstractModel_js_1.AbstractModel {
|
|
134
134
|
}
|
135
135
|
restoreGeneratedTexts(rawResponse) {
|
136
136
|
return this.processTextGenerationResponse((0, validateTypes_js_1.validateTypes)({
|
137
|
-
|
137
|
+
value: rawResponse,
|
138
138
|
schema: (0, ZodSchema_js_1.zodSchema)(cohereTextGenerationResponseSchema),
|
139
139
|
}));
|
140
140
|
}
|
@@ -131,7 +131,7 @@ export class CohereTextGenerationModel extends AbstractModel {
|
|
131
131
|
}
|
132
132
|
restoreGeneratedTexts(rawResponse) {
|
133
133
|
return this.processTextGenerationResponse(validateTypes({
|
134
|
-
|
134
|
+
value: rawResponse,
|
135
135
|
schema: zodSchema(cohereTextGenerationResponseSchema),
|
136
136
|
}));
|
137
137
|
}
|
@@ -134,7 +134,7 @@ class ElevenLabsSpeechModel extends AbstractModel_js_1.AbstractModel {
|
|
134
134
|
queue.push({ type: "error", error: parseResult.error });
|
135
135
|
return;
|
136
136
|
}
|
137
|
-
const response = parseResult.
|
137
|
+
const response = parseResult.value;
|
138
138
|
if ("error" in response) {
|
139
139
|
queue.push({ type: "error", error: response });
|
140
140
|
return;
|
@@ -131,7 +131,7 @@ export class ElevenLabsSpeechModel extends AbstractModel {
|
|
131
131
|
queue.push({ type: "error", error: parseResult.error });
|
132
132
|
return;
|
133
133
|
}
|
134
|
-
const response = parseResult.
|
134
|
+
const response = parseResult.value;
|
135
135
|
if ("error" in response) {
|
136
136
|
queue.push({ type: "error", error: response });
|
137
137
|
return;
|
@@ -112,7 +112,7 @@ class HuggingFaceTextGenerationModel extends AbstractModel_js_1.AbstractModel {
|
|
112
112
|
}
|
113
113
|
restoreGeneratedTexts(rawResponse) {
|
114
114
|
return this.processTextGenerationResponse((0, validateTypes_js_1.validateTypes)({
|
115
|
-
|
115
|
+
value: rawResponse,
|
116
116
|
schema: (0, ZodSchema_js_1.zodSchema)(huggingFaceTextGenerationResponseSchema),
|
117
117
|
}));
|
118
118
|
}
|
@@ -109,7 +109,7 @@ export class HuggingFaceTextGenerationModel extends AbstractModel {
|
|
109
109
|
}
|
110
110
|
restoreGeneratedTexts(rawResponse) {
|
111
111
|
return this.processTextGenerationResponse(validateTypes({
|
112
|
-
|
112
|
+
value: rawResponse,
|
113
113
|
schema: zodSchema(huggingFaceTextGenerationResponseSchema),
|
114
114
|
}));
|
115
115
|
}
|
@@ -22,7 +22,7 @@ function text() {
|
|
22
22
|
}
|
23
23
|
exports.text = text;
|
24
24
|
/**
|
25
|
-
* BakLLaVA 1 uses a Vicuna 1 prompt. This mapping combines it with the LlamaCpp prompt
|
25
|
+
* BakLLaVA 1 uses a Vicuna 1 prompt. This mapping combines it with the LlamaCpp prompt.
|
26
26
|
*
|
27
27
|
* @see https://github.com/SkunkworksAI/BakLLaVA
|
28
28
|
*/
|
@@ -7,7 +7,7 @@ import { LlamaCppCompletionPrompt } from "./LlamaCppCompletionModel.js";
|
|
7
7
|
*/
|
8
8
|
export declare function text(): TextGenerationPromptTemplate<string, LlamaCppCompletionPrompt>;
|
9
9
|
/**
|
10
|
-
* BakLLaVA 1 uses a Vicuna 1 prompt. This mapping combines it with the LlamaCpp prompt
|
10
|
+
* BakLLaVA 1 uses a Vicuna 1 prompt. This mapping combines it with the LlamaCpp prompt.
|
11
11
|
*
|
12
12
|
* @see https://github.com/SkunkworksAI/BakLLaVA
|
13
13
|
*/
|
@@ -18,7 +18,7 @@ export function text() {
|
|
18
18
|
};
|
19
19
|
}
|
20
20
|
/**
|
21
|
-
* BakLLaVA 1 uses a Vicuna 1 prompt. This mapping combines it with the LlamaCpp prompt
|
21
|
+
* BakLLaVA 1 uses a Vicuna 1 prompt. This mapping combines it with the LlamaCpp prompt.
|
22
22
|
*
|
23
23
|
* @see https://github.com/SkunkworksAI/BakLLaVA
|
24
24
|
*/
|
@@ -8,7 +8,7 @@ const ZodSchema_js_1 = require("../../core/schema/ZodSchema.cjs");
|
|
8
8
|
const parseJSON_js_1 = require("../../core/schema/parseJSON.cjs");
|
9
9
|
const validateTypes_js_1 = require("../../core/schema/validateTypes.cjs");
|
10
10
|
const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
|
11
|
-
const
|
11
|
+
const ObjectFromTextStreamingModel_js_1 = require("../../model-function/generate-object/ObjectFromTextStreamingModel.cjs");
|
12
12
|
const PromptTemplateTextStreamingModel_js_1 = require("../../model-function/generate-text/PromptTemplateTextStreamingModel.cjs");
|
13
13
|
const TextGenerationModel_js_1 = require("../../model-function/generate-text/TextGenerationModel.cjs");
|
14
14
|
const AsyncQueue_js_1 = require("../../util/AsyncQueue.cjs");
|
@@ -138,7 +138,7 @@ class LlamaCppCompletionModel extends AbstractModel_js_1.AbstractModel {
|
|
138
138
|
}
|
139
139
|
restoreGeneratedTexts(rawResponse) {
|
140
140
|
return this.processTextGenerationResponse((0, validateTypes_js_1.validateTypes)({
|
141
|
-
|
141
|
+
value: rawResponse,
|
142
142
|
schema: (0, ZodSchema_js_1.zodSchema)(llamaCppTextGenerationResponseSchema),
|
143
143
|
}));
|
144
144
|
}
|
@@ -170,13 +170,13 @@ class LlamaCppCompletionModel extends AbstractModel_js_1.AbstractModel {
|
|
170
170
|
extractTextDelta(delta) {
|
171
171
|
return delta.content;
|
172
172
|
}
|
173
|
-
|
173
|
+
asObjectGenerationModel(promptTemplate) {
|
174
174
|
return "adaptModel" in promptTemplate
|
175
|
-
? new
|
175
|
+
? new ObjectFromTextStreamingModel_js_1.ObjectFromTextStreamingModel({
|
176
176
|
model: promptTemplate.adaptModel(this),
|
177
177
|
template: promptTemplate,
|
178
178
|
})
|
179
|
-
: new
|
179
|
+
: new ObjectFromTextStreamingModel_js_1.ObjectFromTextStreamingModel({
|
180
180
|
model: this,
|
181
181
|
template: promptTemplate,
|
182
182
|
});
|
@@ -6,8 +6,8 @@ import { JsonSchemaProducer } from "../../core/schema/JsonSchemaProducer.js";
|
|
6
6
|
import { Schema } from "../../core/schema/Schema.js";
|
7
7
|
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
8
8
|
import { Delta } from "../../model-function/Delta.js";
|
9
|
-
import {
|
10
|
-
import {
|
9
|
+
import { FlexibleObjectFromTextPromptTemplate, ObjectFromTextPromptTemplate } from "../../model-function/generate-object/ObjectFromTextPromptTemplate.js";
|
10
|
+
import { ObjectFromTextStreamingModel } from "../../model-function/generate-object/ObjectFromTextStreamingModel.js";
|
11
11
|
import { PromptTemplateTextStreamingModel } from "../../model-function/generate-text/PromptTemplateTextStreamingModel.js";
|
12
12
|
import { TextGenerationModelSettings, TextStreamingBaseModel, TextStreamingModel } from "../../model-function/generate-text/TextGenerationModel.js";
|
13
13
|
import { TextGenerationPromptTemplate } from "../../model-function/generate-text/TextGenerationPromptTemplate.js";
|
@@ -387,7 +387,7 @@ export declare class LlamaCppCompletionModel<CONTEXT_WINDOW_SIZE extends number
|
|
387
387
|
content: string;
|
388
388
|
}>>>;
|
389
389
|
extractTextDelta(delta: unknown): string;
|
390
|
-
|
390
|
+
asObjectGenerationModel<INPUT_PROMPT, LlamaCppPrompt>(promptTemplate: ObjectFromTextPromptTemplate<INPUT_PROMPT, LlamaCppPrompt> | FlexibleObjectFromTextPromptTemplate<INPUT_PROMPT, unknown>): ObjectFromTextStreamingModel<INPUT_PROMPT, unknown, TextStreamingModel<unknown, TextGenerationModelSettings>> | ObjectFromTextStreamingModel<INPUT_PROMPT, LlamaCppPrompt, TextStreamingModel<LlamaCppPrompt, TextGenerationModelSettings>>;
|
391
391
|
withJsonOutput(schema: Schema<unknown> & JsonSchemaProducer): this;
|
392
392
|
private get promptTemplateProvider();
|
393
393
|
withTextPrompt(): PromptTemplateTextStreamingModel<string, LlamaCppCompletionPrompt, LlamaCppCompletionModelSettings<CONTEXT_WINDOW_SIZE>, this>;
|
@@ -5,7 +5,7 @@ import { zodSchema } from "../../core/schema/ZodSchema.js";
|
|
5
5
|
import { parseJSON } from "../../core/schema/parseJSON.js";
|
6
6
|
import { validateTypes } from "../../core/schema/validateTypes.js";
|
7
7
|
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
8
|
-
import {
|
8
|
+
import { ObjectFromTextStreamingModel } from "../../model-function/generate-object/ObjectFromTextStreamingModel.js";
|
9
9
|
import { PromptTemplateTextStreamingModel } from "../../model-function/generate-text/PromptTemplateTextStreamingModel.js";
|
10
10
|
import { textGenerationModelProperties, } from "../../model-function/generate-text/TextGenerationModel.js";
|
11
11
|
import { AsyncQueue } from "../../util/AsyncQueue.js";
|
@@ -135,7 +135,7 @@ export class LlamaCppCompletionModel extends AbstractModel {
|
|
135
135
|
}
|
136
136
|
restoreGeneratedTexts(rawResponse) {
|
137
137
|
return this.processTextGenerationResponse(validateTypes({
|
138
|
-
|
138
|
+
value: rawResponse,
|
139
139
|
schema: zodSchema(llamaCppTextGenerationResponseSchema),
|
140
140
|
}));
|
141
141
|
}
|
@@ -167,13 +167,13 @@ export class LlamaCppCompletionModel extends AbstractModel {
|
|
167
167
|
extractTextDelta(delta) {
|
168
168
|
return delta.content;
|
169
169
|
}
|
170
|
-
|
170
|
+
asObjectGenerationModel(promptTemplate) {
|
171
171
|
return "adaptModel" in promptTemplate
|
172
|
-
? new
|
172
|
+
? new ObjectFromTextStreamingModel({
|
173
173
|
model: promptTemplate.adaptModel(this),
|
174
174
|
template: promptTemplate,
|
175
175
|
})
|
176
|
-
: new
|
176
|
+
: new ObjectFromTextStreamingModel({
|
177
177
|
model: this,
|
178
178
|
template: promptTemplate,
|
179
179
|
});
|
@@ -93,7 +93,7 @@ class MistralChatModel extends AbstractModel_js_1.AbstractModel {
|
|
93
93
|
}
|
94
94
|
restoreGeneratedTexts(rawResponse) {
|
95
95
|
return this.processTextGenerationResponse((0, validateTypes_js_1.validateTypes)({
|
96
|
-
|
96
|
+
value: rawResponse,
|
97
97
|
schema: (0, ZodSchema_js_1.zodSchema)(mistralChatResponseSchema),
|
98
98
|
}));
|
99
99
|
}
|
@@ -90,7 +90,7 @@ export class MistralChatModel extends AbstractModel {
|
|
90
90
|
}
|
91
91
|
restoreGeneratedTexts(rawResponse) {
|
92
92
|
return this.processTextGenerationResponse(validateTypes({
|
93
|
-
|
93
|
+
value: rawResponse,
|
94
94
|
schema: zodSchema(mistralChatResponseSchema),
|
95
95
|
}));
|
96
96
|
}
|
@@ -9,7 +9,7 @@ const ZodSchema_js_1 = require("../../core/schema/ZodSchema.cjs");
|
|
9
9
|
const parseJSON_js_1 = require("../../core/schema/parseJSON.cjs");
|
10
10
|
const validateTypes_js_1 = require("../../core/schema/validateTypes.cjs");
|
11
11
|
const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
|
12
|
-
const
|
12
|
+
const ObjectFromTextStreamingModel_js_1 = require("../../model-function/generate-object/ObjectFromTextStreamingModel.cjs");
|
13
13
|
const PromptTemplateTextStreamingModel_js_1 = require("../../model-function/generate-text/PromptTemplateTextStreamingModel.cjs");
|
14
14
|
const TextGenerationModel_js_1 = require("../../model-function/generate-text/TextGenerationModel.cjs");
|
15
15
|
const TextGenerationToolCallModel_js_1 = require("../../tool/generate-tool-call/TextGenerationToolCallModel.cjs");
|
@@ -125,7 +125,7 @@ class OllamaChatModel extends AbstractModel_js_1.AbstractModel {
|
|
125
125
|
}
|
126
126
|
restoreGeneratedTexts(rawResponse) {
|
127
127
|
return this.processTextGenerationResponse((0, validateTypes_js_1.validateTypes)({
|
128
|
-
|
128
|
+
value: rawResponse,
|
129
129
|
schema: (0, ZodSchema_js_1.zodSchema)(ollamaChatResponseSchema),
|
130
130
|
}));
|
131
131
|
}
|
@@ -161,13 +161,13 @@ class OllamaChatModel extends AbstractModel_js_1.AbstractModel {
|
|
161
161
|
template: promptTemplate,
|
162
162
|
});
|
163
163
|
}
|
164
|
-
|
164
|
+
asObjectGenerationModel(promptTemplate) {
|
165
165
|
return "adaptModel" in promptTemplate
|
166
|
-
? new
|
166
|
+
? new ObjectFromTextStreamingModel_js_1.ObjectFromTextStreamingModel({
|
167
167
|
model: promptTemplate.adaptModel(this),
|
168
168
|
template: promptTemplate,
|
169
169
|
})
|
170
|
-
: new
|
170
|
+
: new ObjectFromTextStreamingModel_js_1.ObjectFromTextStreamingModel({
|
171
171
|
model: this,
|
172
172
|
template: promptTemplate,
|
173
173
|
});
|
@@ -266,7 +266,7 @@ exports.OllamaChatResponseFormat = {
|
|
266
266
|
requestBodyValues,
|
267
267
|
});
|
268
268
|
}
|
269
|
-
if (parsedResult.
|
269
|
+
if (parsedResult.value.done === false) {
|
270
270
|
throw new ApiCallError_js_1.ApiCallError({
|
271
271
|
message: "Incomplete Ollama response received",
|
272
272
|
statusCode: response.status,
|
@@ -276,7 +276,7 @@ exports.OllamaChatResponseFormat = {
|
|
276
276
|
isRetryable: true,
|
277
277
|
});
|
278
278
|
}
|
279
|
-
return parsedResult.
|
279
|
+
return parsedResult.value;
|
280
280
|
}),
|
281
281
|
},
|
282
282
|
/**
|
@@ -3,8 +3,8 @@ import { FunctionCallOptions } from "../../core/FunctionOptions.js";
|
|
3
3
|
import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
|
4
4
|
import { ResponseHandler } from "../../core/api/postToApi.js";
|
5
5
|
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
6
|
-
import {
|
7
|
-
import {
|
6
|
+
import { FlexibleObjectFromTextPromptTemplate, ObjectFromTextPromptTemplate } from "../../model-function/generate-object/ObjectFromTextPromptTemplate.js";
|
7
|
+
import { ObjectFromTextStreamingModel } from "../../model-function/generate-object/ObjectFromTextStreamingModel.js";
|
8
8
|
import { PromptTemplateTextStreamingModel } from "../../model-function/generate-text/PromptTemplateTextStreamingModel.js";
|
9
9
|
import { TextStreamingBaseModel, TextStreamingModel } from "../../model-function/generate-text/TextGenerationModel.js";
|
10
10
|
import { TextGenerationPromptTemplate } from "../../model-function/generate-text/TextGenerationPromptTemplate.js";
|
@@ -103,7 +103,7 @@ export declare class OllamaChatModel extends AbstractModel<OllamaChatModelSettin
|
|
103
103
|
extractTextDelta(delta: unknown): string | undefined;
|
104
104
|
asToolCallGenerationModel<INPUT_PROMPT>(promptTemplate: ToolCallPromptTemplate<INPUT_PROMPT, OllamaChatPrompt>): TextGenerationToolCallModel<INPUT_PROMPT, OllamaChatPrompt, this>;
|
105
105
|
asToolCallsOrTextGenerationModel<INPUT_PROMPT>(promptTemplate: ToolCallsPromptTemplate<INPUT_PROMPT, OllamaChatPrompt>): TextGenerationToolCallsModel<INPUT_PROMPT, OllamaChatPrompt, this>;
|
106
|
-
|
106
|
+
asObjectGenerationModel<INPUT_PROMPT, OllamaChatPrompt>(promptTemplate: ObjectFromTextPromptTemplate<INPUT_PROMPT, OllamaChatPrompt> | FlexibleObjectFromTextPromptTemplate<INPUT_PROMPT, unknown>): ObjectFromTextStreamingModel<INPUT_PROMPT, unknown, TextStreamingModel<unknown, import("../../model-function/generate-text/TextGenerationModel.js").TextGenerationModelSettings>> | ObjectFromTextStreamingModel<INPUT_PROMPT, OllamaChatPrompt, TextStreamingModel<OllamaChatPrompt, import("../../model-function/generate-text/TextGenerationModel.js").TextGenerationModelSettings>>;
|
107
107
|
withTextPrompt(): PromptTemplateTextStreamingModel<string, OllamaChatPrompt, OllamaChatModelSettings, this>;
|
108
108
|
withInstructionPrompt(): PromptTemplateTextStreamingModel<import("../../index.js").InstructionPrompt, OllamaChatPrompt, OllamaChatModelSettings, this>;
|
109
109
|
withChatPrompt(): PromptTemplateTextStreamingModel<import("../../index.js").ChatPrompt, OllamaChatPrompt, OllamaChatModelSettings, this>;
|
@@ -6,7 +6,7 @@ import { zodSchema } from "../../core/schema/ZodSchema.js";
|
|
6
6
|
import { safeParseJSON } from "../../core/schema/parseJSON.js";
|
7
7
|
import { validateTypes } from "../../core/schema/validateTypes.js";
|
8
8
|
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
9
|
-
import {
|
9
|
+
import { ObjectFromTextStreamingModel } from "../../model-function/generate-object/ObjectFromTextStreamingModel.js";
|
10
10
|
import { PromptTemplateTextStreamingModel } from "../../model-function/generate-text/PromptTemplateTextStreamingModel.js";
|
11
11
|
import { textGenerationModelProperties, } from "../../model-function/generate-text/TextGenerationModel.js";
|
12
12
|
import { TextGenerationToolCallModel, } from "../../tool/generate-tool-call/TextGenerationToolCallModel.js";
|
@@ -122,7 +122,7 @@ export class OllamaChatModel extends AbstractModel {
|
|
122
122
|
}
|
123
123
|
restoreGeneratedTexts(rawResponse) {
|
124
124
|
return this.processTextGenerationResponse(validateTypes({
|
125
|
-
|
125
|
+
value: rawResponse,
|
126
126
|
schema: zodSchema(ollamaChatResponseSchema),
|
127
127
|
}));
|
128
128
|
}
|
@@ -158,13 +158,13 @@ export class OllamaChatModel extends AbstractModel {
|
|
158
158
|
template: promptTemplate,
|
159
159
|
});
|
160
160
|
}
|
161
|
-
|
161
|
+
asObjectGenerationModel(promptTemplate) {
|
162
162
|
return "adaptModel" in promptTemplate
|
163
|
-
? new
|
163
|
+
? new ObjectFromTextStreamingModel({
|
164
164
|
model: promptTemplate.adaptModel(this),
|
165
165
|
template: promptTemplate,
|
166
166
|
})
|
167
|
-
: new
|
167
|
+
: new ObjectFromTextStreamingModel({
|
168
168
|
model: this,
|
169
169
|
template: promptTemplate,
|
170
170
|
});
|
@@ -262,7 +262,7 @@ export const OllamaChatResponseFormat = {
|
|
262
262
|
requestBodyValues,
|
263
263
|
});
|
264
264
|
}
|
265
|
-
if (parsedResult.
|
265
|
+
if (parsedResult.value.done === false) {
|
266
266
|
throw new ApiCallError({
|
267
267
|
message: "Incomplete Ollama response received",
|
268
268
|
statusCode: response.status,
|
@@ -272,7 +272,7 @@ export const OllamaChatResponseFormat = {
|
|
272
272
|
isRetryable: true,
|
273
273
|
});
|
274
274
|
}
|
275
|
-
return parsedResult.
|
275
|
+
return parsedResult.value;
|
276
276
|
}),
|
277
277
|
},
|
278
278
|
/**
|
@@ -9,7 +9,7 @@ const ZodSchema_js_1 = require("../../core/schema/ZodSchema.cjs");
|
|
9
9
|
const parseJSON_js_1 = require("../../core/schema/parseJSON.cjs");
|
10
10
|
const validateTypes_js_1 = require("../../core/schema/validateTypes.cjs");
|
11
11
|
const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
|
12
|
-
const
|
12
|
+
const ObjectFromTextStreamingModel_js_1 = require("../../model-function/generate-object/ObjectFromTextStreamingModel.cjs");
|
13
13
|
const PromptTemplateTextStreamingModel_js_1 = require("../../model-function/generate-text/PromptTemplateTextStreamingModel.cjs");
|
14
14
|
const TextGenerationModel_js_1 = require("../../model-function/generate-text/TextGenerationModel.cjs");
|
15
15
|
const TextGenerationToolCallModel_js_1 = require("../../tool/generate-tool-call/TextGenerationToolCallModel.cjs");
|
@@ -128,7 +128,7 @@ class OllamaCompletionModel extends AbstractModel_js_1.AbstractModel {
|
|
128
128
|
}
|
129
129
|
restoreGeneratedTexts(rawResponse) {
|
130
130
|
return this.processTextGenerationResponse((0, validateTypes_js_1.validateTypes)({
|
131
|
-
|
131
|
+
value: rawResponse,
|
132
132
|
schema: (0, ZodSchema_js_1.zodSchema)(ollamaCompletionResponseSchema),
|
133
133
|
}));
|
134
134
|
}
|
@@ -153,13 +153,13 @@ class OllamaCompletionModel extends AbstractModel_js_1.AbstractModel {
|
|
153
153
|
const chunk = delta;
|
154
154
|
return chunk.done === true ? undefined : chunk.response;
|
155
155
|
}
|
156
|
-
|
156
|
+
asObjectGenerationModel(promptTemplate) {
|
157
157
|
return "adaptModel" in promptTemplate
|
158
|
-
? new
|
158
|
+
? new ObjectFromTextStreamingModel_js_1.ObjectFromTextStreamingModel({
|
159
159
|
model: promptTemplate.adaptModel(this),
|
160
160
|
template: promptTemplate,
|
161
161
|
})
|
162
|
-
: new
|
162
|
+
: new ObjectFromTextStreamingModel_js_1.ObjectFromTextStreamingModel({
|
163
163
|
model: this,
|
164
164
|
template: promptTemplate,
|
165
165
|
});
|
@@ -272,7 +272,7 @@ exports.OllamaCompletionResponseFormat = {
|
|
272
272
|
requestBodyValues,
|
273
273
|
});
|
274
274
|
}
|
275
|
-
if (parsedResult.
|
275
|
+
if (parsedResult.value.done === false) {
|
276
276
|
throw new ApiCallError_js_1.ApiCallError({
|
277
277
|
message: "Incomplete Ollama response received",
|
278
278
|
statusCode: response.status,
|
@@ -282,7 +282,7 @@ exports.OllamaCompletionResponseFormat = {
|
|
282
282
|
isRetryable: true,
|
283
283
|
});
|
284
284
|
}
|
285
|
-
return parsedResult.
|
285
|
+
return parsedResult.value;
|
286
286
|
}),
|
287
287
|
},
|
288
288
|
/**
|
@@ -3,8 +3,8 @@ import { FunctionCallOptions } from "../../core/FunctionOptions.js";
|
|
3
3
|
import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
|
4
4
|
import { ResponseHandler } from "../../core/api/postToApi.js";
|
5
5
|
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
6
|
-
import {
|
7
|
-
import {
|
6
|
+
import { FlexibleObjectFromTextPromptTemplate, ObjectFromTextPromptTemplate } from "../../model-function/generate-object/ObjectFromTextPromptTemplate.js";
|
7
|
+
import { ObjectFromTextStreamingModel } from "../../model-function/generate-object/ObjectFromTextStreamingModel.js";
|
8
8
|
import { PromptTemplateTextStreamingModel } from "../../model-function/generate-text/PromptTemplateTextStreamingModel.js";
|
9
9
|
import { TextStreamingBaseModel, TextStreamingModel } from "../../model-function/generate-text/TextGenerationModel.js";
|
10
10
|
import { TextGenerationPromptTemplate } from "../../model-function/generate-text/TextGenerationPromptTemplate.js";
|
@@ -137,7 +137,7 @@ export declare class OllamaCompletionModel<CONTEXT_WINDOW_SIZE extends number |
|
|
137
137
|
context?: number[] | undefined;
|
138
138
|
}>>>;
|
139
139
|
extractTextDelta(delta: unknown): string | undefined;
|
140
|
-
|
140
|
+
asObjectGenerationModel<INPUT_PROMPT, OllamaCompletionPrompt>(promptTemplate: ObjectFromTextPromptTemplate<INPUT_PROMPT, OllamaCompletionPrompt> | FlexibleObjectFromTextPromptTemplate<INPUT_PROMPT, unknown>): ObjectFromTextStreamingModel<INPUT_PROMPT, unknown, TextStreamingModel<unknown, import("../../model-function/generate-text/TextGenerationModel.js").TextGenerationModelSettings>> | ObjectFromTextStreamingModel<INPUT_PROMPT, OllamaCompletionPrompt, TextStreamingModel<OllamaCompletionPrompt, import("../../model-function/generate-text/TextGenerationModel.js").TextGenerationModelSettings>>;
|
141
141
|
asToolCallGenerationModel<INPUT_PROMPT>(promptTemplate: ToolCallPromptTemplate<INPUT_PROMPT, OllamaCompletionPrompt>): TextGenerationToolCallModel<INPUT_PROMPT, OllamaCompletionPrompt, this>;
|
142
142
|
asToolCallsOrTextGenerationModel<INPUT_PROMPT>(promptTemplate: ToolCallsPromptTemplate<INPUT_PROMPT, OllamaCompletionPrompt>): TextGenerationToolCallsModel<INPUT_PROMPT, OllamaCompletionPrompt, this>;
|
143
143
|
private get promptTemplateProvider();
|
@@ -6,7 +6,7 @@ import { zodSchema } from "../../core/schema/ZodSchema.js";
|
|
6
6
|
import { safeParseJSON } from "../../core/schema/parseJSON.js";
|
7
7
|
import { validateTypes } from "../../core/schema/validateTypes.js";
|
8
8
|
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
9
|
-
import {
|
9
|
+
import { ObjectFromTextStreamingModel } from "../../model-function/generate-object/ObjectFromTextStreamingModel.js";
|
10
10
|
import { PromptTemplateTextStreamingModel } from "../../model-function/generate-text/PromptTemplateTextStreamingModel.js";
|
11
11
|
import { textGenerationModelProperties, } from "../../model-function/generate-text/TextGenerationModel.js";
|
12
12
|
import { TextGenerationToolCallModel, } from "../../tool/generate-tool-call/TextGenerationToolCallModel.js";
|
@@ -125,7 +125,7 @@ export class OllamaCompletionModel extends AbstractModel {
|
|
125
125
|
}
|
126
126
|
restoreGeneratedTexts(rawResponse) {
|
127
127
|
return this.processTextGenerationResponse(validateTypes({
|
128
|
-
|
128
|
+
value: rawResponse,
|
129
129
|
schema: zodSchema(ollamaCompletionResponseSchema),
|
130
130
|
}));
|
131
131
|
}
|
@@ -150,13 +150,13 @@ export class OllamaCompletionModel extends AbstractModel {
|
|
150
150
|
const chunk = delta;
|
151
151
|
return chunk.done === true ? undefined : chunk.response;
|
152
152
|
}
|
153
|
-
|
153
|
+
asObjectGenerationModel(promptTemplate) {
|
154
154
|
return "adaptModel" in promptTemplate
|
155
|
-
? new
|
155
|
+
? new ObjectFromTextStreamingModel({
|
156
156
|
model: promptTemplate.adaptModel(this),
|
157
157
|
template: promptTemplate,
|
158
158
|
})
|
159
|
-
: new
|
159
|
+
: new ObjectFromTextStreamingModel({
|
160
160
|
model: this,
|
161
161
|
template: promptTemplate,
|
162
162
|
});
|
@@ -268,7 +268,7 @@ export const OllamaCompletionResponseFormat = {
|
|
268
268
|
requestBodyValues,
|
269
269
|
});
|
270
270
|
}
|
271
|
-
if (parsedResult.
|
271
|
+
if (parsedResult.value.done === false) {
|
272
272
|
throw new ApiCallError({
|
273
273
|
message: "Incomplete Ollama response received",
|
274
274
|
statusCode: response.status,
|
@@ -278,7 +278,7 @@ export const OllamaCompletionResponseFormat = {
|
|
278
278
|
isRetryable: true,
|
279
279
|
});
|
280
280
|
}
|
281
|
-
return parsedResult.
|
281
|
+
return parsedResult.value;
|
282
282
|
}),
|
283
283
|
},
|
284
284
|
/**
|
@@ -5,8 +5,8 @@ const zod_1 = require("zod");
|
|
5
5
|
const ApiCallError_js_1 = require("../../core/api/ApiCallError.cjs");
|
6
6
|
const retryNever_js_1 = require("../../core/api/retryNever.cjs");
|
7
7
|
const ZodSchema_js_1 = require("../../core/schema/ZodSchema.cjs");
|
8
|
-
const
|
9
|
-
const
|
8
|
+
const jsonObjectPrompt_js_1 = require("../../model-function/generate-object/jsonObjectPrompt.cjs");
|
9
|
+
const streamObject_js_1 = require("../../model-function/generate-object/streamObject.cjs");
|
10
10
|
const generateText_js_1 = require("../../model-function/generate-text/generateText.cjs");
|
11
11
|
const streamText_js_1 = require("../../model-function/generate-text/streamText.cjs");
|
12
12
|
const JsonTestServer_js_1 = require("../../test/JsonTestServer.cjs");
|
@@ -93,7 +93,7 @@ describe("streamText", () => {
|
|
93
93
|
]);
|
94
94
|
});
|
95
95
|
});
|
96
|
-
describe("
|
96
|
+
describe("streamObject", () => {
|
97
97
|
const server = new StreamingTestServer_js_1.StreamingTestServer("http://127.0.0.1:11434/api/generate");
|
98
98
|
server.setupTestEnvironment();
|
99
99
|
it("should return a text stream", async () => {
|
@@ -114,21 +114,23 @@ describe("streamStructure", () => {
|
|
114
114
|
`"total_duration":521893000,"load_duration":957666,"prompt_eval_count":74,"prompt_eval_duration":302508000,` +
|
115
115
|
`"eval_count":12,"eval_duration":215282000}\n`,
|
116
116
|
];
|
117
|
-
const stream = await (0,
|
117
|
+
const stream = await (0, streamObject_js_1.streamObject)({
|
118
118
|
model: new OllamaCompletionModel_js_1.OllamaCompletionModel({
|
119
119
|
model: "mistral:text",
|
120
120
|
promptTemplate: OllamaCompletionPrompt_js_1.Text,
|
121
121
|
format: "json",
|
122
122
|
raw: true,
|
123
|
-
}).
|
123
|
+
}).asObjectGenerationModel(jsonObjectPrompt_js_1.jsonObjectPrompt.text()),
|
124
124
|
schema: (0, ZodSchema_js_1.zodSchema)(zod_1.z.object({ name: zod_1.z.string() })),
|
125
125
|
prompt: "generate a name",
|
126
126
|
});
|
127
|
-
|
127
|
+
const streamAsArray = await (0, arrayFromAsync_js_1.arrayFromAsync)(stream);
|
128
|
+
expect(streamAsArray.map((entry) => entry.partialObject)).toStrictEqual([
|
128
129
|
{},
|
129
130
|
{ name: "" },
|
130
131
|
{ name: "M" },
|
131
132
|
{ name: "Mike" },
|
133
|
+
{ name: "Mike" }, // double occurrence on purpose (stream text)
|
132
134
|
]);
|
133
135
|
});
|
134
136
|
});
|
@@ -3,8 +3,8 @@ import { z } from "zod";
|
|
3
3
|
import { ApiCallError } from "../../core/api/ApiCallError.js";
|
4
4
|
import { retryNever } from "../../core/api/retryNever.js";
|
5
5
|
import { zodSchema } from "../../core/schema/ZodSchema.js";
|
6
|
-
import {
|
7
|
-
import {
|
6
|
+
import { jsonObjectPrompt } from "../../model-function/generate-object/jsonObjectPrompt.js";
|
7
|
+
import { streamObject } from "../../model-function/generate-object/streamObject.js";
|
8
8
|
import { generateText } from "../../model-function/generate-text/generateText.js";
|
9
9
|
import { streamText } from "../../model-function/generate-text/streamText.js";
|
10
10
|
import { JsonTestServer } from "../../test/JsonTestServer.js";
|
@@ -91,7 +91,7 @@ describe("streamText", () => {
|
|
91
91
|
]);
|
92
92
|
});
|
93
93
|
});
|
94
|
-
describe("
|
94
|
+
describe("streamObject", () => {
|
95
95
|
const server = new StreamingTestServer("http://127.0.0.1:11434/api/generate");
|
96
96
|
server.setupTestEnvironment();
|
97
97
|
it("should return a text stream", async () => {
|
@@ -112,21 +112,23 @@ describe("streamStructure", () => {
|
|
112
112
|
`"total_duration":521893000,"load_duration":957666,"prompt_eval_count":74,"prompt_eval_duration":302508000,` +
|
113
113
|
`"eval_count":12,"eval_duration":215282000}\n`,
|
114
114
|
];
|
115
|
-
const stream = await
|
115
|
+
const stream = await streamObject({
|
116
116
|
model: new OllamaCompletionModel({
|
117
117
|
model: "mistral:text",
|
118
118
|
promptTemplate: Text,
|
119
119
|
format: "json",
|
120
120
|
raw: true,
|
121
|
-
}).
|
121
|
+
}).asObjectGenerationModel(jsonObjectPrompt.text()),
|
122
122
|
schema: zodSchema(z.object({ name: z.string() })),
|
123
123
|
prompt: "generate a name",
|
124
124
|
});
|
125
|
-
|
125
|
+
const streamAsArray = await arrayFromAsync(stream);
|
126
|
+
expect(streamAsArray.map((entry) => entry.partialObject)).toStrictEqual([
|
126
127
|
{},
|
127
128
|
{ name: "" },
|
128
129
|
{ name: "M" },
|
129
130
|
{ name: "Mike" },
|
131
|
+
{ name: "Mike" }, // double occurrence on purpose (stream text)
|
130
132
|
]);
|
131
133
|
});
|
132
134
|
});
|