@workglow/ai 0.2.30 → 0.2.32

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 (38) hide show
  1. package/README.md +21 -21
  2. package/dist/browser.js +39 -22
  3. package/dist/browser.js.map +5 -5
  4. package/dist/bun.js +39 -22
  5. package/dist/bun.js.map +5 -5
  6. package/dist/model/ModelRegistry.d.ts +14 -6
  7. package/dist/model/ModelRegistry.d.ts.map +1 -1
  8. package/dist/node.js +39 -22
  9. package/dist/node.js.map +5 -5
  10. package/dist/provider/AiProviderRegistry.d.ts +21 -3
  11. package/dist/provider/AiProviderRegistry.d.ts.map +1 -1
  12. package/dist/provider-utils/BaseCloudProvider.d.ts +46 -0
  13. package/dist/provider-utils/BaseCloudProvider.d.ts.map +1 -0
  14. package/dist/provider-utils/CloudProviderClient.d.ts +40 -0
  15. package/dist/provider-utils/CloudProviderClient.d.ts.map +1 -0
  16. package/dist/provider-utils/HfModelSearch.d.ts +33 -0
  17. package/dist/provider-utils/HfModelSearch.d.ts.map +1 -0
  18. package/dist/provider-utils/OpenAIShapedChat.d.ts +71 -0
  19. package/dist/provider-utils/OpenAIShapedChat.d.ts.map +1 -0
  20. package/dist/provider-utils/PipelineTaskMapping.d.ts +12 -0
  21. package/dist/provider-utils/PipelineTaskMapping.d.ts.map +1 -0
  22. package/dist/provider-utils/ToolCallParsers.d.ts +252 -0
  23. package/dist/provider-utils/ToolCallParsers.d.ts.map +1 -0
  24. package/dist/provider-utils/imageOutputHelpers.d.ts +60 -0
  25. package/dist/provider-utils/imageOutputHelpers.d.ts.map +1 -0
  26. package/dist/provider-utils/modelSearchQuery.d.ts +23 -0
  27. package/dist/provider-utils/modelSearchQuery.d.ts.map +1 -0
  28. package/dist/provider-utils/registerProvider.d.ts +43 -0
  29. package/dist/provider-utils/registerProvider.d.ts.map +1 -0
  30. package/dist/provider-utils.d.ts +23 -0
  31. package/dist/provider-utils.d.ts.map +1 -0
  32. package/dist/provider-utils.js +1247 -0
  33. package/dist/provider-utils.js.map +19 -0
  34. package/dist/task/VectorSimilarityTask.d.ts +1 -1
  35. package/dist/task/VectorSimilarityTask.d.ts.map +1 -1
  36. package/dist/worker.js +17 -8
  37. package/dist/worker.js.map +3 -3
  38. package/package.json +20 -14
package/README.md CHANGED
@@ -22,7 +22,7 @@ bun add @workglow/ai
22
22
 
23
23
  ## Quick Start
24
24
 
25
- Here's a complete example of setting up and using the AI package with the Hugging Face Transformers ONNX provider from `@workglow/ai-provider`:
25
+ Here's a complete example of setting up and using the AI package with the Hugging Face Transformers ONNX provider from `@workglow/ai`:
26
26
 
27
27
  ```typescript
28
28
  import {
@@ -41,8 +41,8 @@ import {
41
41
  JobQueueClient,
42
42
  JobQueueServer,
43
43
  } from "@workglow/job-queue";
44
- import { HF_TRANSFORMERS_ONNX } from "@workglow/ai-provider/hf-transformers";
45
- import { registerHuggingFaceTransformersInline } from "@workglow/ai-provider/hf-transformers/runtime";
44
+ import { HF_TRANSFORMERS_ONNX } from "@workglow/huggingface-transformers/ai";
45
+ import { registerHuggingFaceTransformersInline } from "@workglow/huggingface-transformers/ai-runtime";
46
46
 
47
47
  // 1. Set up a model repository
48
48
  const modelRepo = new InMemoryModelRepository();
@@ -111,7 +111,7 @@ Generates text based on prompts using language models.
111
111
 
112
112
  ```typescript
113
113
  import { TextGenerationTask } from "@workglow/ai";
114
- import { HF_TRANSFORMERS_ONNX } from "@workglow/ai-provider/hf-transformers";
114
+ import { HF_TRANSFORMERS_ONNX } from "@workglow/huggingface-transformers/ai";
115
115
 
116
116
  const gpt2ModelConfig = {
117
117
  provider: HF_TRANSFORMERS_ONNX,
@@ -137,7 +137,7 @@ Generates vector embeddings for text using embedding models.
137
137
 
138
138
  ```typescript
139
139
  import { TextEmbeddingTask } from "@workglow/ai";
140
- import { HF_TRANSFORMERS_ONNX } from "@workglow/ai-provider/hf-transformers";
140
+ import { HF_TRANSFORMERS_ONNX } from "@workglow/huggingface-transformers/ai";
141
141
 
142
142
  const embeddingModelConfig = {
143
143
  provider: HF_TRANSFORMERS_ONNX,
@@ -182,7 +182,7 @@ Generates summaries of longer text content.
182
182
 
183
183
  ```typescript
184
184
  import { TextSummaryTask } from "@workglow/ai";
185
- import { HF_TRANSFORMERS_ONNX } from "@workglow/ai-provider/hf-transformers";
185
+ import { HF_TRANSFORMERS_ONNX } from "@workglow/huggingface-transformers/ai";
186
186
 
187
187
  const summarizationModelConfig = {
188
188
  provider: HF_TRANSFORMERS_ONNX,
@@ -209,7 +209,7 @@ Rewrites text in different styles or tones.
209
209
 
210
210
  ```typescript
211
211
  import { TextRewriterTask } from "@workglow/ai";
212
- import { HF_TRANSFORMERS_ONNX } from "@workglow/ai-provider/hf-transformers";
212
+ import { HF_TRANSFORMERS_ONNX } from "@workglow/huggingface-transformers/ai";
213
213
 
214
214
  const laMiniModelConfig = {
215
215
  provider: HF_TRANSFORMERS_ONNX,
@@ -236,7 +236,7 @@ Answers questions based on provided context.
236
236
 
237
237
  ```typescript
238
238
  import { TextQuestionAnswerTask } from "@workglow/ai";
239
- import { HF_TRANSFORMERS_ONNX } from "@workglow/ai-provider/hf-transformers";
239
+ import { HF_TRANSFORMERS_ONNX } from "@workglow/huggingface-transformers/ai";
240
240
 
241
241
  const squadModelConfig = {
242
242
  provider: HF_TRANSFORMERS_ONNX,
@@ -276,7 +276,7 @@ Computes similarity between texts or embeddings.
276
276
 
277
277
  ```typescript
278
278
  import { VectorSimilarityTask } from "@workglow/ai";
279
- import { HF_TRANSFORMERS_ONNX } from "@workglow/ai-provider/hf-transformers";
279
+ import { HF_TRANSFORMERS_ONNX } from "@workglow/huggingface-transformers/ai";
280
280
 
281
281
  const gteSmallConfig = {
282
282
  provider: HF_TRANSFORMERS_ONNX,
@@ -306,7 +306,7 @@ Downloads and prepares AI models for use.
306
306
 
307
307
  ```typescript
308
308
  import { DownloadModelTask } from "@workglow/ai";
309
- import { HF_TRANSFORMERS_ONNX } from "@workglow/ai-provider/hf-transformers";
309
+ import { HF_TRANSFORMERS_ONNX } from "@workglow/huggingface-transformers/ai";
310
310
 
311
311
  const task = new DownloadModelTask({
312
312
  model: {
@@ -380,7 +380,7 @@ setGlobalModelRepository(modelRepo);
380
380
 
381
381
  ```typescript
382
382
  import { getGlobalModelRepository } from "@workglow/ai";
383
- import { HF_TRANSFORMERS_ONNX } from "@workglow/ai-provider/hf-transformers";
383
+ import { HF_TRANSFORMERS_ONNX } from "@workglow/huggingface-transformers/ai";
384
384
 
385
385
  const modelRepo = getGlobalModelRepository();
386
386
 
@@ -417,7 +417,7 @@ AI providers handle the actual execution of AI tasks. You need to register provi
417
417
  ### Basic Provider Registration
418
418
 
419
419
  ```typescript
420
- import { registerHuggingFaceTransformersInline } from "@workglow/ai-provider/hf-transformers/runtime";
420
+ import { registerHuggingFaceTransformersInline } from "@workglow/huggingface-transformers/ai-runtime";
421
421
 
422
422
  // Inline: run functions registered on the current thread (tasks wired inside the provider)
423
423
  await registerHuggingFaceTransformersInline();
@@ -428,12 +428,12 @@ await registerHuggingFaceTransformersInline();
428
428
  For compute-intensive tasks that should run in workers:
429
429
 
430
430
  ```typescript
431
- import { registerHuggingFaceTransformers } from "@workglow/ai-provider/hf-transformers";
431
+ import { registerHuggingFaceTransformers } from "@workglow/huggingface-transformers/ai";
432
432
 
433
433
  await registerHuggingFaceTransformers({
434
434
  worker: () => new Worker(new URL("./worker_hft.ts", import.meta.url), { type: "module" }),
435
435
  });
436
- // Worker file must call registerHuggingFaceTransformersWorker() from @workglow/ai-provider/hf-transformers/runtime
436
+ // Worker file must call registerHuggingFaceTransformersWorker() from @workglow/huggingface-transformers/ai-runtime
437
437
  ```
438
438
 
439
439
  ### Job Queue Setup
@@ -449,7 +449,7 @@ import {
449
449
  JobQueueServer,
450
450
  } from "@workglow/job-queue";
451
451
  import { AiJob, AiJobInput } from "@workglow/ai";
452
- import { HF_TRANSFORMERS_ONNX } from "@workglow/ai-provider/hf-transformers";
452
+ import { HF_TRANSFORMERS_ONNX } from "@workglow/huggingface-transformers/ai";
453
453
 
454
454
  const queueName = HF_TRANSFORMERS_ONNX;
455
455
  const storage = new InMemoryQueueStorage<AiJobInput<TaskInput>, TaskOutput>(queueName);
@@ -476,7 +476,7 @@ AI tasks integrate seamlessly with Workglow workflows:
476
476
 
477
477
  ```typescript
478
478
  import { Workflow } from "@workglow/task-graph";
479
- import { HF_TRANSFORMERS_ONNX } from "@workglow/ai-provider/hf-transformers";
479
+ import { HF_TRANSFORMERS_ONNX } from "@workglow/huggingface-transformers/ai";
480
480
 
481
481
  const gpt2ModelConfig = {
482
482
  provider: HF_TRANSFORMERS_ONNX,
@@ -555,7 +555,7 @@ The AI package provides a comprehensive set of tasks for building RAG pipelines.
555
555
  ```typescript
556
556
  import { Workflow } from "@workglow/task-graph";
557
557
  import { createKnowledgeBase } from "@workglow/knowledge-base";
558
- import { HF_TRANSFORMERS_ONNX } from "@workglow/ai-provider/hf-transformers";
558
+ import { HF_TRANSFORMERS_ONNX } from "@workglow/huggingface-transformers/ai";
559
559
 
560
560
  // 1. Set up a model repository
561
561
  const modelRepo = new InMemoryModelRepository();
@@ -713,7 +713,7 @@ AI tasks accept model inputs as either string identifiers or direct `ModelConfig
713
713
 
714
714
  ```typescript
715
715
  import { TextGenerationTask } from "@workglow/ai";
716
- import { HF_TRANSFORMERS_ONNX } from "@workglow/ai-provider/hf-transformers";
716
+ import { HF_TRANSFORMERS_ONNX } from "@workglow/huggingface-transformers/ai";
717
717
 
718
718
  const gpt2ModelConfig = {
719
719
  provider: HF_TRANSFORMERS_ONNX,
@@ -752,7 +752,7 @@ Tasks automatically validate that specified models exist and are compatible:
752
752
 
753
753
  ```typescript
754
754
  import { TextGenerationTask } from "@workglow/ai";
755
- import { HF_TRANSFORMERS_ONNX } from "@workglow/ai-provider/hf-transformers";
755
+ import { HF_TRANSFORMERS_ONNX } from "@workglow/huggingface-transformers/ai";
756
756
 
757
757
  const gpt2ModelConfig = {
758
758
  provider: HF_TRANSFORMERS_ONNX,
@@ -778,7 +778,7 @@ Monitor AI task progress:
778
778
 
779
779
  ```typescript
780
780
  import { TextGenerationTask } from "@workglow/ai";
781
- import { HF_TRANSFORMERS_ONNX } from "@workglow/ai-provider/hf-transformers";
781
+ import { HF_TRANSFORMERS_ONNX } from "@workglow/huggingface-transformers/ai";
782
782
 
783
783
  const gpt2ModelConfig = {
784
784
  provider: HF_TRANSFORMERS_ONNX,
@@ -807,7 +807,7 @@ All AI tasks support cancellation via AbortSignal:
807
807
 
808
808
  ```typescript
809
809
  import { TextGenerationTask } from "@workglow/ai";
810
- import { HF_TRANSFORMERS_ONNX } from "@workglow/ai-provider/hf-transformers";
810
+ import { HF_TRANSFORMERS_ONNX } from "@workglow/huggingface-transformers/ai";
811
811
 
812
812
  const gpt2ModelConfig = {
813
813
  provider: HF_TRANSFORMERS_ONNX,
package/dist/browser.js CHANGED
@@ -10,7 +10,7 @@ import {
10
10
  import { getLogger } from "@workglow/util/worker";
11
11
 
12
12
  // src/provider/AiProviderRegistry.ts
13
- import { globalServiceRegistry, WORKER_MANAGER } from "@workglow/util/worker";
13
+ import { createServiceToken, globalServiceRegistry, WORKER_MANAGER } from "@workglow/util/worker";
14
14
  class AiProviderRegistry {
15
15
  runFnRegistry = new Map;
16
16
  streamFnRegistry = new Map;
@@ -143,13 +143,20 @@ class AiProviderRegistry {
143
143
  return runFn;
144
144
  }
145
145
  }
146
- var providerRegistry = new AiProviderRegistry;
147
- function getAiProviderRegistry() {
148
- return providerRegistry;
146
+ var AI_PROVIDER_REGISTRY = createServiceToken("ai.provider.registry");
147
+ function getAiProviderRegistry(registry = globalServiceRegistry) {
148
+ if (!registry.has(AI_PROVIDER_REGISTRY)) {
149
+ registerAiProviderDefaults(registry);
150
+ }
151
+ return registry.get(AI_PROVIDER_REGISTRY);
152
+ }
153
+ function setAiProviderRegistry(pr, registry = globalServiceRegistry) {
154
+ registry.registerInstance(AI_PROVIDER_REGISTRY, pr);
149
155
  }
150
- function setAiProviderRegistry(pr) {
151
- providerRegistry = pr;
156
+ function registerAiProviderDefaults(registry = globalServiceRegistry) {
157
+ registry.registerIfAbsent(AI_PROVIDER_REGISTRY, () => new AiProviderRegistry, true);
152
158
  }
159
+ registerAiProviderDefaults();
153
160
 
154
161
  // src/errors/ImageGenerationErrors.ts
155
162
  class ProviderUnsupportedFeatureError extends Error {
@@ -451,7 +458,7 @@ class QueuedExecutionStrategy {
451
458
  throw new TaskConfigurationError(`Queue "${this.queueName}" is not registered and autoCreate is disabled. ` + `Register the queue before executing tasks with this provider.`);
452
459
  }
453
460
  const storage = new InMemoryQueueStorage(this.queueName);
454
- await storage.setupDatabase();
461
+ await storage.migrate();
455
462
  this.limiter = new ConcurrencyLimiter(this.concurrency);
456
463
  const server = new JobQueueServer(AiJob, {
457
464
  storage,
@@ -701,41 +708,48 @@ class InMemoryModelRepository extends ModelRepository {
701
708
 
702
709
  // src/model/ModelRegistry.ts
703
710
  import {
704
- createServiceToken,
711
+ createServiceToken as createServiceToken2,
705
712
  globalServiceRegistry as globalServiceRegistry2,
706
713
  registerInputCompactor,
707
714
  registerInputResolver
708
715
  } from "@workglow/util";
709
- var MODEL_REPOSITORY = createServiceToken("model.repository");
710
- globalServiceRegistry2.registerIfAbsent(MODEL_REPOSITORY, () => new InMemoryModelRepository, true);
711
- function getGlobalModelRepository() {
712
- return globalServiceRegistry2.get(MODEL_REPOSITORY);
716
+ var MODEL_REPOSITORY = createServiceToken2("model.repository");
717
+ function getGlobalModelRepository(registry = globalServiceRegistry2) {
718
+ if (!registry.has(MODEL_REPOSITORY)) {
719
+ registerModelDefaults(registry);
720
+ }
721
+ return registry.get(MODEL_REPOSITORY);
713
722
  }
714
- function setGlobalModelRepository(repository) {
715
- globalServiceRegistry2.registerInstance(MODEL_REPOSITORY, repository);
723
+ function setGlobalModelRepository(repository, registry = globalServiceRegistry2) {
724
+ registry.registerInstance(MODEL_REPOSITORY, repository);
716
725
  }
717
- async function resolveModelFromRegistry(id, format, registry) {
718
- const modelRepo = registry.has(MODEL_REPOSITORY) ? registry.get(MODEL_REPOSITORY) : getGlobalModelRepository();
726
+ async function resolveModelFromRegistry(id, _format, registry) {
727
+ const modelRepo = getGlobalModelRepository(registry);
719
728
  const model = await modelRepo.findByName(id);
720
729
  if (!model) {
721
730
  throw new Error(`Model "${id}" not found in repository`);
722
731
  }
723
732
  return model;
724
733
  }
725
- registerInputResolver("model", resolveModelFromRegistry);
726
- registerInputCompactor("model", async (value, _format, registry) => {
734
+ async function compactModel(value, _format, registry) {
727
735
  if (typeof value === "object" && value !== null && "model_id" in value) {
728
736
  const id = value.model_id;
729
737
  if (typeof id !== "string")
730
738
  return;
731
- const modelRepo = registry.has(MODEL_REPOSITORY) ? registry.get(MODEL_REPOSITORY) : getGlobalModelRepository();
739
+ const modelRepo = getGlobalModelRepository(registry);
732
740
  const model = await modelRepo.findByName(id);
733
741
  if (!model)
734
742
  return;
735
743
  return id;
736
744
  }
737
745
  return;
738
- });
746
+ }
747
+ function registerModelDefaults(registry = globalServiceRegistry2) {
748
+ registry.registerIfAbsent(MODEL_REPOSITORY, () => new InMemoryModelRepository, true);
749
+ registerInputResolver("model", resolveModelFromRegistry, registry);
750
+ registerInputCompactor("model", compactModel, registry);
751
+ }
752
+ registerModelDefaults();
739
753
 
740
754
  // src/provider/AiProvider.ts
741
755
  import { globalServiceRegistry as globalServiceRegistry3, WORKER_MANAGER as WORKER_MANAGER2 } from "@workglow/util/worker";
@@ -7270,7 +7284,9 @@ export {
7270
7284
  setAiProviderRegistry,
7271
7285
  resolveAiProviderGpuQueueConcurrency,
7272
7286
  reranker,
7287
+ registerModelDefaults,
7273
7288
  registerAiTasks,
7289
+ registerAiProviderDefaults,
7274
7290
  queryExpander,
7275
7291
  poseLandmarker,
7276
7292
  objectDetection,
@@ -7444,7 +7460,8 @@ export {
7444
7460
  AiImageOutputTask,
7445
7461
  AiChatTask,
7446
7462
  AiChatOutputSchema,
7447
- AiChatInputSchema
7463
+ AiChatInputSchema,
7464
+ AI_PROVIDER_REGISTRY
7448
7465
  };
7449
7466
 
7450
- //# debugId=1FAA7D33B0300A0064756E2164756E21
7467
+ //# debugId=813F2056B1AE9B1E64756E2164756E21