modelfusion 0.110.0 → 0.111.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 +15 -0
- package/core/api/ApiFacade.cjs +20 -0
- package/core/api/ApiFacade.d.ts +4 -0
- package/core/api/ApiFacade.js +4 -0
- package/core/api/BaseUrlApiConfiguration.cjs +47 -5
- package/core/api/BaseUrlApiConfiguration.d.ts +23 -6
- package/core/api/BaseUrlApiConfiguration.js +45 -4
- package/core/api/BaseUrlApiConfiguration.test.cjs +11 -0
- package/core/api/BaseUrlApiConfiguration.test.d.ts +1 -0
- package/core/api/BaseUrlApiConfiguration.test.js +9 -0
- package/core/api/callWithRetryAndThrottle.cjs +3 -3
- package/core/api/callWithRetryAndThrottle.js +3 -3
- package/core/api/index.cjs +15 -2
- package/core/api/index.d.ts +2 -2
- package/core/api/index.js +2 -2
- package/core/api/postToApi.cjs +28 -5
- package/core/api/postToApi.d.ts +5 -4
- package/core/api/postToApi.js +26 -4
- package/core/api/throttleOff.cjs +8 -0
- package/core/api/throttleOff.d.ts +5 -0
- package/core/api/throttleOff.js +4 -0
- package/internal/index.cjs +2 -8
- package/internal/index.d.ts +1 -1
- package/internal/index.js +1 -1
- package/model-function/generate-structure/generateStructure.d.ts +1 -1
- package/model-provider/anthropic/AnthropicApiConfiguration.cjs +14 -6
- package/model-provider/anthropic/AnthropicApiConfiguration.d.ts +7 -8
- package/model-provider/anthropic/AnthropicApiConfiguration.js +15 -7
- package/model-provider/anthropic/AnthropicError.cjs +7 -27
- package/model-provider/anthropic/AnthropicError.d.ts +21 -16
- package/model-provider/anthropic/AnthropicError.js +7 -25
- package/model-provider/anthropic/AnthropicFacade.cjs +10 -1
- package/model-provider/anthropic/AnthropicFacade.d.ts +9 -0
- package/model-provider/anthropic/AnthropicFacade.js +8 -0
- package/model-provider/anthropic/AnthropicTextGenerationModel.cjs +22 -24
- package/model-provider/anthropic/AnthropicTextGenerationModel.js +23 -25
- package/model-provider/anthropic/index.cjs +1 -4
- package/model-provider/anthropic/index.d.ts +1 -1
- package/model-provider/anthropic/index.js +0 -1
- package/model-provider/automatic1111/Automatic1111ApiConfiguration.cjs +12 -4
- package/model-provider/automatic1111/Automatic1111ApiConfiguration.d.ts +3 -3
- package/model-provider/automatic1111/Automatic1111ApiConfiguration.js +12 -4
- package/model-provider/automatic1111/Automatic1111Error.cjs +3 -3
- package/model-provider/automatic1111/Automatic1111Error.d.ts +13 -3
- package/model-provider/automatic1111/Automatic1111Error.js +4 -4
- package/model-provider/automatic1111/Automatic1111Facade.cjs +9 -9
- package/model-provider/automatic1111/Automatic1111Facade.d.ts +6 -6
- package/model-provider/automatic1111/Automatic1111Facade.js +7 -7
- package/model-provider/automatic1111/Automatic1111ImageGenerationModel.cjs +11 -7
- package/model-provider/automatic1111/Automatic1111ImageGenerationModel.js +11 -7
- package/model-provider/cohere/CohereApiConfiguration.cjs +14 -6
- package/model-provider/cohere/CohereApiConfiguration.d.ts +7 -8
- package/model-provider/cohere/CohereApiConfiguration.js +15 -7
- package/model-provider/cohere/CohereError.cjs +8 -43
- package/model-provider/cohere/CohereError.d.ts +9 -16
- package/model-provider/cohere/CohereError.js +8 -41
- package/model-provider/cohere/CohereFacade.cjs +12 -3
- package/model-provider/cohere/CohereFacade.d.ts +11 -2
- package/model-provider/cohere/CohereFacade.js +10 -2
- package/model-provider/cohere/CohereTextEmbeddingModel.cjs +18 -22
- package/model-provider/cohere/CohereTextEmbeddingModel.js +18 -22
- package/model-provider/cohere/CohereTextGenerationModel.cjs +31 -39
- package/model-provider/cohere/CohereTextGenerationModel.d.ts +110 -8
- package/model-provider/cohere/CohereTextGenerationModel.js +31 -39
- package/model-provider/cohere/CohereTokenizer.cjs +32 -41
- package/model-provider/cohere/CohereTokenizer.d.ts +2 -2
- package/model-provider/cohere/CohereTokenizer.js +32 -41
- package/model-provider/cohere/index.cjs +1 -3
- package/model-provider/cohere/index.d.ts +1 -1
- package/model-provider/cohere/index.js +0 -1
- package/model-provider/elevenlabs/ElevenLabsApiConfiguration.cjs +14 -6
- package/model-provider/elevenlabs/ElevenLabsApiConfiguration.d.ts +7 -8
- package/model-provider/elevenlabs/ElevenLabsApiConfiguration.js +15 -7
- package/model-provider/elevenlabs/ElevenLabsFacade.cjs +10 -1
- package/model-provider/elevenlabs/ElevenLabsFacade.d.ts +9 -0
- package/model-provider/elevenlabs/ElevenLabsFacade.js +8 -0
- package/model-provider/elevenlabs/ElevenLabsSpeechModel.cjs +42 -53
- package/model-provider/elevenlabs/ElevenLabsSpeechModel.js +44 -55
- package/model-provider/huggingface/HuggingFaceApiConfiguration.cjs +14 -6
- package/model-provider/huggingface/HuggingFaceApiConfiguration.d.ts +7 -8
- package/model-provider/huggingface/HuggingFaceApiConfiguration.js +15 -7
- package/model-provider/huggingface/HuggingFaceError.cjs +7 -29
- package/model-provider/huggingface/HuggingFaceError.d.ts +9 -16
- package/model-provider/huggingface/HuggingFaceError.js +7 -27
- package/model-provider/huggingface/HuggingFaceFacade.cjs +10 -1
- package/model-provider/huggingface/HuggingFaceFacade.d.ts +9 -0
- package/model-provider/huggingface/HuggingFaceFacade.js +8 -0
- package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.cjs +17 -27
- package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.js +17 -27
- package/model-provider/huggingface/HuggingFaceTextGenerationModel.cjs +22 -23
- package/model-provider/huggingface/HuggingFaceTextGenerationModel.js +22 -23
- package/model-provider/huggingface/index.cjs +1 -3
- package/model-provider/huggingface/index.d.ts +1 -1
- package/model-provider/huggingface/index.js +0 -1
- package/model-provider/llamacpp/LlamaCppApiConfiguration.cjs +13 -6
- package/model-provider/llamacpp/LlamaCppApiConfiguration.d.ts +7 -9
- package/model-provider/llamacpp/LlamaCppApiConfiguration.js +14 -7
- package/model-provider/llamacpp/LlamaCppCompletionModel.cjs +4 -4
- package/model-provider/llamacpp/LlamaCppCompletionModel.d.ts +173 -5
- package/model-provider/llamacpp/LlamaCppCompletionModel.js +4 -4
- package/model-provider/llamacpp/LlamaCppError.cjs +7 -27
- package/model-provider/llamacpp/LlamaCppError.d.ts +9 -16
- package/model-provider/llamacpp/LlamaCppError.js +7 -25
- package/model-provider/llamacpp/LlamaCppFacade.cjs +10 -2
- package/model-provider/llamacpp/LlamaCppFacade.d.ts +8 -1
- package/model-provider/llamacpp/LlamaCppFacade.js +8 -1
- package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.cjs +10 -14
- package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.js +10 -14
- package/model-provider/llamacpp/LlamaCppTokenizer.cjs +14 -18
- package/model-provider/llamacpp/LlamaCppTokenizer.js +14 -18
- package/model-provider/llamacpp/index.cjs +1 -3
- package/model-provider/llamacpp/index.d.ts +1 -1
- package/model-provider/llamacpp/index.js +0 -1
- package/model-provider/lmnt/LmntApiConfiguration.cjs +14 -6
- package/model-provider/lmnt/LmntApiConfiguration.d.ts +7 -8
- package/model-provider/lmnt/LmntApiConfiguration.js +15 -7
- package/model-provider/lmnt/LmntFacade.cjs +11 -2
- package/model-provider/lmnt/LmntFacade.d.ts +10 -1
- package/model-provider/lmnt/LmntFacade.js +9 -1
- package/model-provider/lmnt/LmntSpeechModel.cjs +53 -41
- package/model-provider/lmnt/LmntSpeechModel.d.ts +51 -3
- package/model-provider/lmnt/LmntSpeechModel.js +54 -42
- package/model-provider/mistral/MistralApiConfiguration.cjs +14 -6
- package/model-provider/mistral/MistralApiConfiguration.d.ts +9 -11
- package/model-provider/mistral/MistralApiConfiguration.js +15 -7
- package/model-provider/mistral/MistralChatModel.cjs +4 -4
- package/model-provider/mistral/MistralChatModel.d.ts +48 -3
- package/model-provider/mistral/MistralChatModel.js +5 -5
- package/model-provider/mistral/MistralError.cjs +3 -3
- package/model-provider/mistral/MistralError.d.ts +15 -3
- package/model-provider/mistral/MistralError.js +4 -4
- package/model-provider/mistral/MistralFacade.cjs +5 -1
- package/model-provider/mistral/MistralFacade.d.ts +10 -3
- package/model-provider/mistral/MistralFacade.js +6 -2
- package/model-provider/mistral/MistralTextEmbeddingModel.cjs +2 -1
- package/model-provider/mistral/MistralTextEmbeddingModel.js +2 -1
- package/model-provider/ollama/OllamaApiConfiguration.cjs +13 -6
- package/model-provider/ollama/OllamaApiConfiguration.d.ts +7 -10
- package/model-provider/ollama/OllamaApiConfiguration.js +14 -7
- package/model-provider/ollama/OllamaChatModel.cjs +4 -4
- package/model-provider/ollama/OllamaChatModel.d.ts +46 -5
- package/model-provider/ollama/OllamaChatModel.js +5 -5
- package/model-provider/ollama/OllamaCompletionModel.cjs +4 -4
- package/model-provider/ollama/OllamaCompletionModel.d.ts +40 -5
- package/model-provider/ollama/OllamaCompletionModel.js +5 -5
- package/model-provider/ollama/OllamaError.cjs +3 -3
- package/model-provider/ollama/OllamaError.d.ts +7 -3
- package/model-provider/ollama/OllamaError.js +4 -4
- package/model-provider/ollama/OllamaFacade.cjs +6 -2
- package/model-provider/ollama/OllamaFacade.d.ts +8 -3
- package/model-provider/ollama/OllamaFacade.js +6 -2
- package/model-provider/ollama/OllamaTextEmbeddingModel.cjs +15 -16
- package/model-provider/ollama/OllamaTextEmbeddingModel.js +15 -16
- package/model-provider/openai/AbstractOpenAIChatModel.cjs +4 -4
- package/model-provider/openai/AbstractOpenAIChatModel.d.ts +148 -2
- package/model-provider/openai/AbstractOpenAIChatModel.js +4 -4
- package/model-provider/openai/AbstractOpenAICompletionModel.cjs +30 -32
- package/model-provider/openai/AbstractOpenAICompletionModel.js +30 -32
- package/model-provider/openai/AzureOpenAIApiConfiguration.d.ts +9 -8
- package/model-provider/openai/OpenAIApiConfiguration.cjs +14 -6
- package/model-provider/openai/OpenAIApiConfiguration.d.ts +7 -8
- package/model-provider/openai/OpenAIApiConfiguration.js +15 -7
- package/model-provider/openai/OpenAIError.cjs +8 -8
- package/model-provider/openai/OpenAIError.d.ts +27 -3
- package/model-provider/openai/OpenAIError.js +9 -9
- package/model-provider/openai/OpenAIFacade.cjs +23 -2
- package/model-provider/openai/OpenAIFacade.d.ts +20 -2
- package/model-provider/openai/OpenAIFacade.js +20 -1
- package/model-provider/openai/OpenAIImageGenerationModel.cjs +20 -21
- package/model-provider/openai/OpenAIImageGenerationModel.js +20 -21
- package/model-provider/openai/OpenAISpeechModel.cjs +17 -22
- package/model-provider/openai/OpenAISpeechModel.js +17 -22
- package/model-provider/openai/OpenAITextEmbeddingModel.cjs +18 -23
- package/model-provider/openai/OpenAITextEmbeddingModel.js +18 -23
- package/model-provider/openai/OpenAITranscriptionModel.cjs +42 -48
- package/model-provider/openai/OpenAITranscriptionModel.d.ts +14 -10
- package/model-provider/openai/OpenAITranscriptionModel.js +42 -48
- package/model-provider/openai-compatible/FireworksAIApiConfiguration.cjs +11 -7
- package/model-provider/openai-compatible/FireworksAIApiConfiguration.d.ts +4 -9
- package/model-provider/openai-compatible/FireworksAIApiConfiguration.js +12 -8
- package/model-provider/openai-compatible/OpenAICompatibleFacade.cjs +25 -1
- package/model-provider/openai-compatible/OpenAICompatibleFacade.d.ts +23 -0
- package/model-provider/openai-compatible/OpenAICompatibleFacade.js +22 -0
- package/model-provider/openai-compatible/TogetherAIApiConfiguration.cjs +11 -7
- package/model-provider/openai-compatible/TogetherAIApiConfiguration.d.ts +4 -9
- package/model-provider/openai-compatible/TogetherAIApiConfiguration.js +12 -8
- package/model-provider/stability/StabilityApiConfiguration.cjs +13 -12
- package/model-provider/stability/StabilityApiConfiguration.d.ts +4 -4
- package/model-provider/stability/StabilityApiConfiguration.js +13 -12
- package/model-provider/stability/StabilityError.cjs +3 -3
- package/model-provider/stability/StabilityError.d.ts +7 -3
- package/model-provider/stability/StabilityError.js +4 -4
- package/model-provider/stability/StabilityFacade.cjs +9 -9
- package/model-provider/stability/StabilityFacade.d.ts +8 -8
- package/model-provider/stability/StabilityFacade.js +7 -7
- package/model-provider/stability/StabilityImageGenerationModel.cjs +2 -1
- package/model-provider/stability/StabilityImageGenerationModel.js +2 -1
- package/model-provider/whispercpp/WhisperCppApiConfiguration.cjs +13 -6
- package/model-provider/whispercpp/WhisperCppApiConfiguration.d.ts +7 -10
- package/model-provider/whispercpp/WhisperCppApiConfiguration.js +14 -7
- package/model-provider/whispercpp/WhisperCppFacade.cjs +9 -5
- package/model-provider/whispercpp/WhisperCppFacade.d.ts +7 -2
- package/model-provider/whispercpp/WhisperCppFacade.js +8 -4
- package/model-provider/whispercpp/WhisperCppTranscriptionModel.cjs +5 -2
- package/model-provider/whispercpp/WhisperCppTranscriptionModel.js +6 -3
- package/package.json +1 -1
- package/tool/WebSearchTool.cjs +2 -2
- package/tool/WebSearchTool.d.ts +1 -2
- package/tool/WebSearchTool.js +3 -3
- package/vector-index/memory/MemoryVectorIndex.cjs +2 -2
- package/vector-index/memory/MemoryVectorIndex.js +3 -3
- package/core/api/BaseUrlPartsApiConfiguration.cjs +0 -53
- package/core/api/BaseUrlPartsApiConfiguration.d.ts +0 -26
- package/core/api/BaseUrlPartsApiConfiguration.js +0 -49
- package/core/api/throttleUnlimitedConcurrency.cjs +0 -8
- package/core/api/throttleUnlimitedConcurrency.d.ts +0 -5
- package/core/api/throttleUnlimitedConcurrency.js +0 -4
- package/model-provider/elevenlabs/ElevenLabsError.cjs +0 -30
- package/model-provider/elevenlabs/ElevenLabsError.d.ts +0 -3
- package/model-provider/elevenlabs/ElevenLabsError.js +0 -26
- package/model-provider/lmnt/LmntError.cjs +0 -30
- package/model-provider/lmnt/LmntError.d.ts +0 -3
- package/model-provider/lmnt/LmntError.js +0 -26
@@ -1,5 +1,14 @@
|
|
1
|
+
import { PartialBaseUrlPartsApiConfigurationOptions } from "../../core/api/BaseUrlApiConfiguration.js";
|
2
|
+
import { HuggingFaceApiConfiguration } from "./HuggingFaceApiConfiguration.js";
|
1
3
|
import { HuggingFaceTextEmbeddingModel, HuggingFaceTextEmbeddingModelSettings } from "./HuggingFaceTextEmbeddingModel.js";
|
2
4
|
import { HuggingFaceTextGenerationModel, HuggingFaceTextGenerationModelSettings } from "./HuggingFaceTextGenerationModel.js";
|
5
|
+
/**
|
6
|
+
* Creates an API configuration for the HuggingFace API.
|
7
|
+
* It calls the API at https://api-inference.huggingface.co/models and uses the `HUGGINGFACE_API_KEY` env variable by default.
|
8
|
+
*/
|
9
|
+
export declare function Api(settings: PartialBaseUrlPartsApiConfigurationOptions & {
|
10
|
+
apiKey?: string;
|
11
|
+
}): HuggingFaceApiConfiguration;
|
3
12
|
/**
|
4
13
|
* Create a text generation model that calls a Hugging Face Inference API Text Generation Task.
|
5
14
|
*
|
@@ -1,5 +1,13 @@
|
|
1
|
+
import { HuggingFaceApiConfiguration } from "./HuggingFaceApiConfiguration.js";
|
1
2
|
import { HuggingFaceTextEmbeddingModel, } from "./HuggingFaceTextEmbeddingModel.js";
|
2
3
|
import { HuggingFaceTextGenerationModel, } from "./HuggingFaceTextGenerationModel.js";
|
4
|
+
/**
|
5
|
+
* Creates an API configuration for the HuggingFace API.
|
6
|
+
* It calls the API at https://api-inference.huggingface.co/models and uses the `HUGGINGFACE_API_KEY` env variable by default.
|
7
|
+
*/
|
8
|
+
export function Api(settings) {
|
9
|
+
return new HuggingFaceApiConfiguration(settings);
|
10
|
+
}
|
3
11
|
/**
|
4
12
|
* Create a text generation model that calls a Hugging Face Inference API Text Generation Task.
|
5
13
|
*
|
@@ -4,6 +4,7 @@ exports.HuggingFaceTextEmbeddingModel = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
5
5
|
const callWithRetryAndThrottle_js_1 = require("../../core/api/callWithRetryAndThrottle.cjs");
|
6
6
|
const postToApi_js_1 = require("../../core/api/postToApi.cjs");
|
7
|
+
const ZodSchema_js_1 = require("../../core/schema/ZodSchema.cjs");
|
7
8
|
const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
|
8
9
|
const HuggingFaceApiConfiguration_js_1 = require("./HuggingFaceApiConfiguration.cjs");
|
9
10
|
const HuggingFaceError_js_1 = require("./HuggingFaceError.cjs");
|
@@ -83,17 +84,24 @@ class HuggingFaceTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
|
|
83
84
|
if (texts.length > this.maxValuesPerCall) {
|
84
85
|
throw new Error(`The HuggingFace feature extraction API is configured to only support ${this.maxValuesPerCall} texts per API call.`);
|
85
86
|
}
|
87
|
+
const api = this.settings.api ?? new HuggingFaceApiConfiguration_js_1.HuggingFaceApiConfiguration();
|
88
|
+
const abortSignal = options?.run?.abortSignal;
|
86
89
|
return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
|
87
|
-
retry:
|
88
|
-
throttle:
|
89
|
-
call: async () =>
|
90
|
-
|
91
|
-
|
92
|
-
|
90
|
+
retry: api.retry,
|
91
|
+
throttle: api.throttle,
|
92
|
+
call: async () => (0, postToApi_js_1.postJsonToApi)({
|
93
|
+
url: api.assembleUrl(`/${this.settings.model}`),
|
94
|
+
headers: api.headers,
|
95
|
+
body: {
|
96
|
+
inputs: texts,
|
97
|
+
options: {
|
98
|
+
use_cache: this.settings.options?.useCache ?? true,
|
99
|
+
wait_for_model: this.settings.options?.waitForModel ?? true,
|
100
|
+
},
|
93
101
|
},
|
94
|
-
|
95
|
-
|
96
|
-
|
102
|
+
failedResponseHandler: HuggingFaceError_js_1.failedHuggingFaceCallResponseHandler,
|
103
|
+
successfulResponseHandler: (0, postToApi_js_1.createJsonResponseHandler)((0, ZodSchema_js_1.zodSchema)(huggingFaceTextEmbeddingResponseSchema)),
|
104
|
+
abortSignal,
|
97
105
|
}),
|
98
106
|
});
|
99
107
|
}
|
@@ -116,21 +124,3 @@ class HuggingFaceTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
|
|
116
124
|
}
|
117
125
|
exports.HuggingFaceTextEmbeddingModel = HuggingFaceTextEmbeddingModel;
|
118
126
|
const huggingFaceTextEmbeddingResponseSchema = zod_1.z.array(zod_1.z.array(zod_1.z.number()));
|
119
|
-
async function callHuggingFaceTextGenerationAPI({ api = new HuggingFaceApiConfiguration_js_1.HuggingFaceApiConfiguration(), abortSignal, model, inputs, options, }) {
|
120
|
-
return (0, postToApi_js_1.postJsonToApi)({
|
121
|
-
url: api.assembleUrl(`/${model}`),
|
122
|
-
headers: api.headers,
|
123
|
-
body: {
|
124
|
-
inputs,
|
125
|
-
options: options
|
126
|
-
? {
|
127
|
-
use_cache: options?.useCache,
|
128
|
-
wait_for_model: options?.waitForModel,
|
129
|
-
}
|
130
|
-
: {},
|
131
|
-
},
|
132
|
-
failedResponseHandler: HuggingFaceError_js_1.failedHuggingFaceCallResponseHandler,
|
133
|
-
successfulResponseHandler: (0, postToApi_js_1.createJsonResponseHandler)(huggingFaceTextEmbeddingResponseSchema),
|
134
|
-
abortSignal,
|
135
|
-
});
|
136
|
-
}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { z } from "zod";
|
2
2
|
import { callWithRetryAndThrottle } from "../../core/api/callWithRetryAndThrottle.js";
|
3
3
|
import { createJsonResponseHandler, postJsonToApi, } from "../../core/api/postToApi.js";
|
4
|
+
import { zodSchema } from "../../core/schema/ZodSchema.js";
|
4
5
|
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
5
6
|
import { HuggingFaceApiConfiguration } from "./HuggingFaceApiConfiguration.js";
|
6
7
|
import { failedHuggingFaceCallResponseHandler } from "./HuggingFaceError.js";
|
@@ -80,17 +81,24 @@ export class HuggingFaceTextEmbeddingModel extends AbstractModel {
|
|
80
81
|
if (texts.length > this.maxValuesPerCall) {
|
81
82
|
throw new Error(`The HuggingFace feature extraction API is configured to only support ${this.maxValuesPerCall} texts per API call.`);
|
82
83
|
}
|
84
|
+
const api = this.settings.api ?? new HuggingFaceApiConfiguration();
|
85
|
+
const abortSignal = options?.run?.abortSignal;
|
83
86
|
return callWithRetryAndThrottle({
|
84
|
-
retry:
|
85
|
-
throttle:
|
86
|
-
call: async () =>
|
87
|
-
|
88
|
-
|
89
|
-
|
87
|
+
retry: api.retry,
|
88
|
+
throttle: api.throttle,
|
89
|
+
call: async () => postJsonToApi({
|
90
|
+
url: api.assembleUrl(`/${this.settings.model}`),
|
91
|
+
headers: api.headers,
|
92
|
+
body: {
|
93
|
+
inputs: texts,
|
94
|
+
options: {
|
95
|
+
use_cache: this.settings.options?.useCache ?? true,
|
96
|
+
wait_for_model: this.settings.options?.waitForModel ?? true,
|
97
|
+
},
|
90
98
|
},
|
91
|
-
|
92
|
-
|
93
|
-
|
99
|
+
failedResponseHandler: failedHuggingFaceCallResponseHandler,
|
100
|
+
successfulResponseHandler: createJsonResponseHandler(zodSchema(huggingFaceTextEmbeddingResponseSchema)),
|
101
|
+
abortSignal,
|
94
102
|
}),
|
95
103
|
});
|
96
104
|
}
|
@@ -112,21 +120,3 @@ export class HuggingFaceTextEmbeddingModel extends AbstractModel {
|
|
112
120
|
}
|
113
121
|
}
|
114
122
|
const huggingFaceTextEmbeddingResponseSchema = z.array(z.array(z.number()));
|
115
|
-
async function callHuggingFaceTextGenerationAPI({ api = new HuggingFaceApiConfiguration(), abortSignal, model, inputs, options, }) {
|
116
|
-
return postJsonToApi({
|
117
|
-
url: api.assembleUrl(`/${model}`),
|
118
|
-
headers: api.headers,
|
119
|
-
body: {
|
120
|
-
inputs,
|
121
|
-
options: options
|
122
|
-
? {
|
123
|
-
use_cache: options?.useCache,
|
124
|
-
wait_for_model: options?.waitForModel,
|
125
|
-
}
|
126
|
-
: {},
|
127
|
-
},
|
128
|
-
failedResponseHandler: failedHuggingFaceCallResponseHandler,
|
129
|
-
successfulResponseHandler: createJsonResponseHandler(huggingFaceTextEmbeddingResponseSchema),
|
130
|
-
abortSignal,
|
131
|
-
});
|
132
|
-
}
|
@@ -4,6 +4,7 @@ exports.HuggingFaceTextGenerationModel = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
5
5
|
const callWithRetryAndThrottle_js_1 = require("../../core/api/callWithRetryAndThrottle.cjs");
|
6
6
|
const postToApi_js_1 = require("../../core/api/postToApi.cjs");
|
7
|
+
const ZodSchema_js_1 = require("../../core/schema/ZodSchema.cjs");
|
7
8
|
const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
|
8
9
|
const PromptTemplateTextGenerationModel_js_1 = require("../../model-function/generate-text/PromptTemplateTextGenerationModel.cjs");
|
9
10
|
const TextGenerationModel_js_1 = require("../../model-function/generate-text/TextGenerationModel.cjs");
|
@@ -64,30 +65,28 @@ class HuggingFaceTextGenerationModel extends AbstractModel_js_1.AbstractModel {
|
|
64
65
|
return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
|
65
66
|
retry: api.retry,
|
66
67
|
throttle: api.throttle,
|
67
|
-
call: async () => {
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
wait_for_model: true,
|
84
|
-
},
|
68
|
+
call: async () => (0, postToApi_js_1.postJsonToApi)({
|
69
|
+
url: api.assembleUrl(`/${this.settings.model}`),
|
70
|
+
headers: api.headers,
|
71
|
+
body: {
|
72
|
+
inputs: prompt,
|
73
|
+
top_k: this.settings.topK,
|
74
|
+
top_p: this.settings.topP,
|
75
|
+
temperature: this.settings.temperature,
|
76
|
+
repetition_penalty: this.settings.repetitionPenalty,
|
77
|
+
max_new_tokens: this.settings.maxGenerationTokens,
|
78
|
+
max_time: this.settings.maxTime,
|
79
|
+
num_return_sequences: this.settings.numberOfGenerations,
|
80
|
+
do_sample: this.settings.doSample,
|
81
|
+
options: {
|
82
|
+
use_cache: true,
|
83
|
+
wait_for_model: true,
|
85
84
|
},
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
},
|
85
|
+
},
|
86
|
+
failedResponseHandler: HuggingFaceError_js_1.failedHuggingFaceCallResponseHandler,
|
87
|
+
successfulResponseHandler: (0, postToApi_js_1.createJsonResponseHandler)((0, ZodSchema_js_1.zodSchema)(huggingFaceTextGenerationResponseSchema)),
|
88
|
+
abortSignal,
|
89
|
+
}),
|
91
90
|
});
|
92
91
|
}
|
93
92
|
get settingsForEvent() {
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { z } from "zod";
|
2
2
|
import { callWithRetryAndThrottle } from "../../core/api/callWithRetryAndThrottle.js";
|
3
3
|
import { createJsonResponseHandler, postJsonToApi, } from "../../core/api/postToApi.js";
|
4
|
+
import { zodSchema } from "../../core/schema/ZodSchema.js";
|
4
5
|
import { AbstractModel } from "../../model-function/AbstractModel.js";
|
5
6
|
import { PromptTemplateTextGenerationModel } from "../../model-function/generate-text/PromptTemplateTextGenerationModel.js";
|
6
7
|
import { textGenerationModelProperties, } from "../../model-function/generate-text/TextGenerationModel.js";
|
@@ -61,30 +62,28 @@ export class HuggingFaceTextGenerationModel extends AbstractModel {
|
|
61
62
|
return callWithRetryAndThrottle({
|
62
63
|
retry: api.retry,
|
63
64
|
throttle: api.throttle,
|
64
|
-
call: async () => {
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
wait_for_model: true,
|
81
|
-
},
|
65
|
+
call: async () => postJsonToApi({
|
66
|
+
url: api.assembleUrl(`/${this.settings.model}`),
|
67
|
+
headers: api.headers,
|
68
|
+
body: {
|
69
|
+
inputs: prompt,
|
70
|
+
top_k: this.settings.topK,
|
71
|
+
top_p: this.settings.topP,
|
72
|
+
temperature: this.settings.temperature,
|
73
|
+
repetition_penalty: this.settings.repetitionPenalty,
|
74
|
+
max_new_tokens: this.settings.maxGenerationTokens,
|
75
|
+
max_time: this.settings.maxTime,
|
76
|
+
num_return_sequences: this.settings.numberOfGenerations,
|
77
|
+
do_sample: this.settings.doSample,
|
78
|
+
options: {
|
79
|
+
use_cache: true,
|
80
|
+
wait_for_model: true,
|
82
81
|
},
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
},
|
82
|
+
},
|
83
|
+
failedResponseHandler: failedHuggingFaceCallResponseHandler,
|
84
|
+
successfulResponseHandler: createJsonResponseHandler(zodSchema(huggingFaceTextGenerationResponseSchema)),
|
85
|
+
abortSignal,
|
86
|
+
}),
|
88
87
|
});
|
89
88
|
}
|
90
89
|
get settingsForEvent() {
|
@@ -26,10 +26,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
26
|
return result;
|
27
27
|
};
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
29
|
-
exports.huggingface =
|
29
|
+
exports.huggingface = void 0;
|
30
30
|
__exportStar(require("./HuggingFaceApiConfiguration.cjs"), exports);
|
31
|
-
var HuggingFaceError_js_1 = require("./HuggingFaceError.cjs");
|
32
|
-
Object.defineProperty(exports, "HuggingFaceError", { enumerable: true, get: function () { return HuggingFaceError_js_1.HuggingFaceError; } });
|
33
31
|
exports.huggingface = __importStar(require("./HuggingFaceFacade.cjs"));
|
34
32
|
__exportStar(require("./HuggingFaceTextEmbeddingModel.cjs"), exports);
|
35
33
|
__exportStar(require("./HuggingFaceTextGenerationModel.cjs"), exports);
|
@@ -1,5 +1,5 @@
|
|
1
1
|
export * from "./HuggingFaceApiConfiguration.js";
|
2
|
-
export {
|
2
|
+
export { HuggingFaceErrorData } from "./HuggingFaceError.js";
|
3
3
|
export * as huggingface from "./HuggingFaceFacade.js";
|
4
4
|
export * from "./HuggingFaceTextEmbeddingModel.js";
|
5
5
|
export * from "./HuggingFaceTextGenerationModel.js";
|
@@ -1,5 +1,4 @@
|
|
1
1
|
export * from "./HuggingFaceApiConfiguration.js";
|
2
|
-
export { HuggingFaceError } from "./HuggingFaceError.js";
|
3
2
|
export * as huggingface from "./HuggingFaceFacade.js";
|
4
3
|
export * from "./HuggingFaceTextEmbeddingModel.js";
|
5
4
|
export * from "./HuggingFaceTextGenerationModel.js";
|
@@ -2,13 +2,20 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.LlamaCppApiConfiguration = void 0;
|
4
4
|
const BaseUrlApiConfiguration_js_1 = require("../../core/api/BaseUrlApiConfiguration.cjs");
|
5
|
-
|
6
|
-
|
5
|
+
/**
|
6
|
+
* Creates an API configuration for the Llama.cpp server.
|
7
|
+
* It calls the API at http://127.0.0.1:8080 by default.
|
8
|
+
*/
|
9
|
+
class LlamaCppApiConfiguration extends BaseUrlApiConfiguration_js_1.BaseUrlApiConfigurationWithDefaults {
|
10
|
+
constructor(settings = {}) {
|
7
11
|
super({
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
+
...settings,
|
13
|
+
baseUrlDefaults: {
|
14
|
+
protocol: "http",
|
15
|
+
host: "127.0.0.1",
|
16
|
+
port: "8080",
|
17
|
+
path: "",
|
18
|
+
},
|
12
19
|
});
|
13
20
|
}
|
14
21
|
}
|
@@ -1,10 +1,8 @@
|
|
1
|
-
import {
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
throttle?: ThrottleFunction;
|
9
|
-
});
|
1
|
+
import { BaseUrlApiConfigurationWithDefaults, PartialBaseUrlPartsApiConfigurationOptions } from "../../core/api/BaseUrlApiConfiguration.js";
|
2
|
+
/**
|
3
|
+
* Creates an API configuration for the Llama.cpp server.
|
4
|
+
* It calls the API at http://127.0.0.1:8080 by default.
|
5
|
+
*/
|
6
|
+
export declare class LlamaCppApiConfiguration extends BaseUrlApiConfigurationWithDefaults {
|
7
|
+
constructor(settings?: PartialBaseUrlPartsApiConfigurationOptions);
|
10
8
|
}
|
@@ -1,11 +1,18 @@
|
|
1
|
-
import {
|
2
|
-
|
3
|
-
|
1
|
+
import { BaseUrlApiConfigurationWithDefaults, } from "../../core/api/BaseUrlApiConfiguration.js";
|
2
|
+
/**
|
3
|
+
* Creates an API configuration for the Llama.cpp server.
|
4
|
+
* It calls the API at http://127.0.0.1:8080 by default.
|
5
|
+
*/
|
6
|
+
export class LlamaCppApiConfiguration extends BaseUrlApiConfigurationWithDefaults {
|
7
|
+
constructor(settings = {}) {
|
4
8
|
super({
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
+
...settings,
|
10
|
+
baseUrlDefaults: {
|
11
|
+
protocol: "http",
|
12
|
+
host: "127.0.0.1",
|
13
|
+
port: "8080",
|
14
|
+
path: "",
|
15
|
+
},
|
9
16
|
});
|
10
17
|
}
|
11
18
|
}
|
@@ -245,13 +245,13 @@ const llamaCppTextGenerationResponseSchema = zod_1.z.object({
|
|
245
245
|
tokens_predicted: zod_1.z.number(),
|
246
246
|
truncated: zod_1.z.boolean(),
|
247
247
|
});
|
248
|
-
const llamaCppTextStreamChunkSchema =
|
248
|
+
const llamaCppTextStreamChunkSchema = zod_1.z.discriminatedUnion("stop", [
|
249
249
|
zod_1.z.object({
|
250
250
|
content: zod_1.z.string(),
|
251
251
|
stop: zod_1.z.literal(false),
|
252
252
|
}),
|
253
253
|
llamaCppTextGenerationResponseSchema,
|
254
|
-
])
|
254
|
+
]);
|
255
255
|
async function createLlamaCppFullDeltaIterableQueue(stream) {
|
256
256
|
const queue = new AsyncQueue_js_1.AsyncQueue();
|
257
257
|
// process the stream asynchonously (no 'await' on purpose):
|
@@ -262,7 +262,7 @@ async function createLlamaCppFullDeltaIterableQueue(stream) {
|
|
262
262
|
const data = event.data;
|
263
263
|
const eventData = (0, parseJSON_js_1.parseJSON)({
|
264
264
|
text: data,
|
265
|
-
schema: llamaCppTextStreamChunkSchema,
|
265
|
+
schema: (0, ZodSchema_js_1.zodSchema)(llamaCppTextStreamChunkSchema),
|
266
266
|
});
|
267
267
|
queue.push({ type: "delta", deltaValue: eventData });
|
268
268
|
if (eventData.stop) {
|
@@ -287,7 +287,7 @@ exports.LlamaCppCompletionResponseFormat = {
|
|
287
287
|
*/
|
288
288
|
json: {
|
289
289
|
stream: false,
|
290
|
-
handler: (0, postToApi_js_1.createJsonResponseHandler)(llamaCppTextGenerationResponseSchema),
|
290
|
+
handler: (0, postToApi_js_1.createJsonResponseHandler)((0, ZodSchema_js_1.zodSchema)(llamaCppTextGenerationResponseSchema)),
|
291
291
|
},
|
292
292
|
/**
|
293
293
|
* Returns an async iterable over the full deltas (all choices, including full current state at time of event)
|
@@ -479,7 +479,130 @@ declare const llamaCppTextGenerationResponseSchema: z.ZodObject<{
|
|
479
479
|
truncated: boolean;
|
480
480
|
}>;
|
481
481
|
export type LlamaCppTextGenerationResponse = z.infer<typeof llamaCppTextGenerationResponseSchema>;
|
482
|
-
declare const llamaCppTextStreamChunkSchema:
|
482
|
+
declare const llamaCppTextStreamChunkSchema: z.ZodDiscriminatedUnion<"stop", [z.ZodObject<{
|
483
|
+
content: z.ZodString;
|
484
|
+
stop: z.ZodLiteral<false>;
|
485
|
+
}, "strip", z.ZodTypeAny, {
|
486
|
+
stop: false;
|
487
|
+
content: string;
|
488
|
+
}, {
|
489
|
+
stop: false;
|
490
|
+
content: string;
|
491
|
+
}>, z.ZodObject<{
|
492
|
+
content: z.ZodString;
|
493
|
+
stop: z.ZodLiteral<true>;
|
494
|
+
generation_settings: z.ZodObject<{
|
495
|
+
frequency_penalty: z.ZodNumber;
|
496
|
+
ignore_eos: z.ZodBoolean;
|
497
|
+
logit_bias: z.ZodArray<z.ZodNumber, "many">;
|
498
|
+
mirostat: z.ZodNumber;
|
499
|
+
mirostat_eta: z.ZodNumber;
|
500
|
+
mirostat_tau: z.ZodNumber;
|
501
|
+
model: z.ZodString;
|
502
|
+
n_ctx: z.ZodNumber;
|
503
|
+
n_keep: z.ZodNumber;
|
504
|
+
n_predict: z.ZodNumber;
|
505
|
+
n_probs: z.ZodNumber;
|
506
|
+
penalize_nl: z.ZodBoolean;
|
507
|
+
presence_penalty: z.ZodNumber;
|
508
|
+
repeat_last_n: z.ZodNumber;
|
509
|
+
repeat_penalty: z.ZodNumber;
|
510
|
+
seed: z.ZodNumber;
|
511
|
+
stop: z.ZodArray<z.ZodString, "many">;
|
512
|
+
stream: z.ZodBoolean;
|
513
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
514
|
+
tfs_z: z.ZodNumber;
|
515
|
+
top_k: z.ZodNumber;
|
516
|
+
top_p: z.ZodNumber;
|
517
|
+
typical_p: z.ZodNumber;
|
518
|
+
}, "strip", z.ZodTypeAny, {
|
519
|
+
model: string;
|
520
|
+
stream: boolean;
|
521
|
+
stop: string[];
|
522
|
+
seed: number;
|
523
|
+
mirostat: number;
|
524
|
+
frequency_penalty: number;
|
525
|
+
ignore_eos: boolean;
|
526
|
+
logit_bias: number[];
|
527
|
+
mirostat_eta: number;
|
528
|
+
mirostat_tau: number;
|
529
|
+
n_ctx: number;
|
530
|
+
n_keep: number;
|
531
|
+
n_predict: number;
|
532
|
+
n_probs: number;
|
533
|
+
penalize_nl: boolean;
|
534
|
+
presence_penalty: number;
|
535
|
+
repeat_last_n: number;
|
536
|
+
repeat_penalty: number;
|
537
|
+
tfs_z: number;
|
538
|
+
top_k: number;
|
539
|
+
top_p: number;
|
540
|
+
typical_p: number;
|
541
|
+
temperature?: number | undefined;
|
542
|
+
}, {
|
543
|
+
model: string;
|
544
|
+
stream: boolean;
|
545
|
+
stop: string[];
|
546
|
+
seed: number;
|
547
|
+
mirostat: number;
|
548
|
+
frequency_penalty: number;
|
549
|
+
ignore_eos: boolean;
|
550
|
+
logit_bias: number[];
|
551
|
+
mirostat_eta: number;
|
552
|
+
mirostat_tau: number;
|
553
|
+
n_ctx: number;
|
554
|
+
n_keep: number;
|
555
|
+
n_predict: number;
|
556
|
+
n_probs: number;
|
557
|
+
penalize_nl: boolean;
|
558
|
+
presence_penalty: number;
|
559
|
+
repeat_last_n: number;
|
560
|
+
repeat_penalty: number;
|
561
|
+
tfs_z: number;
|
562
|
+
top_k: number;
|
563
|
+
top_p: number;
|
564
|
+
typical_p: number;
|
565
|
+
temperature?: number | undefined;
|
566
|
+
}>;
|
567
|
+
model: z.ZodString;
|
568
|
+
prompt: z.ZodString;
|
569
|
+
stopped_eos: z.ZodBoolean;
|
570
|
+
stopped_limit: z.ZodBoolean;
|
571
|
+
stopped_word: z.ZodBoolean;
|
572
|
+
stopping_word: z.ZodString;
|
573
|
+
timings: z.ZodObject<{
|
574
|
+
predicted_ms: z.ZodNumber;
|
575
|
+
predicted_n: z.ZodNumber;
|
576
|
+
predicted_per_second: z.ZodNullable<z.ZodNumber>;
|
577
|
+
predicted_per_token_ms: z.ZodNullable<z.ZodNumber>;
|
578
|
+
prompt_ms: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
579
|
+
prompt_n: z.ZodNumber;
|
580
|
+
prompt_per_second: z.ZodNullable<z.ZodNumber>;
|
581
|
+
prompt_per_token_ms: z.ZodNullable<z.ZodNumber>;
|
582
|
+
}, "strip", z.ZodTypeAny, {
|
583
|
+
predicted_ms: number;
|
584
|
+
predicted_n: number;
|
585
|
+
predicted_per_second: number | null;
|
586
|
+
predicted_per_token_ms: number | null;
|
587
|
+
prompt_n: number;
|
588
|
+
prompt_per_second: number | null;
|
589
|
+
prompt_per_token_ms: number | null;
|
590
|
+
prompt_ms?: number | null | undefined;
|
591
|
+
}, {
|
592
|
+
predicted_ms: number;
|
593
|
+
predicted_n: number;
|
594
|
+
predicted_per_second: number | null;
|
595
|
+
predicted_per_token_ms: number | null;
|
596
|
+
prompt_n: number;
|
597
|
+
prompt_per_second: number | null;
|
598
|
+
prompt_per_token_ms: number | null;
|
599
|
+
prompt_ms?: number | null | undefined;
|
600
|
+
}>;
|
601
|
+
tokens_cached: z.ZodNumber;
|
602
|
+
tokens_evaluated: z.ZodNumber;
|
603
|
+
tokens_predicted: z.ZodNumber;
|
604
|
+
truncated: z.ZodBoolean;
|
605
|
+
}, "strip", z.ZodTypeAny, {
|
483
606
|
model: string;
|
484
607
|
stop: true;
|
485
608
|
content: string;
|
@@ -527,11 +650,56 @@ declare const llamaCppTextStreamChunkSchema: import("../../core/schema/ZodSchema
|
|
527
650
|
tokens_evaluated: number;
|
528
651
|
tokens_predicted: number;
|
529
652
|
truncated: boolean;
|
530
|
-
}
|
531
|
-
|
653
|
+
}, {
|
654
|
+
model: string;
|
655
|
+
stop: true;
|
532
656
|
content: string;
|
533
|
-
|
534
|
-
|
657
|
+
prompt: string;
|
658
|
+
generation_settings: {
|
659
|
+
model: string;
|
660
|
+
stream: boolean;
|
661
|
+
stop: string[];
|
662
|
+
seed: number;
|
663
|
+
mirostat: number;
|
664
|
+
frequency_penalty: number;
|
665
|
+
ignore_eos: boolean;
|
666
|
+
logit_bias: number[];
|
667
|
+
mirostat_eta: number;
|
668
|
+
mirostat_tau: number;
|
669
|
+
n_ctx: number;
|
670
|
+
n_keep: number;
|
671
|
+
n_predict: number;
|
672
|
+
n_probs: number;
|
673
|
+
penalize_nl: boolean;
|
674
|
+
presence_penalty: number;
|
675
|
+
repeat_last_n: number;
|
676
|
+
repeat_penalty: number;
|
677
|
+
tfs_z: number;
|
678
|
+
top_k: number;
|
679
|
+
top_p: number;
|
680
|
+
typical_p: number;
|
681
|
+
temperature?: number | undefined;
|
682
|
+
};
|
683
|
+
stopped_eos: boolean;
|
684
|
+
stopped_limit: boolean;
|
685
|
+
stopped_word: boolean;
|
686
|
+
stopping_word: string;
|
687
|
+
timings: {
|
688
|
+
predicted_ms: number;
|
689
|
+
predicted_n: number;
|
690
|
+
predicted_per_second: number | null;
|
691
|
+
predicted_per_token_ms: number | null;
|
692
|
+
prompt_n: number;
|
693
|
+
prompt_per_second: number | null;
|
694
|
+
prompt_per_token_ms: number | null;
|
695
|
+
prompt_ms?: number | null | undefined;
|
696
|
+
};
|
697
|
+
tokens_cached: number;
|
698
|
+
tokens_evaluated: number;
|
699
|
+
tokens_predicted: number;
|
700
|
+
truncated: boolean;
|
701
|
+
}>]>;
|
702
|
+
export type LlamaCppTextStreamChunk = z.infer<typeof llamaCppTextStreamChunkSchema>;
|
535
703
|
export type LlamaCppCompletionResponseFormatType<T> = {
|
536
704
|
stream: boolean;
|
537
705
|
handler: ResponseHandler<T>;
|
@@ -241,13 +241,13 @@ const llamaCppTextGenerationResponseSchema = z.object({
|
|
241
241
|
tokens_predicted: z.number(),
|
242
242
|
truncated: z.boolean(),
|
243
243
|
});
|
244
|
-
const llamaCppTextStreamChunkSchema =
|
244
|
+
const llamaCppTextStreamChunkSchema = z.discriminatedUnion("stop", [
|
245
245
|
z.object({
|
246
246
|
content: z.string(),
|
247
247
|
stop: z.literal(false),
|
248
248
|
}),
|
249
249
|
llamaCppTextGenerationResponseSchema,
|
250
|
-
])
|
250
|
+
]);
|
251
251
|
async function createLlamaCppFullDeltaIterableQueue(stream) {
|
252
252
|
const queue = new AsyncQueue();
|
253
253
|
// process the stream asynchonously (no 'await' on purpose):
|
@@ -258,7 +258,7 @@ async function createLlamaCppFullDeltaIterableQueue(stream) {
|
|
258
258
|
const data = event.data;
|
259
259
|
const eventData = parseJSON({
|
260
260
|
text: data,
|
261
|
-
schema: llamaCppTextStreamChunkSchema,
|
261
|
+
schema: zodSchema(llamaCppTextStreamChunkSchema),
|
262
262
|
});
|
263
263
|
queue.push({ type: "delta", deltaValue: eventData });
|
264
264
|
if (eventData.stop) {
|
@@ -283,7 +283,7 @@ export const LlamaCppCompletionResponseFormat = {
|
|
283
283
|
*/
|
284
284
|
json: {
|
285
285
|
stream: false,
|
286
|
-
handler: createJsonResponseHandler(llamaCppTextGenerationResponseSchema),
|
286
|
+
handler: createJsonResponseHandler(zodSchema(llamaCppTextGenerationResponseSchema)),
|
287
287
|
},
|
288
288
|
/**
|
289
289
|
* Returns an async iterable over the full deltas (all choices, including full current state at time of event)
|