ai-functions 2.1.3 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +55 -1
- package/README.md +38 -0
- package/dist/ai-promise.d.ts +3 -3
- package/dist/ai-promise.d.ts.map +1 -1
- package/dist/ai-promise.js +135 -64
- package/dist/ai-promise.js.map +1 -1
- package/dist/ai-schemas.d.ts +56 -0
- package/dist/ai-schemas.d.ts.map +1 -0
- package/dist/ai-schemas.js +53 -0
- package/dist/ai-schemas.js.map +1 -0
- package/dist/ai.d.ts +16 -242
- package/dist/ai.d.ts.map +1 -1
- package/dist/ai.js +51 -858
- package/dist/ai.js.map +1 -1
- package/dist/batch/anthropic.d.ts +6 -4
- package/dist/batch/anthropic.d.ts.map +1 -1
- package/dist/batch/anthropic.js +83 -145
- package/dist/batch/anthropic.js.map +1 -1
- package/dist/batch/bedrock.d.ts +8 -30
- package/dist/batch/bedrock.d.ts.map +1 -1
- package/dist/batch/bedrock.js +155 -338
- package/dist/batch/bedrock.js.map +1 -1
- package/dist/batch/cloudflare.d.ts +8 -20
- package/dist/batch/cloudflare.d.ts.map +1 -1
- package/dist/batch/cloudflare.js +68 -189
- package/dist/batch/cloudflare.js.map +1 -1
- package/dist/batch/google.d.ts +6 -20
- package/dist/batch/google.d.ts.map +1 -1
- package/dist/batch/google.js +70 -238
- package/dist/batch/google.js.map +1 -1
- package/dist/batch/index.d.ts +4 -1
- package/dist/batch/index.d.ts.map +1 -1
- package/dist/batch/index.js +4 -1
- package/dist/batch/index.js.map +1 -1
- package/dist/batch/memory.d.ts +1 -1
- package/dist/batch/memory.d.ts.map +1 -1
- package/dist/batch/memory.js +14 -10
- package/dist/batch/memory.js.map +1 -1
- package/dist/batch/openai.d.ts +11 -14
- package/dist/batch/openai.d.ts.map +1 -1
- package/dist/batch/openai.js +52 -156
- package/dist/batch/openai.js.map +1 -1
- package/dist/batch/provider.d.ts +111 -0
- package/dist/batch/provider.d.ts.map +1 -0
- package/dist/batch/provider.js +233 -0
- package/dist/batch/provider.js.map +1 -0
- package/dist/batch-map.d.ts.map +1 -1
- package/dist/batch-map.js +23 -17
- package/dist/batch-map.js.map +1 -1
- package/dist/batch-queue.d.ts +65 -0
- package/dist/batch-queue.d.ts.map +1 -1
- package/dist/batch-queue.js +169 -14
- package/dist/batch-queue.js.map +1 -1
- package/dist/budget.d.ts.map +1 -1
- package/dist/budget.js +27 -14
- package/dist/budget.js.map +1 -1
- package/dist/cache.d.ts +23 -0
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +36 -15
- package/dist/cache.js.map +1 -1
- package/dist/context.d.ts +26 -8
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +64 -62
- package/dist/context.js.map +1 -1
- package/dist/digital-objects-registry.d.ts +229 -0
- package/dist/digital-objects-registry.d.ts.map +1 -0
- package/dist/digital-objects-registry.js +617 -0
- package/dist/digital-objects-registry.js.map +1 -0
- package/dist/embeddings.d.ts +2 -2
- package/dist/embeddings.d.ts.map +1 -1
- package/dist/errors.d.ts +22 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +35 -0
- package/dist/errors.js.map +1 -0
- package/dist/eval/runner.d.ts +8 -0
- package/dist/eval/runner.d.ts.map +1 -1
- package/dist/eval/runner.js +41 -35
- package/dist/eval/runner.js.map +1 -1
- package/dist/eval-log/in-memory.d.ts +34 -0
- package/dist/eval-log/in-memory.d.ts.map +1 -0
- package/dist/eval-log/in-memory.js +84 -0
- package/dist/eval-log/in-memory.js.map +1 -0
- package/dist/eval-log/index.d.ts +29 -0
- package/dist/eval-log/index.d.ts.map +1 -0
- package/dist/eval-log/index.js +39 -0
- package/dist/eval-log/index.js.map +1 -0
- package/dist/eval-log/types.d.ts +101 -0
- package/dist/eval-log/types.d.ts.map +1 -0
- package/dist/eval-log/types.js +16 -0
- package/dist/eval-log/types.js.map +1 -0
- package/dist/function-registry.d.ts +116 -0
- package/dist/function-registry.d.ts.map +1 -0
- package/dist/function-registry.js +546 -0
- package/dist/function-registry.js.map +1 -0
- package/dist/generate.d.ts +9 -3
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +18 -18
- package/dist/generate.js.map +1 -1
- package/dist/index.d.ts +18 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -18
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +118 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +187 -0
- package/dist/logger.js.map +1 -0
- package/dist/middleware/budget.d.ts +84 -0
- package/dist/middleware/budget.d.ts.map +1 -0
- package/dist/middleware/budget.js +110 -0
- package/dist/middleware/budget.js.map +1 -0
- package/dist/middleware/cache.d.ts +103 -0
- package/dist/middleware/cache.d.ts.map +1 -0
- package/dist/middleware/cache.js +228 -0
- package/dist/middleware/cache.js.map +1 -0
- package/dist/middleware/embed-cache.d.ts +99 -0
- package/dist/middleware/embed-cache.d.ts.map +1 -0
- package/dist/middleware/embed-cache.js +128 -0
- package/dist/middleware/embed-cache.js.map +1 -0
- package/dist/middleware/index.d.ts +11 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +11 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/trace.d.ts +103 -0
- package/dist/middleware/trace.d.ts.map +1 -0
- package/dist/middleware/trace.js +176 -0
- package/dist/middleware/trace.js.map +1 -0
- package/dist/primitives.d.ts +120 -1
- package/dist/primitives.d.ts.map +1 -1
- package/dist/primitives.js +398 -26
- package/dist/primitives.js.map +1 -1
- package/dist/retry.d.ts +66 -1
- package/dist/retry.d.ts.map +1 -1
- package/dist/retry.js +115 -8
- package/dist/retry.js.map +1 -1
- package/dist/schema.js +2 -2
- package/dist/schema.js.map +1 -1
- package/dist/telemetry.d.ts +128 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +285 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/template.d.ts.map +1 -1
- package/dist/template.js +6 -1
- package/dist/template.js.map +1 -1
- package/dist/tool-orchestration.d.ts +66 -4
- package/dist/tool-orchestration.d.ts.map +1 -1
- package/dist/tool-orchestration.js +123 -23
- package/dist/tool-orchestration.js.map +1 -1
- package/dist/type-guards.d.ts +28 -0
- package/dist/type-guards.d.ts.map +1 -0
- package/dist/type-guards.js +29 -0
- package/dist/type-guards.js.map +1 -0
- package/dist/types.d.ts +135 -17
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +36 -1
- package/dist/types.js.map +1 -1
- package/dist/wrap-for-v3.d.ts +80 -0
- package/dist/wrap-for-v3.d.ts.map +1 -0
- package/dist/wrap-for-v3.js +89 -0
- package/dist/wrap-for-v3.js.map +1 -0
- package/examples/00-quickstart.ts +232 -0
- package/examples/01-rag-chatbot.ts +212 -0
- package/examples/02-multi-agent-research.ts +290 -0
- package/examples/03-email-classification.ts +379 -0
- package/examples/04-content-moderation.ts +400 -0
- package/examples/05-document-extraction.ts +455 -0
- package/examples/06-streaming-chat-nextjs.ts +437 -0
- package/examples/07-cloudflare-worker.ts +483 -0
- package/examples/08-batch-processing.ts +491 -0
- package/examples/09-budget-constrained.ts +527 -0
- package/examples/10-tool-orchestration.ts +565 -0
- package/examples/11-retry-resilience.ts +403 -0
- package/examples/12-caching-strategies.ts +422 -0
- package/examples/README.md +145 -0
- package/package.json +28 -25
- package/src/ai-promise.ts +226 -140
- package/src/ai-schemas.ts +122 -0
- package/src/ai.ts +69 -1176
- package/src/batch/anthropic.ts +96 -161
- package/src/batch/bedrock.ts +203 -454
- package/src/batch/cloudflare.ts +99 -282
- package/src/batch/google.ts +91 -297
- package/src/batch/index.ts +4 -1
- package/src/batch/memory.ts +15 -10
- package/src/batch/openai.ts +65 -193
- package/src/batch/provider.ts +336 -0
- package/src/batch-map.ts +29 -24
- package/src/batch-queue.ts +200 -11
- package/src/budget.ts +31 -18
- package/src/cache.ts +45 -17
- package/src/context.ts +106 -77
- package/src/digital-objects-registry.ts +750 -0
- package/src/errors.ts +37 -0
- package/src/eval/runner.ts +60 -36
- package/src/eval-log/in-memory.ts +90 -0
- package/src/eval-log/index.ts +46 -0
- package/src/eval-log/types.ts +110 -0
- package/src/function-registry.ts +671 -0
- package/src/generate.ts +33 -28
- package/src/index.ts +119 -21
- package/src/logger.ts +232 -0
- package/src/middleware/budget.ts +171 -0
- package/src/middleware/cache.ts +299 -0
- package/src/middleware/embed-cache.ts +195 -0
- package/src/middleware/index.ts +23 -0
- package/src/middleware/trace.ts +248 -0
- package/src/primitives.ts +589 -62
- package/src/retry.ts +144 -18
- package/src/schema.ts +8 -8
- package/src/telemetry.ts +403 -0
- package/src/template.ts +8 -4
- package/src/tool-orchestration.ts +213 -48
- package/src/type-guards.ts +31 -0
- package/src/types.ts +164 -25
- package/src/wrap-for-v3.ts +105 -0
- package/test/ai-promise.test.ts +1080 -0
- package/test/ai-proxy.test.ts +1 -1
- package/test/batch-autosubmit-errors.test.ts +49 -37
- package/test/batch-blog-posts.test.ts +87 -129
- package/test/core-functions.test.ts +183 -579
- package/test/decide.test.ts +154 -322
- package/test/define.test.ts +211 -8
- package/test/digital-objects-registry.test.ts +760 -0
- package/test/embedding-cache-middleware.test.ts +140 -0
- package/test/generate-core.test.ts +140 -229
- package/test/implicit-batch.test.ts +22 -65
- package/test/retry-policy-integration.test.ts +117 -0
- package/test/schema.test.ts +55 -19
- package/test/template.test.ts +1164 -0
- package/test/tool-orchestration.test.ts +270 -0
- package/test/wrap-for-v3.test.ts +612 -0
- package/vitest.config.js +6 -0
- package/vitest.config.ts +20 -0
- package/LICENSE +0 -21
- package/dist/rpc/auth.d.ts +0 -69
- package/dist/rpc/auth.d.ts.map +0 -1
- package/dist/rpc/auth.js +0 -136
- package/dist/rpc/auth.js.map +0 -1
- package/dist/rpc/client.d.ts +0 -62
- package/dist/rpc/client.d.ts.map +0 -1
- package/dist/rpc/client.js +0 -103
- package/dist/rpc/client.js.map +0 -1
- package/dist/rpc/deferred.d.ts +0 -60
- package/dist/rpc/deferred.d.ts.map +0 -1
- package/dist/rpc/deferred.js +0 -96
- package/dist/rpc/deferred.js.map +0 -1
- package/dist/rpc/index.d.ts +0 -22
- package/dist/rpc/index.d.ts.map +0 -1
- package/dist/rpc/index.js +0 -38
- package/dist/rpc/index.js.map +0 -1
- package/dist/rpc/local.d.ts +0 -42
- package/dist/rpc/local.d.ts.map +0 -1
- package/dist/rpc/local.js +0 -50
- package/dist/rpc/local.js.map +0 -1
- package/dist/rpc/server.d.ts +0 -165
- package/dist/rpc/server.d.ts.map +0 -1
- package/dist/rpc/server.js +0 -405
- package/dist/rpc/server.js.map +0 -1
- package/dist/rpc/session.d.ts +0 -32
- package/dist/rpc/session.d.ts.map +0 -1
- package/dist/rpc/session.js +0 -43
- package/dist/rpc/session.js.map +0 -1
- package/dist/rpc/transport.d.ts +0 -306
- package/dist/rpc/transport.d.ts.map +0 -1
- package/dist/rpc/transport.js +0 -731
- package/dist/rpc/transport.js.map +0 -1
- package/src/batch/anthropic.js +0 -256
- package/src/batch/bedrock.js +0 -584
- package/src/batch/cloudflare.js +0 -287
- package/src/batch/google.js +0 -359
- package/src/batch/index.js +0 -30
- package/src/batch/memory.js +0 -187
- package/src/batch/openai.js +0 -402
- package/src/eval/index.js +0 -7
- package/src/eval/models.js +0 -119
- package/src/eval/runner.js +0 -147
- package/test/schema.test.js +0 -96
package/dist/batch/google.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Google GenAI (Gemini) Adapter
|
|
3
3
|
*
|
|
4
|
-
* Implements processing using Google's Generative AI API (Gemini models).
|
|
5
4
|
* Google doesn't have a native batch API like OpenAI/Anthropic, so this
|
|
6
|
-
*
|
|
5
|
+
* adapter fakes batch processing via concurrent direct calls and tracks the
|
|
6
|
+
* job state locally (see `LocalJobStore` in `./provider.js`).
|
|
7
|
+
*
|
|
8
|
+
* For true async batch processing, consider Google Cloud Batch with Vertex AI.
|
|
7
9
|
*
|
|
8
10
|
* @see https://ai.google.dev/gemini-api/docs
|
|
9
11
|
*
|
|
10
12
|
* @packageDocumentation
|
|
11
13
|
*/
|
|
12
|
-
import { registerBatchAdapter, registerFlexAdapter, } from '
|
|
14
|
+
import { LocalJobStore, processConcurrently, registerBatchAdapter, registerFlexAdapter, tryParseJson, } from './provider.js';
|
|
13
15
|
// ============================================================================
|
|
14
|
-
// Google GenAI
|
|
16
|
+
// Google GenAI client configuration
|
|
15
17
|
// ============================================================================
|
|
16
18
|
let googleApiKey;
|
|
17
19
|
let googleBaseUrl = 'https://generativelanguage.googleapis.com/v1beta';
|
|
18
20
|
// AI Gateway configuration (optional - for routing through Cloudflare AI Gateway)
|
|
19
21
|
let gatewayUrl;
|
|
20
22
|
let gatewayToken;
|
|
21
|
-
/**
|
|
22
|
-
* Configure the Google GenAI client
|
|
23
|
-
*/
|
|
23
|
+
/** Configure the Google GenAI client. */
|
|
24
24
|
export function configureGoogleGenAI(options) {
|
|
25
25
|
if (options.apiKey)
|
|
26
26
|
googleApiKey = options.apiKey;
|
|
@@ -32,10 +32,8 @@ export function configureGoogleGenAI(options) {
|
|
|
32
32
|
gatewayToken = options.gatewayToken;
|
|
33
33
|
}
|
|
34
34
|
function getConfig() {
|
|
35
|
-
|
|
36
|
-
const
|
|
37
|
-
const gwToken = gatewayToken || process.env.AI_GATEWAY_TOKEN;
|
|
38
|
-
// If using gateway, we don't need a direct API key
|
|
35
|
+
const gwUrl = gatewayUrl || process.env['AI_GATEWAY_URL'];
|
|
36
|
+
const gwToken = gatewayToken || process.env['AI_GATEWAY_TOKEN'];
|
|
39
37
|
if (gwUrl && gwToken) {
|
|
40
38
|
return {
|
|
41
39
|
apiKey: '',
|
|
@@ -44,315 +42,149 @@ function getConfig() {
|
|
|
44
42
|
gatewayToken: gwToken,
|
|
45
43
|
};
|
|
46
44
|
}
|
|
47
|
-
const key = googleApiKey || process.env
|
|
45
|
+
const key = googleApiKey || process.env['GOOGLE_API_KEY'] || process.env['GEMINI_API_KEY'];
|
|
48
46
|
if (!key) {
|
|
49
47
|
throw new Error('Google API key not configured. Set GOOGLE_API_KEY or GEMINI_API_KEY, or use AI_GATEWAY_URL and AI_GATEWAY_TOKEN');
|
|
50
48
|
}
|
|
51
|
-
return { apiKey: key, baseUrl: googleBaseUrl
|
|
49
|
+
return { apiKey: key, baseUrl: googleBaseUrl };
|
|
52
50
|
}
|
|
53
51
|
// ============================================================================
|
|
54
|
-
//
|
|
52
|
+
// Local job tracking
|
|
55
53
|
// ============================================================================
|
|
56
|
-
const
|
|
57
|
-
let jobCounter = 0;
|
|
54
|
+
const jobs = new LocalJobStore('google_batch');
|
|
58
55
|
// ============================================================================
|
|
59
|
-
// Google GenAI
|
|
56
|
+
// Google GenAI batch adapter (BatchProvider port)
|
|
60
57
|
// ============================================================================
|
|
61
|
-
/**
|
|
62
|
-
* Google GenAI batch adapter
|
|
63
|
-
*
|
|
64
|
-
* Note: Google doesn't have a native batch API like OpenAI/Anthropic.
|
|
65
|
-
* This adapter implements batch processing via concurrent requests.
|
|
66
|
-
* For true async batch processing, consider using Google Cloud Batch
|
|
67
|
-
* with Vertex AI.
|
|
68
|
-
*/
|
|
69
58
|
const googleAdapter = {
|
|
70
59
|
async submit(items, options) {
|
|
71
|
-
const jobId = `google_batch_${++jobCounter}_${Date.now()}`;
|
|
72
60
|
const model = options.model || 'gemini-2.0-flash';
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
61
|
+
const { id, state } = jobs.create(items, options);
|
|
62
|
+
// Drive the job state machine in the background; `waitForCompletion`
|
|
63
|
+
// will poll the in-memory state.
|
|
64
|
+
const completion = (async () => {
|
|
65
|
+
state.status = 'in_progress';
|
|
66
|
+
const results = await processConcurrently(items, (item) => processGoogleItem(item, model), {
|
|
67
|
+
concurrency: 10,
|
|
68
|
+
onWaveComplete: (partial) => {
|
|
69
|
+
state.results = partial;
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
state.results = results;
|
|
73
|
+
state.status = results.every((r) => r.status === 'completed') ? 'completed' : 'failed';
|
|
74
|
+
state.completedAt = new Date();
|
|
75
|
+
return results;
|
|
76
|
+
})();
|
|
83
77
|
const job = {
|
|
84
|
-
id
|
|
78
|
+
id,
|
|
85
79
|
provider: 'google',
|
|
86
80
|
status: 'pending',
|
|
87
81
|
totalItems: items.length,
|
|
88
82
|
completedItems: 0,
|
|
89
83
|
failedItems: 0,
|
|
90
|
-
createdAt:
|
|
91
|
-
webhookUrl: options.webhookUrl,
|
|
84
|
+
createdAt: state.createdAt,
|
|
85
|
+
...(options.webhookUrl !== undefined && { webhookUrl: options.webhookUrl }),
|
|
92
86
|
};
|
|
93
87
|
return { job, completion };
|
|
94
88
|
},
|
|
95
89
|
async getStatus(batchId) {
|
|
96
|
-
|
|
97
|
-
if (!job) {
|
|
98
|
-
throw new Error(`Batch not found: ${batchId}`);
|
|
99
|
-
}
|
|
100
|
-
const completedItems = job.results.filter((r) => r.status === 'completed').length;
|
|
101
|
-
const failedItems = job.results.filter((r) => r.status === 'failed').length;
|
|
102
|
-
return {
|
|
103
|
-
id: batchId,
|
|
104
|
-
provider: 'google',
|
|
105
|
-
status: job.status,
|
|
106
|
-
totalItems: job.items.length,
|
|
107
|
-
completedItems,
|
|
108
|
-
failedItems,
|
|
109
|
-
createdAt: job.createdAt,
|
|
110
|
-
completedAt: job.completedAt,
|
|
111
|
-
};
|
|
90
|
+
return jobs.snapshot(batchId, 'google');
|
|
112
91
|
},
|
|
113
92
|
async cancel(batchId) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
job.status = 'cancelled';
|
|
93
|
+
if (jobs.has(batchId)) {
|
|
94
|
+
jobs.get(batchId).status = 'cancelled';
|
|
117
95
|
}
|
|
118
96
|
},
|
|
119
97
|
async getResults(batchId) {
|
|
120
|
-
|
|
121
|
-
if (!job) {
|
|
122
|
-
throw new Error(`Batch not found: ${batchId}`);
|
|
123
|
-
}
|
|
124
|
-
return job.results;
|
|
98
|
+
return jobs.get(batchId).results;
|
|
125
99
|
},
|
|
126
100
|
async waitForCompletion(batchId, pollInterval = 1000) {
|
|
127
|
-
|
|
128
|
-
if (!job) {
|
|
129
|
-
throw new Error(`Batch not found: ${batchId}`);
|
|
130
|
-
}
|
|
131
|
-
while (job.status !== 'completed' && job.status !== 'failed' && job.status !== 'cancelled') {
|
|
132
|
-
await new Promise((resolve) => setTimeout(resolve, pollInterval));
|
|
133
|
-
}
|
|
134
|
-
return job.results;
|
|
101
|
+
return jobs.waitForCompletion(batchId, pollInterval);
|
|
135
102
|
},
|
|
136
103
|
};
|
|
137
104
|
// ============================================================================
|
|
138
|
-
// Google GenAI
|
|
105
|
+
// Google GenAI flex adapter (FlexAdapter port)
|
|
139
106
|
// ============================================================================
|
|
140
|
-
/**
|
|
141
|
-
* Google GenAI Flex Adapter
|
|
142
|
-
*
|
|
143
|
-
* Implements concurrent processing for medium-sized batches.
|
|
144
|
-
* Uses the Gemini API for fast turnaround.
|
|
145
|
-
*/
|
|
146
107
|
const googleFlexAdapter = {
|
|
147
108
|
async submitFlex(items, options) {
|
|
148
109
|
const model = options.model || 'gemini-2.0-flash';
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
for (let i = 0; i < items.length; i += CONCURRENCY) {
|
|
153
|
-
const batch = items.slice(i, i + CONCURRENCY);
|
|
154
|
-
const batchResults = await Promise.all(batch.map(async (item) => {
|
|
155
|
-
try {
|
|
156
|
-
return await processGoogleItem(item, model);
|
|
157
|
-
}
|
|
158
|
-
catch (error) {
|
|
159
|
-
return {
|
|
160
|
-
id: item.id,
|
|
161
|
-
customId: item.id,
|
|
162
|
-
status: 'failed',
|
|
163
|
-
error: error instanceof Error ? error.message : 'Unknown error',
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
}));
|
|
167
|
-
results.push(...batchResults);
|
|
168
|
-
}
|
|
169
|
-
return results;
|
|
110
|
+
return processConcurrently(items, (item) => processGoogleItem(item, model), {
|
|
111
|
+
concurrency: 10,
|
|
112
|
+
});
|
|
170
113
|
},
|
|
171
114
|
};
|
|
172
115
|
// ============================================================================
|
|
173
|
-
//
|
|
116
|
+
// Per-item processing
|
|
174
117
|
// ============================================================================
|
|
175
|
-
async function processGoogleRequestsConcurrently(jobId, items, model, options) {
|
|
176
|
-
const job = pendingJobs.get(jobId);
|
|
177
|
-
if (!job) {
|
|
178
|
-
throw new Error(`Job not found: ${jobId}`);
|
|
179
|
-
}
|
|
180
|
-
job.status = 'in_progress';
|
|
181
|
-
const CONCURRENCY = 10;
|
|
182
|
-
const results = [];
|
|
183
|
-
for (let i = 0; i < items.length; i += CONCURRENCY) {
|
|
184
|
-
const batch = items.slice(i, i + CONCURRENCY);
|
|
185
|
-
const batchResults = await Promise.all(batch.map(async (item) => {
|
|
186
|
-
try {
|
|
187
|
-
return await processGoogleItem(item, model);
|
|
188
|
-
}
|
|
189
|
-
catch (error) {
|
|
190
|
-
return {
|
|
191
|
-
id: item.id,
|
|
192
|
-
customId: item.id,
|
|
193
|
-
status: 'failed',
|
|
194
|
-
error: error instanceof Error ? error.message : 'Unknown error',
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
}));
|
|
198
|
-
results.push(...batchResults);
|
|
199
|
-
job.results = results;
|
|
200
|
-
}
|
|
201
|
-
job.status = results.every((r) => r.status === 'completed') ? 'completed' : 'failed';
|
|
202
|
-
job.completedAt = new Date();
|
|
203
|
-
return results;
|
|
204
|
-
}
|
|
205
118
|
async function processGoogleItem(item, model) {
|
|
206
119
|
const config = getConfig();
|
|
207
|
-
// Check if using AI Gateway
|
|
208
120
|
if (config.gatewayUrl && config.gatewayToken) {
|
|
209
121
|
return processGoogleItemViaGateway(item, config, model);
|
|
210
122
|
}
|
|
211
|
-
// Build the model name (add models/ prefix if not present)
|
|
212
123
|
const modelName = model.startsWith('models/') ? model : `models/${model}`;
|
|
213
124
|
const url = `${config.baseUrl}/${modelName}:generateContent?key=${config.apiKey}`;
|
|
214
|
-
// Build messages
|
|
215
|
-
const contents = [];
|
|
216
|
-
// Add system instruction as a user message if provided (Gemini handles this differently)
|
|
217
|
-
if (item.options?.system) {
|
|
218
|
-
contents.push({
|
|
219
|
-
role: 'user',
|
|
220
|
-
parts: [{ text: `System instruction: ${item.options.system}\n\nUser request: ${item.prompt}` }],
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
else {
|
|
224
|
-
contents.push({
|
|
225
|
-
role: 'user',
|
|
226
|
-
parts: [{ text: item.prompt }],
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
const body = {
|
|
230
|
-
contents,
|
|
231
|
-
generationConfig: {
|
|
232
|
-
maxOutputTokens: item.options?.maxTokens || 8192,
|
|
233
|
-
temperature: item.options?.temperature,
|
|
234
|
-
},
|
|
235
|
-
};
|
|
236
|
-
// Add JSON mode if schema is provided
|
|
237
|
-
if (item.schema) {
|
|
238
|
-
body.generationConfig = {
|
|
239
|
-
...body.generationConfig,
|
|
240
|
-
responseMimeType: 'application/json',
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
125
|
const response = await fetch(url, {
|
|
244
126
|
method: 'POST',
|
|
245
|
-
headers: {
|
|
246
|
-
|
|
247
|
-
},
|
|
248
|
-
body: JSON.stringify(body),
|
|
127
|
+
headers: { 'Content-Type': 'application/json' },
|
|
128
|
+
body: JSON.stringify(buildGeminiBody(item)),
|
|
249
129
|
});
|
|
250
130
|
if (!response.ok) {
|
|
251
131
|
const error = await response.text();
|
|
252
132
|
throw new Error(`Google GenAI API error: ${response.status} ${error}`);
|
|
253
133
|
}
|
|
254
|
-
|
|
255
|
-
// Extract content
|
|
256
|
-
const content = data.candidates?.[0]?.content?.parts?.[0]?.text;
|
|
257
|
-
let result = content;
|
|
258
|
-
// Try to parse JSON if schema was provided or content looks like JSON
|
|
259
|
-
if (content && (item.schema || content.trim().startsWith('{') || content.trim().startsWith('['))) {
|
|
260
|
-
try {
|
|
261
|
-
result = JSON.parse(content);
|
|
262
|
-
}
|
|
263
|
-
catch {
|
|
264
|
-
// Keep as string
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
return {
|
|
268
|
-
id: item.id,
|
|
269
|
-
customId: item.id,
|
|
270
|
-
status: 'completed',
|
|
271
|
-
result,
|
|
272
|
-
usage: data.usageMetadata
|
|
273
|
-
? {
|
|
274
|
-
promptTokens: data.usageMetadata.promptTokenCount,
|
|
275
|
-
completionTokens: data.usageMetadata.candidatesTokenCount,
|
|
276
|
-
totalTokens: data.usageMetadata.totalTokenCount,
|
|
277
|
-
}
|
|
278
|
-
: undefined,
|
|
279
|
-
};
|
|
134
|
+
return parseGeminiResponse(item, (await response.json()));
|
|
280
135
|
}
|
|
281
136
|
/**
|
|
282
|
-
* Process a Google GenAI item via Cloudflare AI Gateway
|
|
137
|
+
* Process a Google GenAI item via Cloudflare AI Gateway.
|
|
283
138
|
* Gateway URL format: {gateway_url}/google-ai-studio/v1beta/models/{model}:generateContent
|
|
284
139
|
*/
|
|
285
140
|
async function processGoogleItemViaGateway(item, config, model) {
|
|
286
|
-
// AI Gateway URL for Google AI Studio
|
|
287
|
-
// Format: {gateway_url}/google-ai-studio/v1beta/models/{model}:generateContent
|
|
288
141
|
const modelName = model.startsWith('models/') ? model.replace('models/', '') : model;
|
|
289
142
|
const url = `${config.gatewayUrl}/google-ai-studio/v1beta/models/${modelName}:generateContent`;
|
|
290
|
-
// Build messages
|
|
291
|
-
const contents = [];
|
|
292
|
-
if (item.options?.system) {
|
|
293
|
-
contents.push({
|
|
294
|
-
role: 'user',
|
|
295
|
-
parts: [{ text: `System instruction: ${item.options.system}\n\nUser request: ${item.prompt}` }],
|
|
296
|
-
});
|
|
297
|
-
}
|
|
298
|
-
else {
|
|
299
|
-
contents.push({
|
|
300
|
-
role: 'user',
|
|
301
|
-
parts: [{ text: item.prompt }],
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
|
-
const body = {
|
|
305
|
-
contents,
|
|
306
|
-
generationConfig: {
|
|
307
|
-
maxOutputTokens: item.options?.maxTokens || 8192,
|
|
308
|
-
temperature: item.options?.temperature,
|
|
309
|
-
},
|
|
310
|
-
};
|
|
311
|
-
if (item.schema) {
|
|
312
|
-
body.generationConfig = {
|
|
313
|
-
...body.generationConfig,
|
|
314
|
-
responseMimeType: 'application/json',
|
|
315
|
-
};
|
|
316
|
-
}
|
|
317
143
|
const response = await fetch(url, {
|
|
318
144
|
method: 'POST',
|
|
319
145
|
headers: {
|
|
320
146
|
'cf-aig-authorization': `Bearer ${config.gatewayToken}`,
|
|
321
147
|
'Content-Type': 'application/json',
|
|
322
148
|
},
|
|
323
|
-
body: JSON.stringify(
|
|
149
|
+
body: JSON.stringify(buildGeminiBody(item)),
|
|
324
150
|
});
|
|
325
151
|
if (!response.ok) {
|
|
326
152
|
const error = await response.text();
|
|
327
153
|
throw new Error(`Google GenAI via Gateway error: ${response.status} ${error}`);
|
|
328
154
|
}
|
|
329
|
-
|
|
155
|
+
return parseGeminiResponse(item, (await response.json()));
|
|
156
|
+
}
|
|
157
|
+
function buildGeminiBody(item) {
|
|
158
|
+
// Gemini handles system instructions as part of the user message.
|
|
159
|
+
const userText = item.options?.system
|
|
160
|
+
? `System instruction: ${item.options.system}\n\nUser request: ${item.prompt}`
|
|
161
|
+
: item.prompt;
|
|
162
|
+
const contents = [{ role: 'user', parts: [{ text: userText }] }];
|
|
163
|
+
const generationConfig = {
|
|
164
|
+
maxOutputTokens: item.options?.maxTokens || 8192,
|
|
165
|
+
...(item.options?.temperature !== undefined && { temperature: item.options.temperature }),
|
|
166
|
+
...(item.schema && { responseMimeType: 'application/json' }),
|
|
167
|
+
};
|
|
168
|
+
return { contents, generationConfig };
|
|
169
|
+
}
|
|
170
|
+
function parseGeminiResponse(item, data) {
|
|
330
171
|
const content = data.candidates?.[0]?.content?.parts?.[0]?.text;
|
|
331
|
-
let result = content;
|
|
332
|
-
if (content && (item.schema || content.trim().startsWith('{') || content.trim().startsWith('['))) {
|
|
333
|
-
try {
|
|
334
|
-
result = JSON.parse(content);
|
|
335
|
-
}
|
|
336
|
-
catch {
|
|
337
|
-
// Keep as string
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
172
|
return {
|
|
341
173
|
id: item.id,
|
|
342
174
|
customId: item.id,
|
|
343
175
|
status: 'completed',
|
|
344
|
-
result,
|
|
345
|
-
|
|
346
|
-
|
|
176
|
+
result: tryParseJson(content, !!item.schema),
|
|
177
|
+
...(data.usageMetadata && {
|
|
178
|
+
usage: {
|
|
347
179
|
promptTokens: data.usageMetadata.promptTokenCount,
|
|
348
180
|
completionTokens: data.usageMetadata.candidatesTokenCount,
|
|
349
181
|
totalTokens: data.usageMetadata.totalTokenCount,
|
|
350
|
-
}
|
|
351
|
-
|
|
182
|
+
},
|
|
183
|
+
}),
|
|
352
184
|
};
|
|
353
185
|
}
|
|
354
186
|
// ============================================================================
|
|
355
|
-
// Register
|
|
187
|
+
// Register adapters
|
|
356
188
|
// ============================================================================
|
|
357
189
|
registerBatchAdapter('google', googleAdapter);
|
|
358
190
|
registerFlexAdapter('google', googleFlexAdapter);
|
package/dist/batch/google.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/batch/google.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/batch/google.ts"],"names":[],"mappings":"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"}
|
package/dist/batch/index.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Batch Adapters Index
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* The `BatchProvider` port lives in `./provider.js`. Each adapter file is a
|
|
5
|
+
* small implementation of that port for one provider. Import a specific
|
|
6
|
+
* adapter to register it:
|
|
5
7
|
*
|
|
6
8
|
* @example
|
|
7
9
|
* ```ts
|
|
@@ -23,6 +25,7 @@
|
|
|
23
25
|
*
|
|
24
26
|
* @packageDocumentation
|
|
25
27
|
*/
|
|
28
|
+
export * from './provider.js';
|
|
26
29
|
export * from './openai.js';
|
|
27
30
|
export * from './anthropic.js';
|
|
28
31
|
export * from './cloudflare.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/batch/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/batch/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA"}
|
package/dist/batch/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Batch Adapters Index
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* The `BatchProvider` port lives in `./provider.js`. Each adapter file is a
|
|
5
|
+
* small implementation of that port for one provider. Import a specific
|
|
6
|
+
* adapter to register it:
|
|
5
7
|
*
|
|
6
8
|
* @example
|
|
7
9
|
* ```ts
|
|
@@ -23,6 +25,7 @@
|
|
|
23
25
|
*
|
|
24
26
|
* @packageDocumentation
|
|
25
27
|
*/
|
|
28
|
+
export * from './provider.js';
|
|
26
29
|
export * from './openai.js';
|
|
27
30
|
export * from './anthropic.js';
|
|
28
31
|
export * from './cloudflare.js';
|
package/dist/batch/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/batch/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/batch/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA"}
|
package/dist/batch/memory.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @packageDocumentation
|
|
8
8
|
*/
|
|
9
|
-
import { type BatchAdapter, type BatchItem, type BatchQueueOptions, type BatchResult } from '
|
|
9
|
+
import { type BatchAdapter, type BatchItem, type BatchQueueOptions, type BatchResult } from './provider.js';
|
|
10
10
|
interface MemoryBatch {
|
|
11
11
|
id: string;
|
|
12
12
|
items: BatchItem[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/batch/memory.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,SAAS,EAEd,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAEjB,MAAM,
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/batch/memory.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,SAAS,EAEd,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAEjB,MAAM,eAAe,CAAA;AAOtB,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,OAAO,EAAE,iBAAiB,CAAA;IAC1B,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,CAAA;IAC1D,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,SAAS,EAAE,IAAI,CAAA;IACf,WAAW,CAAC,EAAE,IAAI,CAAA;CACnB;AASD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,yCAAyC;IACzC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAID;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAE1E;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAErD;AAMD,QAAA,MAAM,aAAa,EAAE,YAuFpB,CAAA;AAyFD,OAAO,EAAE,aAAa,EAAE,CAAA"}
|
package/dist/batch/memory.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @packageDocumentation
|
|
8
8
|
*/
|
|
9
|
-
import { registerBatchAdapter, } from '
|
|
9
|
+
import { registerBatchAdapter, } from './provider.js';
|
|
10
10
|
import { generateObject, generateText } from '../generate.js';
|
|
11
11
|
// ============================================================================
|
|
12
12
|
// Storage
|
|
@@ -58,7 +58,7 @@ const memoryAdapter = {
|
|
|
58
58
|
completedItems: 0,
|
|
59
59
|
failedItems: 0,
|
|
60
60
|
createdAt: batch.createdAt,
|
|
61
|
-
webhookUrl: options.webhookUrl,
|
|
61
|
+
...(options.webhookUrl !== undefined && { webhookUrl: options.webhookUrl }),
|
|
62
62
|
};
|
|
63
63
|
return { job, completion };
|
|
64
64
|
},
|
|
@@ -72,12 +72,16 @@ const memoryAdapter = {
|
|
|
72
72
|
return {
|
|
73
73
|
id: batch.id,
|
|
74
74
|
provider: 'openai',
|
|
75
|
-
status: batch.status === 'completed'
|
|
75
|
+
status: batch.status === 'completed'
|
|
76
|
+
? 'completed'
|
|
77
|
+
: batch.status === 'failed'
|
|
78
|
+
? 'failed'
|
|
79
|
+
: 'in_progress',
|
|
76
80
|
totalItems: batch.items.length,
|
|
77
81
|
completedItems,
|
|
78
82
|
failedItems,
|
|
79
83
|
createdAt: batch.createdAt,
|
|
80
|
-
completedAt: batch.completedAt,
|
|
84
|
+
...(batch.completedAt && { completedAt: batch.completedAt }),
|
|
81
85
|
};
|
|
82
86
|
},
|
|
83
87
|
async cancel(batchId) {
|
|
@@ -133,9 +137,9 @@ async function processMemoryBatch(batch) {
|
|
|
133
137
|
model: batch.options.model || 'sonnet',
|
|
134
138
|
schema: item.schema,
|
|
135
139
|
prompt: item.prompt,
|
|
136
|
-
system: item.options
|
|
137
|
-
temperature: item.options
|
|
138
|
-
maxTokens: item.options
|
|
140
|
+
...(item.options?.system !== undefined && { system: item.options.system }),
|
|
141
|
+
...(item.options?.temperature !== undefined && { temperature: item.options.temperature }),
|
|
142
|
+
...(item.options?.maxTokens !== undefined && { maxTokens: item.options.maxTokens }),
|
|
139
143
|
});
|
|
140
144
|
result = response.object;
|
|
141
145
|
}
|
|
@@ -144,9 +148,9 @@ async function processMemoryBatch(batch) {
|
|
|
144
148
|
const response = await generateText({
|
|
145
149
|
model: batch.options.model || 'sonnet',
|
|
146
150
|
prompt: item.prompt,
|
|
147
|
-
system: item.options
|
|
148
|
-
temperature: item.options
|
|
149
|
-
maxTokens: item.options
|
|
151
|
+
...(item.options?.system !== undefined && { system: item.options.system }),
|
|
152
|
+
...(item.options?.temperature !== undefined && { temperature: item.options.temperature }),
|
|
153
|
+
...(item.options?.maxTokens !== undefined && { maxTokens: item.options.maxTokens }),
|
|
150
154
|
});
|
|
151
155
|
result = response.text;
|
|
152
156
|
}
|
package/dist/batch/memory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/batch/memory.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,oBAAoB,GAOrB,MAAM,
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/batch/memory.ts"],"names":[],"mappings":"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"}
|