modelfusion 0.27.3 → 0.29.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 (190) hide show
  1. package/README.md +23 -6
  2. package/{model-function/BasicApiConfiguration.js → core/api/AbstractApiConfiguration.cjs} +6 -15
  3. package/core/api/AbstractApiConfiguration.d.ts +13 -0
  4. package/core/api/AbstractApiConfiguration.js +18 -0
  5. package/core/api/ApiConfiguration.d.ts +32 -0
  6. package/core/api/BaseUrlApiConfiguration.cjs +32 -0
  7. package/core/api/BaseUrlApiConfiguration.d.ts +19 -0
  8. package/core/api/BaseUrlApiConfiguration.js +28 -0
  9. package/core/api/index.cjs +27 -0
  10. package/core/api/index.d.ts +11 -0
  11. package/core/api/index.js +11 -0
  12. package/{util → core}/api/postToApi.d.ts +1 -1
  13. package/core/index.cjs +1 -0
  14. package/core/index.d.ts +1 -0
  15. package/core/index.js +1 -0
  16. package/model-function/ModelCallEvent.d.ts +3 -2
  17. package/model-function/SuccessfulModelCall.d.ts +1 -1
  18. package/model-function/describe-image/ImageDescriptionEvent.cjs +2 -0
  19. package/model-function/describe-image/ImageDescriptionEvent.d.ts +18 -0
  20. package/model-function/describe-image/ImageDescriptionEvent.js +1 -0
  21. package/model-function/describe-image/ImageDescriptionModel.cjs +2 -0
  22. package/model-function/describe-image/ImageDescriptionModel.d.ts +8 -0
  23. package/model-function/describe-image/ImageDescriptionModel.js +1 -0
  24. package/model-function/describe-image/describeImage.cjs +20 -0
  25. package/model-function/describe-image/describeImage.d.ts +9 -0
  26. package/model-function/describe-image/describeImage.js +16 -0
  27. package/model-function/executeCall.cjs +1 -1
  28. package/model-function/executeCall.js +1 -1
  29. package/model-function/generate-text/streamText.cjs +1 -1
  30. package/model-function/generate-text/streamText.js +1 -1
  31. package/model-function/index.cjs +3 -2
  32. package/model-function/index.d.ts +3 -2
  33. package/model-function/index.js +3 -2
  34. package/model-provider/automatic1111/Automatic1111ApiConfiguration.cjs +3 -2
  35. package/model-provider/automatic1111/Automatic1111ApiConfiguration.d.ts +4 -4
  36. package/model-provider/automatic1111/Automatic1111ApiConfiguration.js +3 -2
  37. package/model-provider/automatic1111/Automatic1111Error.cjs +1 -1
  38. package/model-provider/automatic1111/Automatic1111Error.d.ts +2 -2
  39. package/model-provider/automatic1111/Automatic1111Error.js +1 -1
  40. package/model-provider/automatic1111/Automatic1111ImageGenerationModel.cjs +2 -2
  41. package/model-provider/automatic1111/Automatic1111ImageGenerationModel.d.ts +1 -1
  42. package/model-provider/automatic1111/Automatic1111ImageGenerationModel.js +2 -2
  43. package/model-provider/cohere/CohereApiConfiguration.cjs +10 -17
  44. package/model-provider/cohere/CohereApiConfiguration.d.ts +4 -6
  45. package/model-provider/cohere/CohereApiConfiguration.js +10 -17
  46. package/model-provider/cohere/CohereError.cjs +1 -1
  47. package/model-provider/cohere/CohereError.d.ts +2 -2
  48. package/model-provider/cohere/CohereError.js +1 -1
  49. package/model-provider/cohere/CohereTextEmbeddingModel.cjs +2 -2
  50. package/model-provider/cohere/CohereTextEmbeddingModel.d.ts +1 -1
  51. package/model-provider/cohere/CohereTextEmbeddingModel.js +2 -2
  52. package/model-provider/cohere/CohereTextGenerationModel.cjs +2 -2
  53. package/model-provider/cohere/CohereTextGenerationModel.d.ts +2 -2
  54. package/model-provider/cohere/CohereTextGenerationModel.js +2 -2
  55. package/model-provider/cohere/CohereTokenizer.cjs +2 -2
  56. package/model-provider/cohere/CohereTokenizer.d.ts +1 -1
  57. package/model-provider/cohere/CohereTokenizer.js +2 -2
  58. package/model-provider/elevenlabs/ElevenLabsApiConfiguration.cjs +10 -17
  59. package/model-provider/elevenlabs/ElevenLabsApiConfiguration.d.ts +4 -6
  60. package/model-provider/elevenlabs/ElevenLabsApiConfiguration.js +10 -17
  61. package/model-provider/elevenlabs/ElevenLabsError.cjs +1 -1
  62. package/model-provider/elevenlabs/ElevenLabsError.d.ts +2 -2
  63. package/model-provider/elevenlabs/ElevenLabsError.js +1 -1
  64. package/model-provider/elevenlabs/ElevenLabsSpeechSynthesisModel.cjs +2 -2
  65. package/model-provider/elevenlabs/ElevenLabsSpeechSynthesisModel.d.ts +1 -1
  66. package/model-provider/elevenlabs/ElevenLabsSpeechSynthesisModel.js +2 -2
  67. package/model-provider/huggingface/HuggingFaceApiConfiguration.cjs +10 -17
  68. package/model-provider/huggingface/HuggingFaceApiConfiguration.d.ts +4 -6
  69. package/model-provider/huggingface/HuggingFaceApiConfiguration.js +10 -17
  70. package/model-provider/huggingface/HuggingFaceError.cjs +5 -3
  71. package/model-provider/huggingface/HuggingFaceError.d.ts +5 -5
  72. package/model-provider/huggingface/HuggingFaceError.js +5 -3
  73. package/model-provider/huggingface/HuggingFaceImageDescriptionModel.cjs +81 -0
  74. package/model-provider/huggingface/HuggingFaceImageDescriptionModel.d.ts +37 -0
  75. package/model-provider/huggingface/HuggingFaceImageDescriptionModel.js +74 -0
  76. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.cjs +2 -2
  77. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.d.ts +1 -1
  78. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.js +2 -2
  79. package/model-provider/huggingface/HuggingFaceTextGenerationModel.cjs +2 -2
  80. package/model-provider/huggingface/HuggingFaceTextGenerationModel.d.ts +1 -1
  81. package/model-provider/huggingface/HuggingFaceTextGenerationModel.js +2 -2
  82. package/model-provider/huggingface/index.cjs +1 -0
  83. package/model-provider/huggingface/index.d.ts +1 -0
  84. package/model-provider/huggingface/index.js +1 -0
  85. package/model-provider/llamacpp/LlamaCppApiConfiguration.cjs +3 -2
  86. package/model-provider/llamacpp/LlamaCppApiConfiguration.d.ts +4 -4
  87. package/model-provider/llamacpp/LlamaCppApiConfiguration.js +3 -2
  88. package/model-provider/llamacpp/LlamaCppError.cjs +1 -1
  89. package/model-provider/llamacpp/LlamaCppError.d.ts +2 -2
  90. package/model-provider/llamacpp/LlamaCppError.js +1 -1
  91. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.cjs +2 -2
  92. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.d.ts +1 -1
  93. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.js +2 -2
  94. package/model-provider/llamacpp/LlamaCppTextGenerationModel.cjs +2 -2
  95. package/model-provider/llamacpp/LlamaCppTextGenerationModel.d.ts +2 -2
  96. package/model-provider/llamacpp/LlamaCppTextGenerationModel.js +2 -2
  97. package/model-provider/llamacpp/LlamaCppTokenizer.cjs +2 -2
  98. package/model-provider/llamacpp/LlamaCppTokenizer.d.ts +1 -1
  99. package/model-provider/llamacpp/LlamaCppTokenizer.js +2 -2
  100. package/model-provider/lmnt/LmntApiConfiguration.cjs +10 -17
  101. package/model-provider/lmnt/LmntApiConfiguration.d.ts +4 -6
  102. package/model-provider/lmnt/LmntApiConfiguration.js +10 -17
  103. package/model-provider/lmnt/LmntError.cjs +1 -1
  104. package/model-provider/lmnt/LmntError.d.ts +2 -2
  105. package/model-provider/lmnt/LmntError.js +1 -1
  106. package/model-provider/lmnt/LmntSpeechSynthesisModel.cjs +2 -2
  107. package/model-provider/lmnt/LmntSpeechSynthesisModel.d.ts +1 -1
  108. package/model-provider/lmnt/LmntSpeechSynthesisModel.js +2 -2
  109. package/model-provider/openai/AzureOpenAIApiConfiguration.cjs +13 -20
  110. package/model-provider/openai/AzureOpenAIApiConfiguration.d.ts +5 -6
  111. package/model-provider/openai/AzureOpenAIApiConfiguration.js +13 -20
  112. package/model-provider/openai/OpenAIApiConfiguration.cjs +10 -19
  113. package/model-provider/openai/OpenAIApiConfiguration.d.ts +4 -6
  114. package/model-provider/openai/OpenAIApiConfiguration.js +10 -19
  115. package/model-provider/openai/OpenAIError.cjs +1 -1
  116. package/model-provider/openai/OpenAIError.d.ts +6 -6
  117. package/model-provider/openai/OpenAIError.js +1 -1
  118. package/model-provider/openai/OpenAIImageGenerationModel.cjs +2 -2
  119. package/model-provider/openai/OpenAIImageGenerationModel.d.ts +2 -2
  120. package/model-provider/openai/OpenAIImageGenerationModel.js +2 -2
  121. package/model-provider/openai/OpenAITextEmbeddingModel.cjs +2 -2
  122. package/model-provider/openai/OpenAITextEmbeddingModel.d.ts +1 -1
  123. package/model-provider/openai/OpenAITextEmbeddingModel.js +2 -2
  124. package/model-provider/openai/OpenAITextGenerationModel.cjs +2 -2
  125. package/model-provider/openai/OpenAITextGenerationModel.d.ts +2 -2
  126. package/model-provider/openai/OpenAITextGenerationModel.js +2 -2
  127. package/model-provider/openai/OpenAITranscriptionModel.cjs +2 -2
  128. package/model-provider/openai/OpenAITranscriptionModel.d.ts +2 -2
  129. package/model-provider/openai/OpenAITranscriptionModel.js +2 -2
  130. package/model-provider/openai/chat/OpenAIChatModel.cjs +2 -2
  131. package/model-provider/openai/chat/OpenAIChatModel.d.ts +2 -2
  132. package/model-provider/openai/chat/OpenAIChatModel.js +2 -2
  133. package/model-provider/stability/StabilityApiConfiguration.cjs +10 -19
  134. package/model-provider/stability/StabilityApiConfiguration.d.ts +4 -6
  135. package/model-provider/stability/StabilityApiConfiguration.js +10 -19
  136. package/model-provider/stability/StabilityError.cjs +1 -1
  137. package/model-provider/stability/StabilityError.d.ts +2 -2
  138. package/model-provider/stability/StabilityError.js +1 -1
  139. package/model-provider/stability/StabilityImageGenerationModel.cjs +2 -2
  140. package/model-provider/stability/StabilityImageGenerationModel.d.ts +1 -1
  141. package/model-provider/stability/StabilityImageGenerationModel.js +2 -2
  142. package/observability/helicone/HeliconeOpenAIApiConfiguration.cjs +17 -33
  143. package/observability/helicone/HeliconeOpenAIApiConfiguration.d.ts +4 -7
  144. package/observability/helicone/HeliconeOpenAIApiConfiguration.js +17 -33
  145. package/package.json +1 -1
  146. package/tool/executeTool.cjs +1 -1
  147. package/tool/executeTool.js +1 -1
  148. package/util/index.cjs +0 -9
  149. package/util/index.d.ts +0 -9
  150. package/util/index.js +0 -9
  151. package/model-function/ApiConfiguration.d.ts +0 -14
  152. package/model-function/BasicApiConfiguration.cjs +0 -35
  153. package/model-function/BasicApiConfiguration.d.ts +0 -15
  154. /package/{util → core}/api/AbortError.cjs +0 -0
  155. /package/{util → core}/api/AbortError.d.ts +0 -0
  156. /package/{util → core}/api/AbortError.js +0 -0
  157. /package/{util → core}/api/ApiCallError.cjs +0 -0
  158. /package/{util → core}/api/ApiCallError.d.ts +0 -0
  159. /package/{util → core}/api/ApiCallError.js +0 -0
  160. /package/{model-function → core/api}/ApiConfiguration.cjs +0 -0
  161. /package/{model-function → core/api}/ApiConfiguration.js +0 -0
  162. /package/{util → core}/api/RetryError.cjs +0 -0
  163. /package/{util → core}/api/RetryError.d.ts +0 -0
  164. /package/{util → core}/api/RetryError.js +0 -0
  165. /package/{util → core}/api/RetryFunction.cjs +0 -0
  166. /package/{util → core}/api/RetryFunction.d.ts +0 -0
  167. /package/{util → core}/api/RetryFunction.js +0 -0
  168. /package/{util → core}/api/ThrottleFunction.cjs +0 -0
  169. /package/{util → core}/api/ThrottleFunction.d.ts +0 -0
  170. /package/{util → core}/api/ThrottleFunction.js +0 -0
  171. /package/{util → core}/api/callWithRetryAndThrottle.cjs +0 -0
  172. /package/{util → core}/api/callWithRetryAndThrottle.d.ts +0 -0
  173. /package/{util → core}/api/callWithRetryAndThrottle.js +0 -0
  174. /package/{util → core}/api/loadApiKey.cjs +0 -0
  175. /package/{util → core}/api/loadApiKey.d.ts +0 -0
  176. /package/{util → core}/api/loadApiKey.js +0 -0
  177. /package/{util → core}/api/postToApi.cjs +0 -0
  178. /package/{util → core}/api/postToApi.js +0 -0
  179. /package/{util → core}/api/retryNever.cjs +0 -0
  180. /package/{util → core}/api/retryNever.d.ts +0 -0
  181. /package/{util → core}/api/retryNever.js +0 -0
  182. /package/{util → core}/api/retryWithExponentialBackoff.cjs +0 -0
  183. /package/{util → core}/api/retryWithExponentialBackoff.d.ts +0 -0
  184. /package/{util → core}/api/retryWithExponentialBackoff.js +0 -0
  185. /package/{util → core}/api/throttleMaxConcurrency.cjs +0 -0
  186. /package/{util → core}/api/throttleMaxConcurrency.d.ts +0 -0
  187. /package/{util → core}/api/throttleMaxConcurrency.js +0 -0
  188. /package/{util → core}/api/throttleUnlimitedConcurrency.cjs +0 -0
  189. /package/{util → core}/api/throttleUnlimitedConcurrency.d.ts +0 -0
  190. /package/{util → core}/api/throttleUnlimitedConcurrency.js +0 -0
package/README.md CHANGED
@@ -314,6 +314,21 @@ const speech = await synthesizeSpeech(
314
314
 
315
315
  Providers: [Eleven Labs](https://modelfusion.dev/integration/model-provider/elevenlabs), [LMNT](https://modelfusion.dev/integration/model-provider/lmnt)
316
316
 
317
+ ### [Describe Image](https://modelfusion.dev/guide/function/describe-image)
318
+
319
+ Describe an image as text, e.g. for image captioning or OCR.
320
+
321
+ ```ts
322
+ const text = await describeImage(
323
+ new HuggingFaceImageDescriptionModel({
324
+ model: "nlpconnect/vit-gpt2-image-captioning",
325
+ }),
326
+ data: buffer
327
+ );
328
+ ```
329
+
330
+ Providers: [HuggingFace](/integration/model-provider/huggingface)
331
+
317
332
  ### [Generate Image](https://modelfusion.dev/guide/function/generate-image)
318
333
 
319
334
  Generate a base64-encoded image from a prompt.
@@ -412,16 +427,18 @@ Integrations: [Helicone](https://modelfusion.dev/integration/observability/helic
412
427
  - [Tokenize Text](https://modelfusion.dev/guide/function/tokenize-text)
413
428
  - [Transcribe Speech](https://modelfusion.dev/guide/function/transcribe-speech)
414
429
  - [Synthesize Speech](https://modelfusion.dev/guide/function/synthesize-speech)
415
- - [Generate images](https://modelfusion.dev/guide/function/generate-image)
430
+ - [Describe Image](https://modelfusion.dev/guide/function/describe-image)
431
+ - [Generate Image](https://modelfusion.dev/guide/function/generate-image)
416
432
  - [Tools](https://modelfusion.dev/guide/tools)
417
433
  - [Text Chunks](https://modelfusion.dev/guide/text-chunk/)
418
434
  - [Split Text](https://modelfusion.dev/guide/text-chunk/split)
419
435
  - [Utilities](https://modelfusion.dev/guide/util/)
420
- - [Function Logging](https://modelfusion.dev/guide/util/logging)
421
- - [Function observers](https://modelfusion.dev/guide/util/observer)
422
- - [Retry strategies](https://modelfusion.dev/guide/util/retry)
423
- - [Throttling strategies](https://modelfusion.dev/guide/util/throttle)
424
- - [Run abstraction](https://modelfusion.dev/guide/util/run)
436
+ - [API Configuration](https://modelfusion.dev/guide/util/api-configuration)
437
+ - [Retry strategies](https://modelfusion.dev/guide/util/api-configuration/retry)
438
+ - [Throttling strategies](https://modelfusion.dev/guide/util/api-configuration/throttle)
439
+ - [Logging](https://modelfusion.dev/guide/util/logging)
440
+ - [Observers](https://modelfusion.dev/guide/util/observer)
441
+ - [Runs](https://modelfusion.dev/guide/util/run)
425
442
  - [Abort signals](https://modelfusion.dev/guide/util/abort)
426
443
  - [Cost calculation](https://modelfusion.dev/guide/util/cost-calculation)
427
444
 
@@ -1,11 +1,8 @@
1
- export class BasicApiConfiguration {
2
- constructor({ baseUrl, retry, throttle, }) {
3
- Object.defineProperty(this, "baseUrl", {
4
- enumerable: true,
5
- configurable: true,
6
- writable: true,
7
- value: void 0
8
- });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractApiConfiguration = void 0;
4
+ class AbstractApiConfiguration {
5
+ constructor({ retry, throttle, }) {
9
6
  Object.defineProperty(this, "retry", {
10
7
  enumerable: true,
11
8
  configurable: true,
@@ -18,14 +15,8 @@ export class BasicApiConfiguration {
18
15
  writable: true,
19
16
  value: void 0
20
17
  });
21
- this.baseUrl = baseUrl;
22
18
  this.retry = retry;
23
19
  this.throttle = throttle;
24
20
  }
25
- get headers() {
26
- return {};
27
- }
28
- assembleUrl(path) {
29
- return `${this.baseUrl}${path}`;
30
- }
31
21
  }
22
+ exports.AbstractApiConfiguration = AbstractApiConfiguration;
@@ -0,0 +1,13 @@
1
+ import { RetryFunction } from "./RetryFunction.js";
2
+ import { ThrottleFunction } from "./ThrottleFunction.js";
3
+ import { ApiConfiguration } from "./ApiConfiguration.js";
4
+ export declare abstract class AbstractApiConfiguration implements ApiConfiguration {
5
+ readonly retry?: RetryFunction;
6
+ readonly throttle?: ThrottleFunction;
7
+ constructor({ retry, throttle, }: {
8
+ retry?: RetryFunction;
9
+ throttle?: ThrottleFunction;
10
+ });
11
+ abstract assembleUrl(path: string): string;
12
+ abstract readonly headers: Record<string, string>;
13
+ }
@@ -0,0 +1,18 @@
1
+ export class AbstractApiConfiguration {
2
+ constructor({ retry, throttle, }) {
3
+ Object.defineProperty(this, "retry", {
4
+ enumerable: true,
5
+ configurable: true,
6
+ writable: true,
7
+ value: void 0
8
+ });
9
+ Object.defineProperty(this, "throttle", {
10
+ enumerable: true,
11
+ configurable: true,
12
+ writable: true,
13
+ value: void 0
14
+ });
15
+ this.retry = retry;
16
+ this.throttle = throttle;
17
+ }
18
+ }
@@ -0,0 +1,32 @@
1
+ import { RetryFunction } from "./RetryFunction.js";
2
+ import { ThrottleFunction } from "./ThrottleFunction.js";
3
+ /**
4
+ * Settings for how to call an API, e.g. OpenAI.
5
+ *
6
+ * This interfaces enables creating pre-defined API configuration for certain API (e.g., OpenAI),
7
+ * pre-defined proxy configurations (e.g. Helicone OpenAI),
8
+ * and fully custom setups (e.g. your own internal OpenAI proxy with custom headers).
9
+ */
10
+ export interface ApiConfiguration {
11
+ /**
12
+ * Creates a full URL given a inner path.
13
+ *
14
+ * The inner path always starts with a slash, e.g. `/generate`.
15
+ */
16
+ assembleUrl(path: string): string;
17
+ /**
18
+ * Returns the headers that should be included in every request to the API.
19
+ * This is intended for authentication headers and proxy settings.
20
+ *
21
+ * The model may add additional headers, in particular "Content-Type"."
22
+ */
23
+ readonly headers: Record<string, string>;
24
+ /**
25
+ * Defines how failed API calls should be retried.
26
+ */
27
+ readonly retry?: RetryFunction;
28
+ /**
29
+ * Defines how API calls should be rate limited.
30
+ */
31
+ readonly throttle?: ThrottleFunction;
32
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseUrlApiConfiguration = void 0;
4
+ const AbstractApiConfiguration_js_1 = require("./AbstractApiConfiguration.cjs");
5
+ /**
6
+ * An API configuration that uses a base URL and a set of headers.
7
+ *
8
+ * You can use it to configure custom APIs for models, e.g. your own internal OpenAI proxy with custom headers.
9
+ */
10
+ class BaseUrlApiConfiguration extends AbstractApiConfiguration_js_1.AbstractApiConfiguration {
11
+ constructor({ baseUrl, headers, retry, throttle, }) {
12
+ super({ retry, throttle });
13
+ Object.defineProperty(this, "baseUrl", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: void 0
18
+ });
19
+ Object.defineProperty(this, "headers", {
20
+ enumerable: true,
21
+ configurable: true,
22
+ writable: true,
23
+ value: void 0
24
+ });
25
+ this.baseUrl = baseUrl;
26
+ this.headers = headers;
27
+ }
28
+ assembleUrl(path) {
29
+ return `${this.baseUrl}${path}`;
30
+ }
31
+ }
32
+ exports.BaseUrlApiConfiguration = BaseUrlApiConfiguration;
@@ -0,0 +1,19 @@
1
+ import { AbstractApiConfiguration } from "./AbstractApiConfiguration.js";
2
+ import { RetryFunction } from "./RetryFunction.js";
3
+ import { ThrottleFunction } from "./ThrottleFunction.js";
4
+ /**
5
+ * An API configuration that uses a base URL and a set of headers.
6
+ *
7
+ * You can use it to configure custom APIs for models, e.g. your own internal OpenAI proxy with custom headers.
8
+ */
9
+ export declare class BaseUrlApiConfiguration extends AbstractApiConfiguration {
10
+ readonly baseUrl: string;
11
+ readonly headers: Record<string, string>;
12
+ constructor({ baseUrl, headers, retry, throttle, }: {
13
+ baseUrl: string;
14
+ headers: Record<string, string>;
15
+ retry?: RetryFunction;
16
+ throttle?: ThrottleFunction;
17
+ });
18
+ assembleUrl(path: string): string;
19
+ }
@@ -0,0 +1,28 @@
1
+ import { AbstractApiConfiguration } from "./AbstractApiConfiguration.js";
2
+ /**
3
+ * An API configuration that uses a base URL and a set of headers.
4
+ *
5
+ * You can use it to configure custom APIs for models, e.g. your own internal OpenAI proxy with custom headers.
6
+ */
7
+ export class BaseUrlApiConfiguration extends AbstractApiConfiguration {
8
+ constructor({ baseUrl, headers, retry, throttle, }) {
9
+ super({ retry, throttle });
10
+ Object.defineProperty(this, "baseUrl", {
11
+ enumerable: true,
12
+ configurable: true,
13
+ writable: true,
14
+ value: void 0
15
+ });
16
+ Object.defineProperty(this, "headers", {
17
+ enumerable: true,
18
+ configurable: true,
19
+ writable: true,
20
+ value: void 0
21
+ });
22
+ this.baseUrl = baseUrl;
23
+ this.headers = headers;
24
+ }
25
+ assembleUrl(path) {
26
+ return `${this.baseUrl}${path}`;
27
+ }
28
+ }
@@ -0,0 +1,27 @@
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("./AbortError.cjs"), exports);
18
+ __exportStar(require("./ApiCallError.cjs"), exports);
19
+ __exportStar(require("./ApiConfiguration.cjs"), exports);
20
+ __exportStar(require("./BaseUrlApiConfiguration.cjs"), exports);
21
+ __exportStar(require("./RetryError.cjs"), exports);
22
+ __exportStar(require("./RetryFunction.cjs"), exports);
23
+ __exportStar(require("./ThrottleFunction.cjs"), exports);
24
+ __exportStar(require("./retryNever.cjs"), exports);
25
+ __exportStar(require("./retryWithExponentialBackoff.cjs"), exports);
26
+ __exportStar(require("./throttleMaxConcurrency.cjs"), exports);
27
+ __exportStar(require("./throttleUnlimitedConcurrency.cjs"), exports);
@@ -0,0 +1,11 @@
1
+ export * from "./AbortError.js";
2
+ export * from "./ApiCallError.js";
3
+ export * from "./ApiConfiguration.js";
4
+ export * from "./BaseUrlApiConfiguration.js";
5
+ export * from "./RetryError.js";
6
+ export * from "./RetryFunction.js";
7
+ export * from "./ThrottleFunction.js";
8
+ export * from "./retryNever.js";
9
+ export * from "./retryWithExponentialBackoff.js";
10
+ export * from "./throttleMaxConcurrency.js";
11
+ export * from "./throttleUnlimitedConcurrency.js";
@@ -0,0 +1,11 @@
1
+ export * from "./AbortError.js";
2
+ export * from "./ApiCallError.js";
3
+ export * from "./ApiConfiguration.js";
4
+ export * from "./BaseUrlApiConfiguration.js";
5
+ export * from "./RetryError.js";
6
+ export * from "./RetryFunction.js";
7
+ export * from "./ThrottleFunction.js";
8
+ export * from "./retryNever.js";
9
+ export * from "./retryWithExponentialBackoff.js";
10
+ export * from "./throttleMaxConcurrency.js";
11
+ export * from "./throttleUnlimitedConcurrency.js";
@@ -21,7 +21,7 @@ export declare const postToApi: <T>({ url, headers, body, successfulResponseHand
21
21
  url: string;
22
22
  headers?: Record<string, string> | undefined;
23
23
  body: {
24
- content: string | FormData;
24
+ content: string | FormData | Buffer;
25
25
  values: unknown;
26
26
  };
27
27
  failedResponseHandler: ResponseHandler<Error>;
package/core/index.cjs CHANGED
@@ -23,3 +23,4 @@ __exportStar(require("./GlobalFunctionLogging.cjs"), exports);
23
23
  __exportStar(require("./GlobalFunctionObservers.cjs"), exports);
24
24
  __exportStar(require("./Run.cjs"), exports);
25
25
  __exportStar(require("./Vector.cjs"), exports);
26
+ __exportStar(require("./api/index.cjs"), exports);
package/core/index.d.ts CHANGED
@@ -7,3 +7,4 @@ export * from "./GlobalFunctionLogging.js";
7
7
  export * from "./GlobalFunctionObservers.js";
8
8
  export * from "./Run.js";
9
9
  export * from "./Vector.js";
10
+ export * from "./api/index.js";
package/core/index.js CHANGED
@@ -7,3 +7,4 @@ export * from "./GlobalFunctionLogging.js";
7
7
  export * from "./GlobalFunctionObservers.js";
8
8
  export * from "./Run.js";
9
9
  export * from "./Vector.js";
10
+ export * from "./api/index.js";
@@ -1,5 +1,6 @@
1
1
  import { BaseFunctionFinishedEvent, BaseFunctionStartedEvent } from "../core/FunctionEvent.js";
2
2
  import { ModelInformation } from "./ModelInformation.js";
3
+ import { ImageDescriptionFinishedEvent, ImageDescriptionStartedEvent } from "./describe-image/ImageDescriptionEvent.js";
3
4
  import { TextEmbeddingFinishedEvent, TextEmbeddingStartedEvent } from "./embed-text/TextEmbeddingEvent.js";
4
5
  import { ImageGenerationFinishedEvent, ImageGenerationStartedEvent } from "./generate-image/ImageGenerationEvent.js";
5
6
  import { JsonGenerationFinishedEvent, JsonGenerationStartedEvent } from "./generate-json/JsonGenerationEvent.js";
@@ -47,5 +48,5 @@ export interface BaseModelCallFinishedEvent extends BaseFunctionFinishedEvent {
47
48
  */
48
49
  result: BaseModelCallFinishedEventResult;
49
50
  }
50
- export type ModelCallStartedEvent = ImageGenerationStartedEvent | JsonGenerationStartedEvent | SpeechSynthesisStartedEvent | TextEmbeddingStartedEvent | TextGenerationStartedEvent | TextStreamingStartedEvent | TranscriptionStartedEvent;
51
- export type ModelCallFinishedEvent = ImageGenerationFinishedEvent | JsonGenerationFinishedEvent | SpeechSynthesisFinishedEvent | TextEmbeddingFinishedEvent | TextGenerationFinishedEvent | TextStreamingFinishedEvent | TranscriptionFinishedEvent;
51
+ export type ModelCallStartedEvent = ImageDescriptionStartedEvent | ImageGenerationStartedEvent | JsonGenerationStartedEvent | SpeechSynthesisStartedEvent | TextEmbeddingStartedEvent | TextGenerationStartedEvent | TextStreamingStartedEvent | TranscriptionStartedEvent;
52
+ export type ModelCallFinishedEvent = ImageDescriptionFinishedEvent | ImageGenerationFinishedEvent | JsonGenerationFinishedEvent | SpeechSynthesisFinishedEvent | TextEmbeddingFinishedEvent | TextGenerationFinishedEvent | TextStreamingFinishedEvent | TranscriptionFinishedEvent;
@@ -1,7 +1,7 @@
1
1
  import { FunctionEvent } from "../core/FunctionEvent.js";
2
2
  import { ModelInformation } from "./ModelInformation.js";
3
3
  export type SuccessfulModelCall = {
4
- type: "image-generation" | "json-generation" | "json-or-text-generation" | "speech-synthesis" | "text-embedding" | "text-generation" | "text-streaming" | "transcription";
4
+ type: "image-description" | "image-generation" | "json-generation" | "json-or-text-generation" | "speech-synthesis" | "text-embedding" | "text-generation" | "text-streaming" | "transcription";
5
5
  model: ModelInformation;
6
6
  settings: unknown;
7
7
  response: unknown;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,18 @@
1
+ import { BaseModelCallFinishedEvent, BaseModelCallStartedEvent } from "../ModelCallEvent.js";
2
+ export interface ImageDescriptionStartedEvent extends BaseModelCallStartedEvent {
3
+ functionType: "image-description";
4
+ }
5
+ export type ImageDescriptionFinishedEventResult = {
6
+ status: "success";
7
+ response: unknown;
8
+ output: string;
9
+ } | {
10
+ status: "error";
11
+ error: unknown;
12
+ } | {
13
+ status: "abort";
14
+ };
15
+ export interface ImageDescriptionFinishedEvent extends BaseModelCallFinishedEvent {
16
+ functionType: "image-description";
17
+ result: ImageDescriptionFinishedEventResult;
18
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ import { ModelFunctionOptions } from "../ModelFunctionOptions.js";
2
+ import { Model, ModelSettings } from "../Model.js";
3
+ export interface ImageDescriptionModelSettings extends ModelSettings {
4
+ }
5
+ export interface ImageDescriptionModel<DATA, RESPONSE, SETTINGS extends ImageDescriptionModelSettings> extends Model<SETTINGS> {
6
+ generateImageDescriptionResponse: (data: DATA, options?: ModelFunctionOptions<SETTINGS>) => PromiseLike<RESPONSE>;
7
+ extractImageDescription: (response: RESPONSE) => string;
8
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.describeImage = void 0;
4
+ const executeCall_js_1 = require("../executeCall.cjs");
5
+ /**
6
+ * Describe an image as text.
7
+ *
8
+ * Depending on the model, this can be used for image captioning, for describing the contents of an image, or for OCR.
9
+ */
10
+ function describeImage(model, data, options) {
11
+ return (0, executeCall_js_1.executeCall)({
12
+ functionType: "image-description",
13
+ input: data,
14
+ model,
15
+ options,
16
+ generateResponse: (options) => model.generateImageDescriptionResponse(data, options),
17
+ extractOutputValue: model.extractImageDescription,
18
+ });
19
+ }
20
+ exports.describeImage = describeImage;
@@ -0,0 +1,9 @@
1
+ import { ModelFunctionOptions } from "../ModelFunctionOptions.js";
2
+ import { ModelFunctionPromise } from "../executeCall.js";
3
+ import { ImageDescriptionModel, ImageDescriptionModelSettings } from "./ImageDescriptionModel.js";
4
+ /**
5
+ * Describe an image as text.
6
+ *
7
+ * Depending on the model, this can be used for image captioning, for describing the contents of an image, or for OCR.
8
+ */
9
+ export declare function describeImage<DATA, RESPONSE, SETTINGS extends ImageDescriptionModelSettings>(model: ImageDescriptionModel<DATA, RESPONSE, SETTINGS>, data: DATA, options?: ModelFunctionOptions<SETTINGS>): ModelFunctionPromise<string, RESPONSE>;
@@ -0,0 +1,16 @@
1
+ import { executeCall } from "../executeCall.js";
2
+ /**
3
+ * Describe an image as text.
4
+ *
5
+ * Depending on the model, this can be used for image captioning, for describing the contents of an image, or for OCR.
6
+ */
7
+ export function describeImage(model, data, options) {
8
+ return executeCall({
9
+ functionType: "image-description",
10
+ input: data,
11
+ model,
12
+ options,
13
+ generateResponse: (options) => model.generateImageDescriptionResponse(data, options),
14
+ extractOutputValue: model.extractImageDescription,
15
+ });
16
+ }
@@ -7,7 +7,7 @@ const GlobalFunctionLogging_js_1 = require("../core/GlobalFunctionLogging.cjs");
7
7
  const GlobalFunctionObservers_js_1 = require("../core/GlobalFunctionObservers.cjs");
8
8
  const getFunctionCallLogger_js_1 = require("../core/getFunctionCallLogger.cjs");
9
9
  const DurationMeasurement_js_1 = require("../util/DurationMeasurement.cjs");
10
- const AbortError_js_1 = require("../util/api/AbortError.cjs");
10
+ const AbortError_js_1 = require("../core/api/AbortError.cjs");
11
11
  const runSafe_js_1 = require("../util/runSafe.cjs");
12
12
  class ModelFunctionPromise extends Promise {
13
13
  constructor(fullPromise) {
@@ -4,7 +4,7 @@ import { getGlobalFunctionLogging } from "../core/GlobalFunctionLogging.js";
4
4
  import { getGlobalFunctionObservers } from "../core/GlobalFunctionObservers.js";
5
5
  import { getFunctionCallLogger } from "../core/getFunctionCallLogger.js";
6
6
  import { startDurationMeasurement } from "../util/DurationMeasurement.js";
7
- import { AbortError } from "../util/api/AbortError.js";
7
+ import { AbortError } from "../core/api/AbortError.js";
8
8
  import { runSafe } from "../util/runSafe.js";
9
9
  export class ModelFunctionPromise extends Promise {
10
10
  constructor(fullPromise) {
@@ -7,7 +7,7 @@ const GlobalFunctionLogging_js_1 = require("../../core/GlobalFunctionLogging.cjs
7
7
  const GlobalFunctionObservers_js_1 = require("../../core/GlobalFunctionObservers.cjs");
8
8
  const getFunctionCallLogger_js_1 = require("../../core/getFunctionCallLogger.cjs");
9
9
  const DurationMeasurement_js_1 = require("../../util/DurationMeasurement.cjs");
10
- const AbortError_js_1 = require("../../util/api/AbortError.cjs");
10
+ const AbortError_js_1 = require("../../core/api/AbortError.cjs");
11
11
  const runSafe_js_1 = require("../../util/runSafe.cjs");
12
12
  const extractTextDeltas_js_1 = require("./extractTextDeltas.cjs");
13
13
  class StreamTextPromise extends Promise {
@@ -4,7 +4,7 @@ import { getGlobalFunctionLogging } from "../../core/GlobalFunctionLogging.js";
4
4
  import { getGlobalFunctionObservers } from "../../core/GlobalFunctionObservers.js";
5
5
  import { getFunctionCallLogger } from "../../core/getFunctionCallLogger.js";
6
6
  import { startDurationMeasurement } from "../../util/DurationMeasurement.js";
7
- import { AbortError } from "../../util/api/AbortError.js";
7
+ import { AbortError } from "../../core/api/AbortError.js";
8
8
  import { runSafe } from "../../util/runSafe.js";
9
9
  import { extractTextDeltas } from "./extractTextDeltas.js";
10
10
  export class StreamTextPromise extends Promise {
@@ -14,13 +14,14 @@ 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
- __exportStar(require("./ApiConfiguration.cjs"), exports);
18
- __exportStar(require("./BasicApiConfiguration.cjs"), exports);
19
17
  __exportStar(require("./Model.cjs"), exports);
20
18
  __exportStar(require("./ModelCallEvent.cjs"), exports);
21
19
  __exportStar(require("./ModelFunctionOptions.cjs"), exports);
22
20
  __exportStar(require("./ModelInformation.cjs"), exports);
23
21
  __exportStar(require("./SuccessfulModelCall.cjs"), exports);
22
+ __exportStar(require("./describe-image/ImageDescriptionEvent.cjs"), exports);
23
+ __exportStar(require("./describe-image/ImageDescriptionModel.cjs"), exports);
24
+ __exportStar(require("./describe-image/describeImage.cjs"), exports);
24
25
  __exportStar(require("./embed-text/TextEmbeddingEvent.cjs"), exports);
25
26
  __exportStar(require("./embed-text/TextEmbeddingModel.cjs"), exports);
26
27
  __exportStar(require("./embed-text/embedText.cjs"), exports);
@@ -1,10 +1,11 @@
1
- export * from "./ApiConfiguration.js";
2
- export * from "./BasicApiConfiguration.js";
3
1
  export * from "./Model.js";
4
2
  export * from "./ModelCallEvent.js";
5
3
  export * from "./ModelFunctionOptions.js";
6
4
  export * from "./ModelInformation.js";
7
5
  export * from "./SuccessfulModelCall.js";
6
+ export * from "./describe-image/ImageDescriptionEvent.js";
7
+ export * from "./describe-image/ImageDescriptionModel.js";
8
+ export * from "./describe-image/describeImage.js";
8
9
  export * from "./embed-text/TextEmbeddingEvent.js";
9
10
  export * from "./embed-text/TextEmbeddingModel.js";
10
11
  export * from "./embed-text/embedText.js";
@@ -1,10 +1,11 @@
1
- export * from "./ApiConfiguration.js";
2
- export * from "./BasicApiConfiguration.js";
3
1
  export * from "./Model.js";
4
2
  export * from "./ModelCallEvent.js";
5
3
  export * from "./ModelFunctionOptions.js";
6
4
  export * from "./ModelInformation.js";
7
5
  export * from "./SuccessfulModelCall.js";
6
+ export * from "./describe-image/ImageDescriptionEvent.js";
7
+ export * from "./describe-image/ImageDescriptionModel.js";
8
+ export * from "./describe-image/describeImage.js";
8
9
  export * from "./embed-text/TextEmbeddingEvent.js";
9
10
  export * from "./embed-text/TextEmbeddingModel.js";
10
11
  export * from "./embed-text/embedText.js";
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Automatic1111ApiConfiguration = void 0;
4
- const BasicApiConfiguration_js_1 = require("../../model-function/BasicApiConfiguration.cjs");
5
- class Automatic1111ApiConfiguration extends BasicApiConfiguration_js_1.BasicApiConfiguration {
4
+ const BaseUrlApiConfiguration_js_1 = require("../../core/api/BaseUrlApiConfiguration.cjs");
5
+ class Automatic1111ApiConfiguration extends BaseUrlApiConfiguration_js_1.BaseUrlApiConfiguration {
6
6
  constructor({ baseUrl = "http://127.0.0.1:7860/sdapi/v1", retry, throttle, } = {}) {
7
7
  super({
8
8
  baseUrl,
9
+ headers: {},
9
10
  retry,
10
11
  throttle,
11
12
  });
@@ -1,7 +1,7 @@
1
- import { BasicApiConfiguration } from "../../model-function/BasicApiConfiguration.js";
2
- import { RetryFunction } from "../../util/api/RetryFunction.js";
3
- import { ThrottleFunction } from "../../util/api/ThrottleFunction.js";
4
- export declare class Automatic1111ApiConfiguration extends BasicApiConfiguration {
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 Automatic1111ApiConfiguration extends BaseUrlApiConfiguration {
5
5
  constructor({ baseUrl, retry, throttle, }?: {
6
6
  baseUrl?: string;
7
7
  retry?: RetryFunction;
@@ -1,8 +1,9 @@
1
- import { BasicApiConfiguration } from "../../model-function/BasicApiConfiguration.js";
2
- export class Automatic1111ApiConfiguration extends BasicApiConfiguration {
1
+ import { BaseUrlApiConfiguration } from "../../core/api/BaseUrlApiConfiguration.js";
2
+ export class Automatic1111ApiConfiguration extends BaseUrlApiConfiguration {
3
3
  constructor({ baseUrl = "http://127.0.0.1:7860/sdapi/v1", retry, throttle, } = {}) {
4
4
  super({
5
5
  baseUrl,
6
+ headers: {},
6
7
  retry,
7
8
  throttle,
8
9
  });
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.failedAutomatic1111CallResponseHandler = exports.Automatic1111Error = exports.automatic1111ErrorDataSchema = void 0;
7
7
  const zod_1 = require("zod");
8
8
  const secure_json_parse_1 = __importDefault(require("secure-json-parse"));
9
- const ApiCallError_js_1 = require("../../util/api/ApiCallError.cjs");
9
+ const ApiCallError_js_1 = require("../../core/api/ApiCallError.cjs");
10
10
  exports.automatic1111ErrorDataSchema = zod_1.z.object({
11
11
  error: zod_1.z.string(),
12
12
  detail: zod_1.z.string(),
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
- import { ResponseHandler } from "../../util/api/postToApi.js";
3
- import { ApiCallError } from "../../util/api/ApiCallError.js";
2
+ import { ResponseHandler } from "../../core/api/postToApi.js";
3
+ import { ApiCallError } from "../../core/api/ApiCallError.js";
4
4
  export declare const automatic1111ErrorDataSchema: z.ZodObject<{
5
5
  error: z.ZodString;
6
6
  detail: z.ZodString;
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import SecureJSON from "secure-json-parse";
3
- import { ApiCallError } from "../../util/api/ApiCallError.js";
3
+ import { ApiCallError } from "../../core/api/ApiCallError.js";
4
4
  export const automatic1111ErrorDataSchema = z.object({
5
5
  error: z.string(),
6
6
  detail: z.string(),
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Automatic1111ImageGenerationModel = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
6
- const callWithRetryAndThrottle_js_1 = require("../../util/api/callWithRetryAndThrottle.cjs");
7
- const postToApi_js_1 = require("../../util/api/postToApi.cjs");
6
+ const callWithRetryAndThrottle_js_1 = require("../../core/api/callWithRetryAndThrottle.cjs");
7
+ const postToApi_js_1 = require("../../core/api/postToApi.cjs");
8
8
  const Automatic1111ApiConfiguration_js_1 = require("./Automatic1111ApiConfiguration.cjs");
9
9
  const Automatic1111Error_js_1 = require("./Automatic1111Error.cjs");
10
10
  /**
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { AbstractModel } from "../../model-function/AbstractModel.js";
3
- import { ApiConfiguration } from "../../model-function/ApiConfiguration.js";
3
+ import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
4
4
  import { ModelFunctionOptions } from "../../model-function/ModelFunctionOptions.js";
5
5
  import { ImageGenerationModel, ImageGenerationModelSettings } from "../../model-function/generate-image/ImageGenerationModel.js";
6
6
  /**