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.
Files changed (223) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/core/api/ApiFacade.cjs +20 -0
  3. package/core/api/ApiFacade.d.ts +4 -0
  4. package/core/api/ApiFacade.js +4 -0
  5. package/core/api/BaseUrlApiConfiguration.cjs +47 -5
  6. package/core/api/BaseUrlApiConfiguration.d.ts +23 -6
  7. package/core/api/BaseUrlApiConfiguration.js +45 -4
  8. package/core/api/BaseUrlApiConfiguration.test.cjs +11 -0
  9. package/core/api/BaseUrlApiConfiguration.test.d.ts +1 -0
  10. package/core/api/BaseUrlApiConfiguration.test.js +9 -0
  11. package/core/api/callWithRetryAndThrottle.cjs +3 -3
  12. package/core/api/callWithRetryAndThrottle.js +3 -3
  13. package/core/api/index.cjs +15 -2
  14. package/core/api/index.d.ts +2 -2
  15. package/core/api/index.js +2 -2
  16. package/core/api/postToApi.cjs +28 -5
  17. package/core/api/postToApi.d.ts +5 -4
  18. package/core/api/postToApi.js +26 -4
  19. package/core/api/throttleOff.cjs +8 -0
  20. package/core/api/throttleOff.d.ts +5 -0
  21. package/core/api/throttleOff.js +4 -0
  22. package/internal/index.cjs +2 -8
  23. package/internal/index.d.ts +1 -1
  24. package/internal/index.js +1 -1
  25. package/model-function/generate-structure/generateStructure.d.ts +1 -1
  26. package/model-provider/anthropic/AnthropicApiConfiguration.cjs +14 -6
  27. package/model-provider/anthropic/AnthropicApiConfiguration.d.ts +7 -8
  28. package/model-provider/anthropic/AnthropicApiConfiguration.js +15 -7
  29. package/model-provider/anthropic/AnthropicError.cjs +7 -27
  30. package/model-provider/anthropic/AnthropicError.d.ts +21 -16
  31. package/model-provider/anthropic/AnthropicError.js +7 -25
  32. package/model-provider/anthropic/AnthropicFacade.cjs +10 -1
  33. package/model-provider/anthropic/AnthropicFacade.d.ts +9 -0
  34. package/model-provider/anthropic/AnthropicFacade.js +8 -0
  35. package/model-provider/anthropic/AnthropicTextGenerationModel.cjs +22 -24
  36. package/model-provider/anthropic/AnthropicTextGenerationModel.js +23 -25
  37. package/model-provider/anthropic/index.cjs +1 -4
  38. package/model-provider/anthropic/index.d.ts +1 -1
  39. package/model-provider/anthropic/index.js +0 -1
  40. package/model-provider/automatic1111/Automatic1111ApiConfiguration.cjs +12 -4
  41. package/model-provider/automatic1111/Automatic1111ApiConfiguration.d.ts +3 -3
  42. package/model-provider/automatic1111/Automatic1111ApiConfiguration.js +12 -4
  43. package/model-provider/automatic1111/Automatic1111Error.cjs +3 -3
  44. package/model-provider/automatic1111/Automatic1111Error.d.ts +13 -3
  45. package/model-provider/automatic1111/Automatic1111Error.js +4 -4
  46. package/model-provider/automatic1111/Automatic1111Facade.cjs +9 -9
  47. package/model-provider/automatic1111/Automatic1111Facade.d.ts +6 -6
  48. package/model-provider/automatic1111/Automatic1111Facade.js +7 -7
  49. package/model-provider/automatic1111/Automatic1111ImageGenerationModel.cjs +11 -7
  50. package/model-provider/automatic1111/Automatic1111ImageGenerationModel.js +11 -7
  51. package/model-provider/cohere/CohereApiConfiguration.cjs +14 -6
  52. package/model-provider/cohere/CohereApiConfiguration.d.ts +7 -8
  53. package/model-provider/cohere/CohereApiConfiguration.js +15 -7
  54. package/model-provider/cohere/CohereError.cjs +8 -43
  55. package/model-provider/cohere/CohereError.d.ts +9 -16
  56. package/model-provider/cohere/CohereError.js +8 -41
  57. package/model-provider/cohere/CohereFacade.cjs +12 -3
  58. package/model-provider/cohere/CohereFacade.d.ts +11 -2
  59. package/model-provider/cohere/CohereFacade.js +10 -2
  60. package/model-provider/cohere/CohereTextEmbeddingModel.cjs +18 -22
  61. package/model-provider/cohere/CohereTextEmbeddingModel.js +18 -22
  62. package/model-provider/cohere/CohereTextGenerationModel.cjs +31 -39
  63. package/model-provider/cohere/CohereTextGenerationModel.d.ts +110 -8
  64. package/model-provider/cohere/CohereTextGenerationModel.js +31 -39
  65. package/model-provider/cohere/CohereTokenizer.cjs +32 -41
  66. package/model-provider/cohere/CohereTokenizer.d.ts +2 -2
  67. package/model-provider/cohere/CohereTokenizer.js +32 -41
  68. package/model-provider/cohere/index.cjs +1 -3
  69. package/model-provider/cohere/index.d.ts +1 -1
  70. package/model-provider/cohere/index.js +0 -1
  71. package/model-provider/elevenlabs/ElevenLabsApiConfiguration.cjs +14 -6
  72. package/model-provider/elevenlabs/ElevenLabsApiConfiguration.d.ts +7 -8
  73. package/model-provider/elevenlabs/ElevenLabsApiConfiguration.js +15 -7
  74. package/model-provider/elevenlabs/ElevenLabsFacade.cjs +10 -1
  75. package/model-provider/elevenlabs/ElevenLabsFacade.d.ts +9 -0
  76. package/model-provider/elevenlabs/ElevenLabsFacade.js +8 -0
  77. package/model-provider/elevenlabs/ElevenLabsSpeechModel.cjs +42 -53
  78. package/model-provider/elevenlabs/ElevenLabsSpeechModel.js +44 -55
  79. package/model-provider/huggingface/HuggingFaceApiConfiguration.cjs +14 -6
  80. package/model-provider/huggingface/HuggingFaceApiConfiguration.d.ts +7 -8
  81. package/model-provider/huggingface/HuggingFaceApiConfiguration.js +15 -7
  82. package/model-provider/huggingface/HuggingFaceError.cjs +7 -29
  83. package/model-provider/huggingface/HuggingFaceError.d.ts +9 -16
  84. package/model-provider/huggingface/HuggingFaceError.js +7 -27
  85. package/model-provider/huggingface/HuggingFaceFacade.cjs +10 -1
  86. package/model-provider/huggingface/HuggingFaceFacade.d.ts +9 -0
  87. package/model-provider/huggingface/HuggingFaceFacade.js +8 -0
  88. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.cjs +17 -27
  89. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.js +17 -27
  90. package/model-provider/huggingface/HuggingFaceTextGenerationModel.cjs +22 -23
  91. package/model-provider/huggingface/HuggingFaceTextGenerationModel.js +22 -23
  92. package/model-provider/huggingface/index.cjs +1 -3
  93. package/model-provider/huggingface/index.d.ts +1 -1
  94. package/model-provider/huggingface/index.js +0 -1
  95. package/model-provider/llamacpp/LlamaCppApiConfiguration.cjs +13 -6
  96. package/model-provider/llamacpp/LlamaCppApiConfiguration.d.ts +7 -9
  97. package/model-provider/llamacpp/LlamaCppApiConfiguration.js +14 -7
  98. package/model-provider/llamacpp/LlamaCppCompletionModel.cjs +4 -4
  99. package/model-provider/llamacpp/LlamaCppCompletionModel.d.ts +173 -5
  100. package/model-provider/llamacpp/LlamaCppCompletionModel.js +4 -4
  101. package/model-provider/llamacpp/LlamaCppError.cjs +7 -27
  102. package/model-provider/llamacpp/LlamaCppError.d.ts +9 -16
  103. package/model-provider/llamacpp/LlamaCppError.js +7 -25
  104. package/model-provider/llamacpp/LlamaCppFacade.cjs +10 -2
  105. package/model-provider/llamacpp/LlamaCppFacade.d.ts +8 -1
  106. package/model-provider/llamacpp/LlamaCppFacade.js +8 -1
  107. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.cjs +10 -14
  108. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.js +10 -14
  109. package/model-provider/llamacpp/LlamaCppTokenizer.cjs +14 -18
  110. package/model-provider/llamacpp/LlamaCppTokenizer.js +14 -18
  111. package/model-provider/llamacpp/index.cjs +1 -3
  112. package/model-provider/llamacpp/index.d.ts +1 -1
  113. package/model-provider/llamacpp/index.js +0 -1
  114. package/model-provider/lmnt/LmntApiConfiguration.cjs +14 -6
  115. package/model-provider/lmnt/LmntApiConfiguration.d.ts +7 -8
  116. package/model-provider/lmnt/LmntApiConfiguration.js +15 -7
  117. package/model-provider/lmnt/LmntFacade.cjs +11 -2
  118. package/model-provider/lmnt/LmntFacade.d.ts +10 -1
  119. package/model-provider/lmnt/LmntFacade.js +9 -1
  120. package/model-provider/lmnt/LmntSpeechModel.cjs +53 -41
  121. package/model-provider/lmnt/LmntSpeechModel.d.ts +51 -3
  122. package/model-provider/lmnt/LmntSpeechModel.js +54 -42
  123. package/model-provider/mistral/MistralApiConfiguration.cjs +14 -6
  124. package/model-provider/mistral/MistralApiConfiguration.d.ts +9 -11
  125. package/model-provider/mistral/MistralApiConfiguration.js +15 -7
  126. package/model-provider/mistral/MistralChatModel.cjs +4 -4
  127. package/model-provider/mistral/MistralChatModel.d.ts +48 -3
  128. package/model-provider/mistral/MistralChatModel.js +5 -5
  129. package/model-provider/mistral/MistralError.cjs +3 -3
  130. package/model-provider/mistral/MistralError.d.ts +15 -3
  131. package/model-provider/mistral/MistralError.js +4 -4
  132. package/model-provider/mistral/MistralFacade.cjs +5 -1
  133. package/model-provider/mistral/MistralFacade.d.ts +10 -3
  134. package/model-provider/mistral/MistralFacade.js +6 -2
  135. package/model-provider/mistral/MistralTextEmbeddingModel.cjs +2 -1
  136. package/model-provider/mistral/MistralTextEmbeddingModel.js +2 -1
  137. package/model-provider/ollama/OllamaApiConfiguration.cjs +13 -6
  138. package/model-provider/ollama/OllamaApiConfiguration.d.ts +7 -10
  139. package/model-provider/ollama/OllamaApiConfiguration.js +14 -7
  140. package/model-provider/ollama/OllamaChatModel.cjs +4 -4
  141. package/model-provider/ollama/OllamaChatModel.d.ts +46 -5
  142. package/model-provider/ollama/OllamaChatModel.js +5 -5
  143. package/model-provider/ollama/OllamaCompletionModel.cjs +4 -4
  144. package/model-provider/ollama/OllamaCompletionModel.d.ts +40 -5
  145. package/model-provider/ollama/OllamaCompletionModel.js +5 -5
  146. package/model-provider/ollama/OllamaError.cjs +3 -3
  147. package/model-provider/ollama/OllamaError.d.ts +7 -3
  148. package/model-provider/ollama/OllamaError.js +4 -4
  149. package/model-provider/ollama/OllamaFacade.cjs +6 -2
  150. package/model-provider/ollama/OllamaFacade.d.ts +8 -3
  151. package/model-provider/ollama/OllamaFacade.js +6 -2
  152. package/model-provider/ollama/OllamaTextEmbeddingModel.cjs +15 -16
  153. package/model-provider/ollama/OllamaTextEmbeddingModel.js +15 -16
  154. package/model-provider/openai/AbstractOpenAIChatModel.cjs +4 -4
  155. package/model-provider/openai/AbstractOpenAIChatModel.d.ts +148 -2
  156. package/model-provider/openai/AbstractOpenAIChatModel.js +4 -4
  157. package/model-provider/openai/AbstractOpenAICompletionModel.cjs +30 -32
  158. package/model-provider/openai/AbstractOpenAICompletionModel.js +30 -32
  159. package/model-provider/openai/AzureOpenAIApiConfiguration.d.ts +9 -8
  160. package/model-provider/openai/OpenAIApiConfiguration.cjs +14 -6
  161. package/model-provider/openai/OpenAIApiConfiguration.d.ts +7 -8
  162. package/model-provider/openai/OpenAIApiConfiguration.js +15 -7
  163. package/model-provider/openai/OpenAIError.cjs +8 -8
  164. package/model-provider/openai/OpenAIError.d.ts +27 -3
  165. package/model-provider/openai/OpenAIError.js +9 -9
  166. package/model-provider/openai/OpenAIFacade.cjs +23 -2
  167. package/model-provider/openai/OpenAIFacade.d.ts +20 -2
  168. package/model-provider/openai/OpenAIFacade.js +20 -1
  169. package/model-provider/openai/OpenAIImageGenerationModel.cjs +20 -21
  170. package/model-provider/openai/OpenAIImageGenerationModel.js +20 -21
  171. package/model-provider/openai/OpenAISpeechModel.cjs +17 -22
  172. package/model-provider/openai/OpenAISpeechModel.js +17 -22
  173. package/model-provider/openai/OpenAITextEmbeddingModel.cjs +18 -23
  174. package/model-provider/openai/OpenAITextEmbeddingModel.js +18 -23
  175. package/model-provider/openai/OpenAITranscriptionModel.cjs +42 -48
  176. package/model-provider/openai/OpenAITranscriptionModel.d.ts +14 -10
  177. package/model-provider/openai/OpenAITranscriptionModel.js +42 -48
  178. package/model-provider/openai-compatible/FireworksAIApiConfiguration.cjs +11 -7
  179. package/model-provider/openai-compatible/FireworksAIApiConfiguration.d.ts +4 -9
  180. package/model-provider/openai-compatible/FireworksAIApiConfiguration.js +12 -8
  181. package/model-provider/openai-compatible/OpenAICompatibleFacade.cjs +25 -1
  182. package/model-provider/openai-compatible/OpenAICompatibleFacade.d.ts +23 -0
  183. package/model-provider/openai-compatible/OpenAICompatibleFacade.js +22 -0
  184. package/model-provider/openai-compatible/TogetherAIApiConfiguration.cjs +11 -7
  185. package/model-provider/openai-compatible/TogetherAIApiConfiguration.d.ts +4 -9
  186. package/model-provider/openai-compatible/TogetherAIApiConfiguration.js +12 -8
  187. package/model-provider/stability/StabilityApiConfiguration.cjs +13 -12
  188. package/model-provider/stability/StabilityApiConfiguration.d.ts +4 -4
  189. package/model-provider/stability/StabilityApiConfiguration.js +13 -12
  190. package/model-provider/stability/StabilityError.cjs +3 -3
  191. package/model-provider/stability/StabilityError.d.ts +7 -3
  192. package/model-provider/stability/StabilityError.js +4 -4
  193. package/model-provider/stability/StabilityFacade.cjs +9 -9
  194. package/model-provider/stability/StabilityFacade.d.ts +8 -8
  195. package/model-provider/stability/StabilityFacade.js +7 -7
  196. package/model-provider/stability/StabilityImageGenerationModel.cjs +2 -1
  197. package/model-provider/stability/StabilityImageGenerationModel.js +2 -1
  198. package/model-provider/whispercpp/WhisperCppApiConfiguration.cjs +13 -6
  199. package/model-provider/whispercpp/WhisperCppApiConfiguration.d.ts +7 -10
  200. package/model-provider/whispercpp/WhisperCppApiConfiguration.js +14 -7
  201. package/model-provider/whispercpp/WhisperCppFacade.cjs +9 -5
  202. package/model-provider/whispercpp/WhisperCppFacade.d.ts +7 -2
  203. package/model-provider/whispercpp/WhisperCppFacade.js +8 -4
  204. package/model-provider/whispercpp/WhisperCppTranscriptionModel.cjs +5 -2
  205. package/model-provider/whispercpp/WhisperCppTranscriptionModel.js +6 -3
  206. package/package.json +1 -1
  207. package/tool/WebSearchTool.cjs +2 -2
  208. package/tool/WebSearchTool.d.ts +1 -2
  209. package/tool/WebSearchTool.js +3 -3
  210. package/vector-index/memory/MemoryVectorIndex.cjs +2 -2
  211. package/vector-index/memory/MemoryVectorIndex.js +3 -3
  212. package/core/api/BaseUrlPartsApiConfiguration.cjs +0 -53
  213. package/core/api/BaseUrlPartsApiConfiguration.d.ts +0 -26
  214. package/core/api/BaseUrlPartsApiConfiguration.js +0 -49
  215. package/core/api/throttleUnlimitedConcurrency.cjs +0 -8
  216. package/core/api/throttleUnlimitedConcurrency.d.ts +0 -5
  217. package/core/api/throttleUnlimitedConcurrency.js +0 -4
  218. package/model-provider/elevenlabs/ElevenLabsError.cjs +0 -30
  219. package/model-provider/elevenlabs/ElevenLabsError.d.ts +0 -3
  220. package/model-provider/elevenlabs/ElevenLabsError.js +0 -26
  221. package/model-provider/lmnt/LmntError.cjs +0 -30
  222. package/model-provider/lmnt/LmntError.d.ts +0 -3
  223. package/model-provider/lmnt/LmntError.js +0 -26
@@ -4,6 +4,7 @@ exports.Automatic1111ImageGenerationModel = 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 PromptTemplateImageGenerationModel_js_1 = require("../../model-function/generate-image/PromptTemplateImageGenerationModel.cjs");
9
10
  const Automatic1111ApiConfiguration_js_1 = require("./Automatic1111ApiConfiguration.cjs");
@@ -51,18 +52,21 @@ class Automatic1111ImageGenerationModel extends AbstractModel_js_1.AbstractModel
51
52
  },
52
53
  },
53
54
  failedResponseHandler: Automatic1111Error_js_1.failedAutomatic1111CallResponseHandler,
54
- successfulResponseHandler: (0, postToApi_js_1.createJsonResponseHandler)(Automatic1111ImageGenerationResponseSchema),
55
+ successfulResponseHandler: (0, postToApi_js_1.createJsonResponseHandler)((0, ZodSchema_js_1.zodSchema)(Automatic1111ImageGenerationResponseSchema)),
55
56
  abortSignal,
56
57
  }),
57
58
  });
58
59
  }
59
60
  get settingsForEvent() {
60
- return {
61
- height: this.settings.height,
62
- width: this.settings.width,
63
- sampler: this.settings.sampler,
64
- steps: this.settings.steps,
65
- };
61
+ const eventSettingProperties = [
62
+ "height",
63
+ "width",
64
+ "sampler",
65
+ "steps",
66
+ "cfgScale",
67
+ "seed",
68
+ ];
69
+ return Object.fromEntries(Object.entries(this.settings).filter(([key]) => eventSettingProperties.includes(key)));
66
70
  }
67
71
  async doGenerateImages(prompt, options) {
68
72
  const response = await this.callAPI(prompt, options);
@@ -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 { PromptTemplateImageGenerationModel } from "../../model-function/generate-image/PromptTemplateImageGenerationModel.js";
6
7
  import { Automatic1111ApiConfiguration } from "./Automatic1111ApiConfiguration.js";
@@ -48,18 +49,21 @@ export class Automatic1111ImageGenerationModel extends AbstractModel {
48
49
  },
49
50
  },
50
51
  failedResponseHandler: failedAutomatic1111CallResponseHandler,
51
- successfulResponseHandler: createJsonResponseHandler(Automatic1111ImageGenerationResponseSchema),
52
+ successfulResponseHandler: createJsonResponseHandler(zodSchema(Automatic1111ImageGenerationResponseSchema)),
52
53
  abortSignal,
53
54
  }),
54
55
  });
55
56
  }
56
57
  get settingsForEvent() {
57
- return {
58
- height: this.settings.height,
59
- width: this.settings.width,
60
- sampler: this.settings.sampler,
61
- steps: this.settings.steps,
62
- };
58
+ const eventSettingProperties = [
59
+ "height",
60
+ "width",
61
+ "sampler",
62
+ "steps",
63
+ "cfgScale",
64
+ "seed",
65
+ ];
66
+ return Object.fromEntries(Object.entries(this.settings).filter(([key]) => eventSettingProperties.includes(key)));
63
67
  }
64
68
  async doGenerateImages(prompt, options) {
65
69
  const response = await this.callAPI(prompt, options);
@@ -3,19 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CohereApiConfiguration = 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
- class CohereApiConfiguration extends BaseUrlApiConfiguration_js_1.BaseUrlApiConfiguration {
7
- constructor({ baseUrl = "https://api.cohere.ai/v1", apiKey, retry, throttle, } = {}) {
6
+ /**
7
+ * Creates an API configuration for the Cohere API.
8
+ * It calls the API at https://api.cohere.ai/v1 and uses the `COHERE_API_KEY` env variable by default.
9
+ */
10
+ class CohereApiConfiguration extends BaseUrlApiConfiguration_js_1.BaseUrlApiConfigurationWithDefaults {
11
+ constructor(settings = {}) {
8
12
  super({
9
- baseUrl,
13
+ ...settings,
10
14
  headers: {
11
15
  Authorization: `Bearer ${(0, loadApiKey_js_1.loadApiKey)({
12
- apiKey,
16
+ apiKey: settings.apiKey,
13
17
  environmentVariableName: "COHERE_API_KEY",
14
18
  description: "Cohere",
15
19
  })}`,
16
20
  },
17
- retry,
18
- throttle,
21
+ baseUrlDefaults: {
22
+ protocol: "https",
23
+ host: "api.cohere.ai",
24
+ port: "443",
25
+ path: "/v1",
26
+ },
19
27
  });
20
28
  }
21
29
  }
@@ -1,11 +1,10 @@
1
- import { BaseUrlApiConfiguration } from "../../core/api/BaseUrlApiConfiguration.js";
2
- import { RetryFunction } from "../../core/api/RetryFunction.js";
3
- import { ThrottleFunction } from "../../core/api/ThrottleFunction.js";
4
- export declare class CohereApiConfiguration extends BaseUrlApiConfiguration {
5
- constructor({ baseUrl, apiKey, retry, throttle, }?: {
6
- baseUrl?: string;
1
+ import { BaseUrlApiConfigurationWithDefaults, PartialBaseUrlPartsApiConfigurationOptions } from "../../core/api/BaseUrlApiConfiguration.js";
2
+ /**
3
+ * Creates an API configuration for the Cohere API.
4
+ * It calls the API at https://api.cohere.ai/v1 and uses the `COHERE_API_KEY` env variable by default.
5
+ */
6
+ export declare class CohereApiConfiguration extends BaseUrlApiConfigurationWithDefaults {
7
+ constructor(settings?: PartialBaseUrlPartsApiConfigurationOptions & {
7
8
  apiKey?: string;
8
- retry?: RetryFunction;
9
- throttle?: ThrottleFunction;
10
9
  });
11
10
  }
@@ -1,18 +1,26 @@
1
- import { BaseUrlApiConfiguration } from "../../core/api/BaseUrlApiConfiguration.js";
1
+ import { BaseUrlApiConfigurationWithDefaults, } from "../../core/api/BaseUrlApiConfiguration.js";
2
2
  import { loadApiKey } from "../../core/api/loadApiKey.js";
3
- export class CohereApiConfiguration extends BaseUrlApiConfiguration {
4
- constructor({ baseUrl = "https://api.cohere.ai/v1", apiKey, retry, throttle, } = {}) {
3
+ /**
4
+ * Creates an API configuration for the Cohere API.
5
+ * It calls the API at https://api.cohere.ai/v1 and uses the `COHERE_API_KEY` env variable by default.
6
+ */
7
+ export class CohereApiConfiguration extends BaseUrlApiConfigurationWithDefaults {
8
+ constructor(settings = {}) {
5
9
  super({
6
- baseUrl,
10
+ ...settings,
7
11
  headers: {
8
12
  Authorization: `Bearer ${loadApiKey({
9
- apiKey,
13
+ apiKey: settings.apiKey,
10
14
  environmentVariableName: "COHERE_API_KEY",
11
15
  description: "Cohere",
12
16
  })}`,
13
17
  },
14
- retry,
15
- throttle,
18
+ baseUrlDefaults: {
19
+ protocol: "https",
20
+ host: "api.cohere.ai",
21
+ port: "443",
22
+ path: "/v1",
23
+ },
16
24
  });
17
25
  }
18
26
  }
@@ -1,48 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.failedCohereCallResponseHandler = exports.CohereError = exports.cohereErrorDataSchema = void 0;
3
+ exports.failedCohereCallResponseHandler = void 0;
4
4
  const zod_1 = require("zod");
5
- const ApiCallError_js_1 = require("../../core/api/ApiCallError.cjs");
5
+ const postToApi_js_1 = require("../../core/api/postToApi.cjs");
6
6
  const ZodSchema_js_1 = require("../../core/schema/ZodSchema.cjs");
7
- const parseJSON_js_1 = require("../../core/schema/parseJSON.cjs");
8
- exports.cohereErrorDataSchema = new ZodSchema_js_1.ZodSchema(zod_1.z.object({
7
+ const cohereErrorDataSchema = zod_1.z.object({
9
8
  message: zod_1.z.string(),
10
- }));
11
- class CohereError extends ApiCallError_js_1.ApiCallError {
12
- constructor({ data, statusCode, url, requestBodyValues, message = data.message, }) {
13
- super({ message, statusCode, requestBodyValues, url });
14
- Object.defineProperty(this, "data", {
15
- enumerable: true,
16
- configurable: true,
17
- writable: true,
18
- value: void 0
19
- });
20
- this.data = data;
21
- }
22
- }
23
- exports.CohereError = CohereError;
24
- const failedCohereCallResponseHandler = async ({ response, url, requestBodyValues }) => {
25
- const responseBody = await response.text();
26
- // For some errors, the body of Cohere responses is empty:
27
- if (responseBody.trim() === "") {
28
- return new CohereError({
29
- url,
30
- requestBodyValues,
31
- statusCode: response.status,
32
- data: {
33
- message: response.statusText,
34
- },
35
- });
36
- }
37
- const parsedError = (0, parseJSON_js_1.parseJSON)({
38
- text: responseBody,
39
- schema: exports.cohereErrorDataSchema,
40
- });
41
- return new CohereError({
42
- url,
43
- requestBodyValues,
44
- statusCode: response.status,
45
- data: parsedError,
46
- });
47
- };
48
- exports.failedCohereCallResponseHandler = failedCohereCallResponseHandler;
9
+ });
10
+ exports.failedCohereCallResponseHandler = (0, postToApi_js_1.createJsonErrorResponseHandler)({
11
+ errorSchema: (0, ZodSchema_js_1.zodSchema)(cohereErrorDataSchema),
12
+ errorToMessage: (error) => error.message,
13
+ });
@@ -1,18 +1,11 @@
1
- import { ApiCallError } from "../../core/api/ApiCallError.js";
2
- import { ResponseHandler } from "../../core/api/postToApi.js";
3
- import { ZodSchema } from "../../core/schema/ZodSchema.js";
4
- export declare const cohereErrorDataSchema: ZodSchema<{
1
+ import { z } from "zod";
2
+ declare const cohereErrorDataSchema: z.ZodObject<{
3
+ message: z.ZodString;
4
+ }, "strip", z.ZodTypeAny, {
5
+ message: string;
6
+ }, {
5
7
  message: string;
6
8
  }>;
7
- export type CohereErrorData = (typeof cohereErrorDataSchema)["_type"];
8
- export declare class CohereError extends ApiCallError {
9
- readonly data: CohereErrorData;
10
- constructor({ data, statusCode, url, requestBodyValues, message, }: {
11
- message?: string;
12
- statusCode: number;
13
- url: string;
14
- requestBodyValues: unknown;
15
- data: CohereErrorData;
16
- });
17
- }
18
- export declare const failedCohereCallResponseHandler: ResponseHandler<ApiCallError>;
9
+ export type CohereErrorData = z.infer<typeof cohereErrorDataSchema>;
10
+ export declare const failedCohereCallResponseHandler: import("../../core/api/postToApi.js").ResponseHandler<import("../../index.js").ApiCallError>;
11
+ export {};
@@ -1,43 +1,10 @@
1
1
  import { z } from "zod";
2
- import { ApiCallError } from "../../core/api/ApiCallError.js";
3
- import { ZodSchema } from "../../core/schema/ZodSchema.js";
4
- import { parseJSON } from "../../core/schema/parseJSON.js";
5
- export const cohereErrorDataSchema = new ZodSchema(z.object({
2
+ import { createJsonErrorResponseHandler } from "../../core/api/postToApi.js";
3
+ import { zodSchema } from "../../core/schema/ZodSchema.js";
4
+ const cohereErrorDataSchema = z.object({
6
5
  message: z.string(),
7
- }));
8
- export class CohereError extends ApiCallError {
9
- constructor({ data, statusCode, url, requestBodyValues, message = data.message, }) {
10
- super({ message, statusCode, requestBodyValues, url });
11
- Object.defineProperty(this, "data", {
12
- enumerable: true,
13
- configurable: true,
14
- writable: true,
15
- value: void 0
16
- });
17
- this.data = data;
18
- }
19
- }
20
- export const failedCohereCallResponseHandler = async ({ response, url, requestBodyValues }) => {
21
- const responseBody = await response.text();
22
- // For some errors, the body of Cohere responses is empty:
23
- if (responseBody.trim() === "") {
24
- return new CohereError({
25
- url,
26
- requestBodyValues,
27
- statusCode: response.status,
28
- data: {
29
- message: response.statusText,
30
- },
31
- });
32
- }
33
- const parsedError = parseJSON({
34
- text: responseBody,
35
- schema: cohereErrorDataSchema,
36
- });
37
- return new CohereError({
38
- url,
39
- requestBodyValues,
40
- statusCode: response.status,
41
- data: parsedError,
42
- });
43
- };
6
+ });
7
+ export const failedCohereCallResponseHandler = createJsonErrorResponseHandler({
8
+ errorSchema: zodSchema(cohereErrorDataSchema),
9
+ errorToMessage: (error) => error.message,
10
+ });
@@ -1,9 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Tokenizer = exports.TextEmbedder = exports.TextGenerator = void 0;
3
+ exports.Tokenizer = exports.TextEmbedder = exports.TextGenerator = exports.Api = void 0;
4
+ const CohereApiConfiguration_js_1 = require("./CohereApiConfiguration.cjs");
4
5
  const CohereTextEmbeddingModel_js_1 = require("./CohereTextEmbeddingModel.cjs");
5
6
  const CohereTextGenerationModel_js_1 = require("./CohereTextGenerationModel.cjs");
6
7
  const CohereTokenizer_js_1 = require("./CohereTokenizer.cjs");
8
+ /**
9
+ * Creates an API configuration for the Cohere API.
10
+ * It calls the API at https://api.cohere.ai/v1 and uses the `COHERE_API_KEY` env variable by default.
11
+ */
12
+ function Api(settings) {
13
+ return new CohereApiConfiguration_js_1.CohereApiConfiguration(settings);
14
+ }
15
+ exports.Api = Api;
7
16
  /**
8
17
  * Create a text generation model that calls the Cohere Co.Generate API.
9
18
  *
@@ -11,7 +20,7 @@ const CohereTokenizer_js_1 = require("./CohereTokenizer.cjs");
11
20
  *
12
21
  * @example
13
22
  * const model = cohere.TextGenerator({
14
- * model: "command-nightly",
23
+ * model: "command",
15
24
  * temperature: 0.7,
16
25
  * maxGenerationTokens: 500,
17
26
  * });
@@ -54,7 +63,7 @@ exports.TextEmbedder = TextEmbedder;
54
63
  * @see https://docs.cohere.com/reference/detokenize-1
55
64
  *
56
65
  * @example
57
- * const tokenizer = cohere.Tokenizer({ model: "command-nightly" });
66
+ * const tokenizer = cohere.Tokenizer({ model: "command" });
58
67
  *
59
68
  * const text = "At first, Nox didn't know what to do with the pup.";
60
69
  *
@@ -1,6 +1,15 @@
1
+ import { PartialBaseUrlPartsApiConfigurationOptions } from "../../core/api/BaseUrlApiConfiguration.js";
2
+ import { CohereApiConfiguration } from "./CohereApiConfiguration.js";
1
3
  import { CohereTextEmbeddingModel, CohereTextEmbeddingModelSettings } from "./CohereTextEmbeddingModel.js";
2
4
  import { CohereTextGenerationModel, CohereTextGenerationModelSettings } from "./CohereTextGenerationModel.js";
3
5
  import { CohereTokenizer, CohereTokenizerSettings } from "./CohereTokenizer.js";
6
+ /**
7
+ * Creates an API configuration for the Cohere API.
8
+ * It calls the API at https://api.cohere.ai/v1 and uses the `COHERE_API_KEY` env variable by default.
9
+ */
10
+ export declare function Api(settings: PartialBaseUrlPartsApiConfigurationOptions & {
11
+ apiKey?: string;
12
+ }): CohereApiConfiguration;
4
13
  /**
5
14
  * Create a text generation model that calls the Cohere Co.Generate API.
6
15
  *
@@ -8,7 +17,7 @@ import { CohereTokenizer, CohereTokenizerSettings } from "./CohereTokenizer.js";
8
17
  *
9
18
  * @example
10
19
  * const model = cohere.TextGenerator({
11
- * model: "command-nightly",
20
+ * model: "command",
12
21
  * temperature: 0.7,
13
22
  * maxGenerationTokens: 500,
14
23
  * });
@@ -45,7 +54,7 @@ export declare function TextEmbedder(settings: CohereTextEmbeddingModelSettings)
45
54
  * @see https://docs.cohere.com/reference/detokenize-1
46
55
  *
47
56
  * @example
48
- * const tokenizer = cohere.Tokenizer({ model: "command-nightly" });
57
+ * const tokenizer = cohere.Tokenizer({ model: "command" });
49
58
  *
50
59
  * const text = "At first, Nox didn't know what to do with the pup.";
51
60
  *
@@ -1,6 +1,14 @@
1
+ import { CohereApiConfiguration } from "./CohereApiConfiguration.js";
1
2
  import { CohereTextEmbeddingModel, } from "./CohereTextEmbeddingModel.js";
2
3
  import { CohereTextGenerationModel, } from "./CohereTextGenerationModel.js";
3
4
  import { CohereTokenizer } from "./CohereTokenizer.js";
5
+ /**
6
+ * Creates an API configuration for the Cohere API.
7
+ * It calls the API at https://api.cohere.ai/v1 and uses the `COHERE_API_KEY` env variable by default.
8
+ */
9
+ export function Api(settings) {
10
+ return new CohereApiConfiguration(settings);
11
+ }
4
12
  /**
5
13
  * Create a text generation model that calls the Cohere Co.Generate API.
6
14
  *
@@ -8,7 +16,7 @@ import { CohereTokenizer } from "./CohereTokenizer.js";
8
16
  *
9
17
  * @example
10
18
  * const model = cohere.TextGenerator({
11
- * model: "command-nightly",
19
+ * model: "command",
12
20
  * temperature: 0.7,
13
21
  * maxGenerationTokens: 500,
14
22
  * });
@@ -49,7 +57,7 @@ export function TextEmbedder(settings) {
49
57
  * @see https://docs.cohere.com/reference/detokenize-1
50
58
  *
51
59
  * @example
52
- * const tokenizer = cohere.Tokenizer({ model: "command-nightly" });
60
+ * const tokenizer = cohere.Tokenizer({ model: "command" });
53
61
  *
54
62
  * const text = "At first, Nox didn't know what to do with the pup.";
55
63
  *
@@ -4,6 +4,7 @@ exports.CohereTextEmbeddingModel = exports.COHERE_TEXT_EMBEDDING_MODELS = 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 CohereApiConfiguration_js_1 = require("./CohereApiConfiguration.cjs");
9
10
  const CohereError_js_1 = require("./CohereError.cjs");
@@ -18,7 +19,7 @@ exports.COHERE_TEXT_EMBEDDING_MODELS = {
18
19
  embeddingDimensions: 4096,
19
20
  },
20
21
  "embed-multilingual-v2.0": {
21
- contextWindowSize: 512,
22
+ contextWindowSize: 256,
22
23
  embeddingDimensions: 768,
23
24
  },
24
25
  "embed-english-v3.0": {
@@ -116,13 +117,23 @@ class CohereTextEmbeddingModel extends AbstractModel_js_1.AbstractModel {
116
117
  if (texts.length > this.maxValuesPerCall) {
117
118
  throw new Error(`The Cohere embedding API only supports ${this.maxValuesPerCall} texts per API call.`);
118
119
  }
120
+ const api = this.settings.api ?? new CohereApiConfiguration_js_1.CohereApiConfiguration();
121
+ const abortSignal = options?.run?.abortSignal;
119
122
  return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
120
- retry: this.settings.api?.retry,
121
- throttle: this.settings.api?.throttle,
122
- call: async () => callCohereEmbeddingAPI({
123
- ...this.settings,
124
- abortSignal: options?.run?.abortSignal,
125
- texts,
123
+ retry: api.retry,
124
+ throttle: api.throttle,
125
+ call: async () => (0, postToApi_js_1.postJsonToApi)({
126
+ url: api.assembleUrl(`/embed`),
127
+ headers: api.headers,
128
+ body: {
129
+ model: this.settings.model,
130
+ texts,
131
+ input_type: this.settings.inputType,
132
+ truncate: this.settings.truncate,
133
+ },
134
+ failedResponseHandler: CohereError_js_1.failedCohereCallResponseHandler,
135
+ successfulResponseHandler: (0, postToApi_js_1.createJsonResponseHandler)((0, ZodSchema_js_1.zodSchema)(cohereTextEmbeddingResponseSchema)),
136
+ abortSignal,
126
137
  }),
127
138
  });
128
139
  }
@@ -153,18 +164,3 @@ const cohereTextEmbeddingResponseSchema = zod_1.z.object({
153
164
  }),
154
165
  }),
155
166
  });
156
- async function callCohereEmbeddingAPI({ api = new CohereApiConfiguration_js_1.CohereApiConfiguration(), abortSignal, model, texts, inputType, truncate, }) {
157
- return (0, postToApi_js_1.postJsonToApi)({
158
- url: api.assembleUrl(`/embed`),
159
- headers: api.headers,
160
- body: {
161
- model,
162
- texts,
163
- input_type: inputType,
164
- truncate,
165
- },
166
- failedResponseHandler: CohereError_js_1.failedCohereCallResponseHandler,
167
- successfulResponseHandler: (0, postToApi_js_1.createJsonResponseHandler)(cohereTextEmbeddingResponseSchema),
168
- abortSignal,
169
- });
170
- }
@@ -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 { CohereApiConfiguration } from "./CohereApiConfiguration.js";
6
7
  import { failedCohereCallResponseHandler } from "./CohereError.js";
@@ -15,7 +16,7 @@ export const COHERE_TEXT_EMBEDDING_MODELS = {
15
16
  embeddingDimensions: 4096,
16
17
  },
17
18
  "embed-multilingual-v2.0": {
18
- contextWindowSize: 512,
19
+ contextWindowSize: 256,
19
20
  embeddingDimensions: 768,
20
21
  },
21
22
  "embed-english-v3.0": {
@@ -113,13 +114,23 @@ export class CohereTextEmbeddingModel extends AbstractModel {
113
114
  if (texts.length > this.maxValuesPerCall) {
114
115
  throw new Error(`The Cohere embedding API only supports ${this.maxValuesPerCall} texts per API call.`);
115
116
  }
117
+ const api = this.settings.api ?? new CohereApiConfiguration();
118
+ const abortSignal = options?.run?.abortSignal;
116
119
  return callWithRetryAndThrottle({
117
- retry: this.settings.api?.retry,
118
- throttle: this.settings.api?.throttle,
119
- call: async () => callCohereEmbeddingAPI({
120
- ...this.settings,
121
- abortSignal: options?.run?.abortSignal,
122
- texts,
120
+ retry: api.retry,
121
+ throttle: api.throttle,
122
+ call: async () => postJsonToApi({
123
+ url: api.assembleUrl(`/embed`),
124
+ headers: api.headers,
125
+ body: {
126
+ model: this.settings.model,
127
+ texts,
128
+ input_type: this.settings.inputType,
129
+ truncate: this.settings.truncate,
130
+ },
131
+ failedResponseHandler: failedCohereCallResponseHandler,
132
+ successfulResponseHandler: createJsonResponseHandler(zodSchema(cohereTextEmbeddingResponseSchema)),
133
+ abortSignal,
123
134
  }),
124
135
  });
125
136
  }
@@ -149,18 +160,3 @@ const cohereTextEmbeddingResponseSchema = z.object({
149
160
  }),
150
161
  }),
151
162
  });
152
- async function callCohereEmbeddingAPI({ api = new CohereApiConfiguration(), abortSignal, model, texts, inputType, truncate, }) {
153
- return postJsonToApi({
154
- url: api.assembleUrl(`/embed`),
155
- headers: api.headers,
156
- body: {
157
- model,
158
- texts,
159
- input_type: inputType,
160
- truncate,
161
- },
162
- failedResponseHandler: failedCohereCallResponseHandler,
163
- successfulResponseHandler: createJsonResponseHandler(cohereTextEmbeddingResponseSchema),
164
- abortSignal,
165
- });
166
- }