modelfusion 0.109.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 +25 -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/{extension → internal}/index.cjs +2 -7
- package/{extension → internal}/index.d.ts +1 -1
- package/{extension → 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/OpenAICompletionModel.cjs +3 -91
- package/model-provider/openai/OpenAICompletionModel.d.ts +3 -71
- package/model-provider/openai/OpenAICompletionModel.js +3 -91
- 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.d.ts +1 -1
- 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/TikTokenTokenizer.cjs +0 -18
- package/model-provider/openai/TikTokenTokenizer.d.ts +3 -3
- package/model-provider/openai/TikTokenTokenizer.js +0 -18
- 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 +5 -5
- 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
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,30 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## v0.111.0 - 2024-01-01
|
4
|
+
|
5
|
+
Reworked API configuration support.
|
6
|
+
|
7
|
+
### Added
|
8
|
+
|
9
|
+
- All providers now have an `Api` function that you can call to create custom API configurations. The base URL set up is more flexible and allows you to override parts of the base URL selectively.
|
10
|
+
- `api` namespace with retry and throttle configurations
|
11
|
+
|
12
|
+
### Changed
|
13
|
+
|
14
|
+
- Updated Cohere models.
|
15
|
+
- Updated LMNT API calls to LMNT `v1` API.
|
16
|
+
- **breaking change**: Renamed `throttleUnlimitedConcurrency` to `throttleOff`.
|
17
|
+
|
18
|
+
## v0.110.0 - 2023-12-30
|
19
|
+
|
20
|
+
### Changed
|
21
|
+
|
22
|
+
- **breaking change**: renamed `modelfusion/extension` to `modelfusion/internal`. This requires updating `modelfusion-experimental` (if used) to `v0.3.0`
|
23
|
+
|
24
|
+
### Removed
|
25
|
+
|
26
|
+
- Deprecated OpenAI completion models that will be deactivated on January 4, 2024.
|
27
|
+
|
3
28
|
## v0.109.0 - 2023-12-30
|
4
29
|
|
5
30
|
### Added
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./retryNever.cjs"), exports);
|
18
|
+
__exportStar(require("./retryWithExponentialBackoff.cjs"), exports);
|
19
|
+
__exportStar(require("./throttleMaxConcurrency.cjs"), exports);
|
20
|
+
__exportStar(require("./throttleOff.cjs"), exports);
|
@@ -1,9 +1,9 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.BaseUrlApiConfiguration = void 0;
|
3
|
+
exports.BaseUrlApiConfigurationWithDefaults = exports.BaseUrlApiConfiguration = void 0;
|
4
4
|
const AbstractApiConfiguration_js_1 = require("./AbstractApiConfiguration.cjs");
|
5
5
|
/**
|
6
|
-
* An API configuration that uses
|
6
|
+
* An API configuration that uses different URL parts and a set of headers.
|
7
7
|
*
|
8
8
|
* You can use it to configure custom APIs for models, e.g. your own internal OpenAI proxy with custom headers.
|
9
9
|
*/
|
@@ -22,11 +22,53 @@ class BaseUrlApiConfiguration extends AbstractApiConfiguration_js_1.AbstractApiC
|
|
22
22
|
writable: true,
|
23
23
|
value: void 0
|
24
24
|
});
|
25
|
-
this.baseUrl = baseUrl;
|
26
|
-
this.headers = headers;
|
25
|
+
this.baseUrl = typeof baseUrl == "string" ? parseBaseUrl(baseUrl) : baseUrl;
|
26
|
+
this.headers = headers ?? {};
|
27
27
|
}
|
28
28
|
assembleUrl(path) {
|
29
|
-
|
29
|
+
let basePath = this.baseUrl.path;
|
30
|
+
// ensure base path ends without a slash
|
31
|
+
if (basePath.endsWith("/")) {
|
32
|
+
basePath = basePath.slice(0, -1);
|
33
|
+
}
|
34
|
+
// ensure path starts with a slash
|
35
|
+
if (!path.startsWith("/")) {
|
36
|
+
path = `/${path}`;
|
37
|
+
}
|
38
|
+
return `${this.baseUrl.protocol}://${this.baseUrl.host}:${this.baseUrl.port}${basePath}${path}`;
|
30
39
|
}
|
31
40
|
}
|
32
41
|
exports.BaseUrlApiConfiguration = BaseUrlApiConfiguration;
|
42
|
+
class BaseUrlApiConfigurationWithDefaults extends BaseUrlApiConfiguration {
|
43
|
+
constructor({ baseUrlDefaults, baseUrl, headers, retry, throttle, }) {
|
44
|
+
super({
|
45
|
+
baseUrl: resolveBaseUrl(baseUrl, baseUrlDefaults),
|
46
|
+
headers,
|
47
|
+
retry,
|
48
|
+
throttle,
|
49
|
+
});
|
50
|
+
}
|
51
|
+
}
|
52
|
+
exports.BaseUrlApiConfigurationWithDefaults = BaseUrlApiConfigurationWithDefaults;
|
53
|
+
function parseBaseUrl(baseUrl) {
|
54
|
+
const url = new URL(baseUrl);
|
55
|
+
return {
|
56
|
+
protocol: url.protocol.slice(0, -1), // remove trailing colon
|
57
|
+
host: url.hostname,
|
58
|
+
port: url.port,
|
59
|
+
path: url.pathname,
|
60
|
+
};
|
61
|
+
}
|
62
|
+
function resolveBaseUrl(baseUrl = {}, baseUrlDefaults) {
|
63
|
+
if (typeof baseUrl == "string") {
|
64
|
+
return baseUrl;
|
65
|
+
}
|
66
|
+
else {
|
67
|
+
return {
|
68
|
+
protocol: baseUrl.protocol ?? baseUrlDefaults.protocol,
|
69
|
+
host: baseUrl.host ?? baseUrlDefaults.host,
|
70
|
+
port: baseUrl.port ?? baseUrlDefaults.port,
|
71
|
+
path: baseUrl.path ?? baseUrlDefaults.path,
|
72
|
+
};
|
73
|
+
}
|
74
|
+
}
|
@@ -1,20 +1,37 @@
|
|
1
1
|
import { AbstractApiConfiguration } from "./AbstractApiConfiguration.js";
|
2
2
|
import { RetryFunction } from "./RetryFunction.js";
|
3
3
|
import { ThrottleFunction } from "./ThrottleFunction.js";
|
4
|
-
export type
|
5
|
-
|
6
|
-
|
4
|
+
export type UrlParts = {
|
5
|
+
protocol: string;
|
6
|
+
host: string;
|
7
|
+
port: string;
|
8
|
+
path: string;
|
9
|
+
};
|
10
|
+
export type BaseUrlPartsApiConfigurationOptions = {
|
11
|
+
baseUrl: string | UrlParts;
|
12
|
+
headers?: Record<string, string>;
|
7
13
|
retry?: RetryFunction;
|
8
14
|
throttle?: ThrottleFunction;
|
9
15
|
};
|
10
16
|
/**
|
11
|
-
* An API configuration that uses
|
17
|
+
* An API configuration that uses different URL parts and a set of headers.
|
12
18
|
*
|
13
19
|
* You can use it to configure custom APIs for models, e.g. your own internal OpenAI proxy with custom headers.
|
14
20
|
*/
|
15
21
|
export declare class BaseUrlApiConfiguration extends AbstractApiConfiguration {
|
16
|
-
readonly baseUrl:
|
22
|
+
readonly baseUrl: UrlParts;
|
17
23
|
readonly headers: Record<string, string>;
|
18
|
-
constructor({ baseUrl, headers, retry, throttle, }:
|
24
|
+
constructor({ baseUrl, headers, retry, throttle, }: BaseUrlPartsApiConfigurationOptions);
|
19
25
|
assembleUrl(path: string): string;
|
20
26
|
}
|
27
|
+
export type PartialBaseUrlPartsApiConfigurationOptions = {
|
28
|
+
baseUrl?: string | Partial<UrlParts>;
|
29
|
+
headers?: Record<string, string>;
|
30
|
+
retry?: RetryFunction;
|
31
|
+
throttle?: ThrottleFunction;
|
32
|
+
};
|
33
|
+
export declare class BaseUrlApiConfigurationWithDefaults extends BaseUrlApiConfiguration {
|
34
|
+
constructor({ baseUrlDefaults, baseUrl, headers, retry, throttle, }: {
|
35
|
+
baseUrlDefaults: UrlParts;
|
36
|
+
} & PartialBaseUrlPartsApiConfigurationOptions);
|
37
|
+
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { AbstractApiConfiguration } from "./AbstractApiConfiguration.js";
|
2
2
|
/**
|
3
|
-
* An API configuration that uses
|
3
|
+
* An API configuration that uses different URL parts and a set of headers.
|
4
4
|
*
|
5
5
|
* You can use it to configure custom APIs for models, e.g. your own internal OpenAI proxy with custom headers.
|
6
6
|
*/
|
@@ -19,10 +19,51 @@ export class BaseUrlApiConfiguration extends AbstractApiConfiguration {
|
|
19
19
|
writable: true,
|
20
20
|
value: void 0
|
21
21
|
});
|
22
|
-
this.baseUrl = baseUrl;
|
23
|
-
this.headers = headers;
|
22
|
+
this.baseUrl = typeof baseUrl == "string" ? parseBaseUrl(baseUrl) : baseUrl;
|
23
|
+
this.headers = headers ?? {};
|
24
24
|
}
|
25
25
|
assembleUrl(path) {
|
26
|
-
|
26
|
+
let basePath = this.baseUrl.path;
|
27
|
+
// ensure base path ends without a slash
|
28
|
+
if (basePath.endsWith("/")) {
|
29
|
+
basePath = basePath.slice(0, -1);
|
30
|
+
}
|
31
|
+
// ensure path starts with a slash
|
32
|
+
if (!path.startsWith("/")) {
|
33
|
+
path = `/${path}`;
|
34
|
+
}
|
35
|
+
return `${this.baseUrl.protocol}://${this.baseUrl.host}:${this.baseUrl.port}${basePath}${path}`;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
export class BaseUrlApiConfigurationWithDefaults extends BaseUrlApiConfiguration {
|
39
|
+
constructor({ baseUrlDefaults, baseUrl, headers, retry, throttle, }) {
|
40
|
+
super({
|
41
|
+
baseUrl: resolveBaseUrl(baseUrl, baseUrlDefaults),
|
42
|
+
headers,
|
43
|
+
retry,
|
44
|
+
throttle,
|
45
|
+
});
|
46
|
+
}
|
47
|
+
}
|
48
|
+
function parseBaseUrl(baseUrl) {
|
49
|
+
const url = new URL(baseUrl);
|
50
|
+
return {
|
51
|
+
protocol: url.protocol.slice(0, -1), // remove trailing colon
|
52
|
+
host: url.hostname,
|
53
|
+
port: url.port,
|
54
|
+
path: url.pathname,
|
55
|
+
};
|
56
|
+
}
|
57
|
+
function resolveBaseUrl(baseUrl = {}, baseUrlDefaults) {
|
58
|
+
if (typeof baseUrl == "string") {
|
59
|
+
return baseUrl;
|
60
|
+
}
|
61
|
+
else {
|
62
|
+
return {
|
63
|
+
protocol: baseUrl.protocol ?? baseUrlDefaults.protocol,
|
64
|
+
host: baseUrl.host ?? baseUrlDefaults.host,
|
65
|
+
port: baseUrl.port ?? baseUrlDefaults.port,
|
66
|
+
path: baseUrl.path ?? baseUrlDefaults.path,
|
67
|
+
};
|
27
68
|
}
|
28
69
|
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const BaseUrlApiConfiguration_js_1 = require("./BaseUrlApiConfiguration.cjs");
|
4
|
+
describe("with text URLs", () => {
|
5
|
+
it("should assemble the correct url", async () => {
|
6
|
+
const api = new BaseUrlApiConfiguration_js_1.BaseUrlApiConfiguration({
|
7
|
+
baseUrl: "http://localhost:8080",
|
8
|
+
});
|
9
|
+
expect(api.assembleUrl("/test")).toBe("http://localhost:8080/test");
|
10
|
+
});
|
11
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { BaseUrlApiConfiguration } from "./BaseUrlApiConfiguration.js";
|
2
|
+
describe("with text URLs", () => {
|
3
|
+
it("should assemble the correct url", async () => {
|
4
|
+
const api = new BaseUrlApiConfiguration({
|
5
|
+
baseUrl: "http://localhost:8080",
|
6
|
+
});
|
7
|
+
expect(api.assembleUrl("/test")).toBe("http://localhost:8080/test");
|
8
|
+
});
|
9
|
+
});
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.callWithRetryAndThrottle = void 0;
|
4
|
-
const
|
5
|
-
const
|
6
|
-
const callWithRetryAndThrottle = async ({ retry = (0,
|
4
|
+
const retryNever_js_1 = require("./retryNever.cjs");
|
5
|
+
const throttleOff_js_1 = require("./throttleOff.cjs");
|
6
|
+
const callWithRetryAndThrottle = async ({ retry = (0, retryNever_js_1.retryNever)(), throttle = (0, throttleOff_js_1.throttleOff)(), call, }) => retry(async () => throttle(call));
|
7
7
|
exports.callWithRetryAndThrottle = callWithRetryAndThrottle;
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
3
|
-
export const callWithRetryAndThrottle = async ({ retry =
|
1
|
+
import { retryNever } from "./retryNever.js";
|
2
|
+
import { throttleOff } from "./throttleOff.js";
|
3
|
+
export const callWithRetryAndThrottle = async ({ retry = retryNever(), throttle = throttleOff(), call, }) => retry(async () => throttle(call));
|
package/core/api/index.cjs
CHANGED
@@ -10,19 +10,32 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
10
10
|
if (k2 === undefined) k2 = k;
|
11
11
|
o[k2] = m[k];
|
12
12
|
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
13
18
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
19
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
20
|
};
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
22
|
+
if (mod && mod.__esModule) return mod;
|
23
|
+
var result = {};
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
25
|
+
__setModuleDefault(result, mod);
|
26
|
+
return result;
|
27
|
+
};
|
16
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
29
|
+
exports.api = void 0;
|
17
30
|
__exportStar(require("./AbortError.cjs"), exports);
|
18
31
|
__exportStar(require("./ApiCallError.cjs"), exports);
|
19
32
|
__exportStar(require("./ApiConfiguration.cjs"), exports);
|
33
|
+
exports.api = __importStar(require("./ApiFacade.cjs"));
|
20
34
|
__exportStar(require("./BaseUrlApiConfiguration.cjs"), exports);
|
21
|
-
__exportStar(require("./BaseUrlPartsApiConfiguration.cjs"), exports);
|
22
35
|
__exportStar(require("./RetryError.cjs"), exports);
|
23
36
|
__exportStar(require("./RetryFunction.cjs"), exports);
|
24
37
|
__exportStar(require("./ThrottleFunction.cjs"), exports);
|
25
38
|
__exportStar(require("./retryNever.cjs"), exports);
|
26
39
|
__exportStar(require("./retryWithExponentialBackoff.cjs"), exports);
|
27
40
|
__exportStar(require("./throttleMaxConcurrency.cjs"), exports);
|
28
|
-
__exportStar(require("./
|
41
|
+
__exportStar(require("./throttleOff.cjs"), exports);
|
package/core/api/index.d.ts
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
export * from "./AbortError.js";
|
2
2
|
export * from "./ApiCallError.js";
|
3
3
|
export * from "./ApiConfiguration.js";
|
4
|
+
export * as api from "./ApiFacade.js";
|
4
5
|
export * from "./BaseUrlApiConfiguration.js";
|
5
|
-
export * from "./BaseUrlPartsApiConfiguration.js";
|
6
6
|
export * from "./RetryError.js";
|
7
7
|
export * from "./RetryFunction.js";
|
8
8
|
export * from "./ThrottleFunction.js";
|
9
9
|
export * from "./retryNever.js";
|
10
10
|
export * from "./retryWithExponentialBackoff.js";
|
11
11
|
export * from "./throttleMaxConcurrency.js";
|
12
|
-
export * from "./
|
12
|
+
export * from "./throttleOff.js";
|
package/core/api/index.js
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
export * from "./AbortError.js";
|
2
2
|
export * from "./ApiCallError.js";
|
3
3
|
export * from "./ApiConfiguration.js";
|
4
|
+
export * as api from "./ApiFacade.js";
|
4
5
|
export * from "./BaseUrlApiConfiguration.js";
|
5
|
-
export * from "./BaseUrlPartsApiConfiguration.js";
|
6
6
|
export * from "./RetryError.js";
|
7
7
|
export * from "./RetryFunction.js";
|
8
8
|
export * from "./ThrottleFunction.js";
|
9
9
|
export * from "./retryNever.js";
|
10
10
|
export * from "./retryWithExponentialBackoff.js";
|
11
11
|
export * from "./throttleMaxConcurrency.js";
|
12
|
-
export * from "./
|
12
|
+
export * from "./throttleOff.js";
|
package/core/api/postToApi.cjs
CHANGED
@@ -1,11 +1,21 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.postToApi = exports.postJsonToApi = exports.createAudioMpegResponseHandler = exports.createTextResponseHandler = exports.createJsonResponseHandler = exports.createJsonErrorResponseHandler = void 0;
|
4
|
-
const ZodSchema_js_1 = require("../schema/ZodSchema.cjs");
|
3
|
+
exports.postToApi = exports.postJsonToApi = exports.createAudioMpegResponseHandler = exports.createTextResponseHandler = exports.createJsonResponseHandler = exports.createTextErrorResponseHandler = exports.createJsonErrorResponseHandler = void 0;
|
5
4
|
const parseJSON_js_1 = require("../schema/parseJSON.cjs");
|
6
5
|
const ApiCallError_js_1 = require("./ApiCallError.cjs");
|
7
6
|
const createJsonErrorResponseHandler = ({ errorSchema, errorToMessage, isRetryable, }) => async ({ response, url, requestBodyValues }) => {
|
8
7
|
const responseBody = await response.text();
|
8
|
+
// Some providers return an empty response body for some errors:
|
9
|
+
if (responseBody.trim() === "") {
|
10
|
+
return new ApiCallError_js_1.ApiCallError({
|
11
|
+
message: response.statusText,
|
12
|
+
url,
|
13
|
+
requestBodyValues,
|
14
|
+
statusCode: response.status,
|
15
|
+
responseBody,
|
16
|
+
isRetryable: isRetryable?.(response),
|
17
|
+
});
|
18
|
+
}
|
9
19
|
// resilient parsing in case the response is not JSON or does not match the schema:
|
10
20
|
try {
|
11
21
|
const parsedError = (0, parseJSON_js_1.parseJSON)({
|
@@ -19,25 +29,38 @@ const createJsonErrorResponseHandler = ({ errorSchema, errorToMessage, isRetryab
|
|
19
29
|
statusCode: response.status,
|
20
30
|
responseBody,
|
21
31
|
data: parsedError,
|
22
|
-
isRetryable: isRetryable?.(
|
32
|
+
isRetryable: isRetryable?.(response, parsedError),
|
23
33
|
});
|
24
34
|
}
|
25
35
|
catch (parseError) {
|
26
36
|
return new ApiCallError_js_1.ApiCallError({
|
27
|
-
message:
|
37
|
+
message: response.statusText,
|
28
38
|
url,
|
29
39
|
requestBodyValues,
|
30
40
|
statusCode: response.status,
|
31
41
|
responseBody,
|
42
|
+
isRetryable: isRetryable?.(response),
|
32
43
|
});
|
33
44
|
}
|
34
45
|
};
|
35
46
|
exports.createJsonErrorResponseHandler = createJsonErrorResponseHandler;
|
47
|
+
const createTextErrorResponseHandler = ({ isRetryable, } = {}) => async ({ response, url, requestBodyValues }) => {
|
48
|
+
const responseBody = await response.text();
|
49
|
+
return new ApiCallError_js_1.ApiCallError({
|
50
|
+
message: responseBody.trim() !== "" ? responseBody : response.statusText,
|
51
|
+
url,
|
52
|
+
requestBodyValues,
|
53
|
+
statusCode: response.status,
|
54
|
+
responseBody,
|
55
|
+
isRetryable: isRetryable?.(response),
|
56
|
+
});
|
57
|
+
};
|
58
|
+
exports.createTextErrorResponseHandler = createTextErrorResponseHandler;
|
36
59
|
const createJsonResponseHandler = (responseSchema) => async ({ response, url, requestBodyValues }) => {
|
37
60
|
const responseBody = await response.text();
|
38
61
|
const parsedResult = (0, parseJSON_js_1.safeParseJSON)({
|
39
62
|
text: responseBody,
|
40
|
-
schema:
|
63
|
+
schema: responseSchema,
|
41
64
|
});
|
42
65
|
if (!parsedResult.success) {
|
43
66
|
throw new ApiCallError_js_1.ApiCallError({
|
package/core/api/postToApi.d.ts
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
/// <reference types="node" />
|
2
|
-
import { z } from "zod";
|
3
2
|
import { Schema } from "../schema/Schema.js";
|
4
|
-
import { ZodSchema } from "../schema/ZodSchema.js";
|
5
3
|
import { ApiCallError } from "./ApiCallError.js";
|
6
4
|
export type ResponseHandler<T> = (options: {
|
7
5
|
url: string;
|
@@ -11,9 +9,12 @@ export type ResponseHandler<T> = (options: {
|
|
11
9
|
export declare const createJsonErrorResponseHandler: <T>({ errorSchema, errorToMessage, isRetryable, }: {
|
12
10
|
errorSchema: Schema<T>;
|
13
11
|
errorToMessage: (error: T) => string;
|
14
|
-
isRetryable?: ((
|
12
|
+
isRetryable?: ((response: Response, error?: T | undefined) => boolean) | undefined;
|
15
13
|
}) => ResponseHandler<ApiCallError>;
|
16
|
-
export declare const
|
14
|
+
export declare const createTextErrorResponseHandler: ({ isRetryable, }?: {
|
15
|
+
isRetryable?: ((response: Response) => boolean) | undefined;
|
16
|
+
}) => ResponseHandler<ApiCallError>;
|
17
|
+
export declare const createJsonResponseHandler: <T>(responseSchema: Schema<T>) => ResponseHandler<T>;
|
17
18
|
export declare const createTextResponseHandler: () => ResponseHandler<string>;
|
18
19
|
export declare const createAudioMpegResponseHandler: () => ResponseHandler<Buffer>;
|
19
20
|
export declare const postJsonToApi: <T>({ url, headers, body, failedResponseHandler, successfulResponseHandler, abortSignal, }: {
|
package/core/api/postToApi.js
CHANGED
@@ -1,8 +1,18 @@
|
|
1
|
-
import { ZodSchema } from "../schema/ZodSchema.js";
|
2
1
|
import { parseJSON, safeParseJSON } from "../schema/parseJSON.js";
|
3
2
|
import { ApiCallError } from "./ApiCallError.js";
|
4
3
|
export const createJsonErrorResponseHandler = ({ errorSchema, errorToMessage, isRetryable, }) => async ({ response, url, requestBodyValues }) => {
|
5
4
|
const responseBody = await response.text();
|
5
|
+
// Some providers return an empty response body for some errors:
|
6
|
+
if (responseBody.trim() === "") {
|
7
|
+
return new ApiCallError({
|
8
|
+
message: response.statusText,
|
9
|
+
url,
|
10
|
+
requestBodyValues,
|
11
|
+
statusCode: response.status,
|
12
|
+
responseBody,
|
13
|
+
isRetryable: isRetryable?.(response),
|
14
|
+
});
|
15
|
+
}
|
6
16
|
// resilient parsing in case the response is not JSON or does not match the schema:
|
7
17
|
try {
|
8
18
|
const parsedError = parseJSON({
|
@@ -16,24 +26,36 @@ export const createJsonErrorResponseHandler = ({ errorSchema, errorToMessage, is
|
|
16
26
|
statusCode: response.status,
|
17
27
|
responseBody,
|
18
28
|
data: parsedError,
|
19
|
-
isRetryable: isRetryable?.(
|
29
|
+
isRetryable: isRetryable?.(response, parsedError),
|
20
30
|
});
|
21
31
|
}
|
22
32
|
catch (parseError) {
|
23
33
|
return new ApiCallError({
|
24
|
-
message:
|
34
|
+
message: response.statusText,
|
25
35
|
url,
|
26
36
|
requestBodyValues,
|
27
37
|
statusCode: response.status,
|
28
38
|
responseBody,
|
39
|
+
isRetryable: isRetryable?.(response),
|
29
40
|
});
|
30
41
|
}
|
31
42
|
};
|
43
|
+
export const createTextErrorResponseHandler = ({ isRetryable, } = {}) => async ({ response, url, requestBodyValues }) => {
|
44
|
+
const responseBody = await response.text();
|
45
|
+
return new ApiCallError({
|
46
|
+
message: responseBody.trim() !== "" ? responseBody : response.statusText,
|
47
|
+
url,
|
48
|
+
requestBodyValues,
|
49
|
+
statusCode: response.status,
|
50
|
+
responseBody,
|
51
|
+
isRetryable: isRetryable?.(response),
|
52
|
+
});
|
53
|
+
};
|
32
54
|
export const createJsonResponseHandler = (responseSchema) => async ({ response, url, requestBodyValues }) => {
|
33
55
|
const responseBody = await response.text();
|
34
56
|
const parsedResult = safeParseJSON({
|
35
57
|
text: responseBody,
|
36
|
-
schema:
|
58
|
+
schema: responseSchema,
|
37
59
|
});
|
38
60
|
if (!parsedResult.success) {
|
39
61
|
throw new ApiCallError({
|
@@ -0,0 +1,8 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.throttleOff = void 0;
|
4
|
+
/**
|
5
|
+
* The `throttleOff` strategy does not limit parallel API calls.
|
6
|
+
*/
|
7
|
+
const throttleOff = () => (fn) => fn();
|
8
|
+
exports.throttleOff = throttleOff;
|
@@ -14,18 +14,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
15
|
};
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
-
exports.parseEventSourceStream = exports.AbstractModel = exports.executeFunctionCall = exports.
|
17
|
+
exports.parseEventSourceStream = exports.AbstractModel = exports.executeFunctionCall = exports.loadApiKey = exports.callWithRetryAndThrottle = void 0;
|
18
18
|
__exportStar(require("../core/ExtensionFunctionEvent.cjs"), exports);
|
19
19
|
var callWithRetryAndThrottle_js_1 = require("../core/api/callWithRetryAndThrottle.cjs");
|
20
20
|
Object.defineProperty(exports, "callWithRetryAndThrottle", { enumerable: true, get: function () { return callWithRetryAndThrottle_js_1.callWithRetryAndThrottle; } });
|
21
21
|
var loadApiKey_js_1 = require("../core/api/loadApiKey.cjs");
|
22
22
|
Object.defineProperty(exports, "loadApiKey", { enumerable: true, get: function () { return loadApiKey_js_1.loadApiKey; } });
|
23
|
-
|
24
|
-
Object.defineProperty(exports, "createAudioMpegResponseHandler", { enumerable: true, get: function () { return postToApi_js_1.createAudioMpegResponseHandler; } });
|
25
|
-
Object.defineProperty(exports, "createJsonResponseHandler", { enumerable: true, get: function () { return postToApi_js_1.createJsonResponseHandler; } });
|
26
|
-
Object.defineProperty(exports, "createTextResponseHandler", { enumerable: true, get: function () { return postToApi_js_1.createTextResponseHandler; } });
|
27
|
-
Object.defineProperty(exports, "postJsonToApi", { enumerable: true, get: function () { return postToApi_js_1.postJsonToApi; } });
|
28
|
-
Object.defineProperty(exports, "postToApi", { enumerable: true, get: function () { return postToApi_js_1.postToApi; } });
|
23
|
+
__exportStar(require("../core/api/postToApi.cjs"), exports);
|
29
24
|
var executeFunctionCall_js_1 = require("../core/executeFunctionCall.cjs");
|
30
25
|
Object.defineProperty(exports, "executeFunctionCall", { enumerable: true, get: function () { return executeFunctionCall_js_1.executeFunctionCall; } });
|
31
26
|
var AbstractModel_js_1 = require("../model-function/AbstractModel.cjs");
|
@@ -1,7 +1,7 @@
|
|
1
1
|
export * from "../core/ExtensionFunctionEvent.js";
|
2
2
|
export { callWithRetryAndThrottle } from "../core/api/callWithRetryAndThrottle.js";
|
3
3
|
export { loadApiKey } from "../core/api/loadApiKey.js";
|
4
|
-
export
|
4
|
+
export * from "../core/api/postToApi.js";
|
5
5
|
export { executeFunctionCall } from "../core/executeFunctionCall.js";
|
6
6
|
export { AbstractModel } from "../model-function/AbstractModel.js";
|
7
7
|
export { ErrorHandler } from "../util/ErrorHandler.js";
|
@@ -1,7 +1,7 @@
|
|
1
1
|
export * from "../core/ExtensionFunctionEvent.js";
|
2
2
|
export { callWithRetryAndThrottle } from "../core/api/callWithRetryAndThrottle.js";
|
3
3
|
export { loadApiKey } from "../core/api/loadApiKey.js";
|
4
|
-
export
|
4
|
+
export * from "../core/api/postToApi.js";
|
5
5
|
export { executeFunctionCall } from "../core/executeFunctionCall.js";
|
6
6
|
export { AbstractModel } from "../model-function/AbstractModel.js";
|
7
7
|
export { parseEventSourceStream } from "../util/streaming/parseEventSourceStream.js";
|
@@ -11,7 +11,7 @@ import { StructureGenerationModel, StructureGenerationModelSettings } from "./St
|
|
11
11
|
* @example
|
12
12
|
* const sentiment = await generateStructure(
|
13
13
|
* openai.ChatTextGenerator(...).asFunctionCallStructureGenerationModel(...),
|
14
|
-
*
|
14
|
+
* zodSchema(z.object({
|
15
15
|
* sentiment: z
|
16
16
|
* .enum(["positive", "neutral", "negative"])
|
17
17
|
* .describe("Sentiment."),
|
@@ -3,20 +3,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AnthropicApiConfiguration = void 0;
|
4
4
|
const BaseUrlApiConfiguration_js_1 = require("../../core/api/BaseUrlApiConfiguration.cjs");
|
5
5
|
const loadApiKey_js_1 = require("../../core/api/loadApiKey.cjs");
|
6
|
-
|
7
|
-
|
6
|
+
/**
|
7
|
+
* Creates an API configuration for the Anthropic API.
|
8
|
+
* It calls the API at https://api.anthropic.com/v1 and uses the `ANTHROPIC_API_KEY` env variable by default.
|
9
|
+
*/
|
10
|
+
class AnthropicApiConfiguration extends BaseUrlApiConfiguration_js_1.BaseUrlApiConfigurationWithDefaults {
|
11
|
+
constructor(settings = {}) {
|
8
12
|
super({
|
9
|
-
|
13
|
+
...settings,
|
10
14
|
headers: {
|
11
15
|
"x-api-key": (0, loadApiKey_js_1.loadApiKey)({
|
12
|
-
apiKey,
|
16
|
+
apiKey: settings.apiKey,
|
13
17
|
environmentVariableName: "ANTHROPIC_API_KEY",
|
14
18
|
description: "Anthropic",
|
15
19
|
}),
|
16
20
|
"anthropic-version": "2023-06-01",
|
17
21
|
},
|
18
|
-
|
19
|
-
|
22
|
+
baseUrlDefaults: {
|
23
|
+
protocol: "https",
|
24
|
+
host: "api.anthropic.com",
|
25
|
+
port: "443",
|
26
|
+
path: "/v1",
|
27
|
+
},
|
20
28
|
});
|
21
29
|
}
|
22
30
|
}
|
@@ -1,11 +1,10 @@
|
|
1
|
-
import {
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
import { BaseUrlApiConfigurationWithDefaults, PartialBaseUrlPartsApiConfigurationOptions } from "../../core/api/BaseUrlApiConfiguration.js";
|
2
|
+
/**
|
3
|
+
* Creates an API configuration for the Anthropic API.
|
4
|
+
* It calls the API at https://api.anthropic.com/v1 and uses the `ANTHROPIC_API_KEY` env variable by default.
|
5
|
+
*/
|
6
|
+
export declare class AnthropicApiConfiguration extends BaseUrlApiConfigurationWithDefaults {
|
7
|
+
constructor(settings?: PartialBaseUrlPartsApiConfigurationOptions & {
|
7
8
|
apiKey?: string;
|
8
|
-
retry?: RetryFunction;
|
9
|
-
throttle?: ThrottleFunction;
|
10
9
|
});
|
11
10
|
}
|