@aeye/replicate 0.3.9 → 0.7.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/README.md CHANGED
@@ -1,559 +1,561 @@
1
- # @aeye/replicate
2
-
3
- Replicate provider for the @aeye (AI TypeScript) framework. This package provides integration with Replicate's platform for running AI models in the cloud.
4
-
5
- ## Features
6
-
7
- - **Thousands of Models**: Access to a vast library of open-source AI models
8
- - **Model Adapters**: Flexible adapter system for handling model-specific schemas
9
- - **Multiple Capabilities**: Support for chat, image generation, transcription, and more
10
- - **Streaming**: Real-time streaming for supported models
11
- - **Custom Models**: Deploy and use your own models
12
- - **Version Control**: Pin specific model versions for reproducibility
13
-
14
- ## Installation
15
-
16
- ```bash
17
- npm install @aeye/replicate @aeye/ai @aeye/core replicate zod
18
- ```
19
-
20
- ## Important Note
21
-
22
- **Replicate has no consistent API** - each model has its own input/output schema. This means you need to register model adapters for each model you want to use. The @aeye framework provides a flexible adapter system to handle this.
23
-
24
- ## Quick Start
25
-
26
- ```typescript
27
- import { ReplicateProvider } from '@aeye/replicate';
28
- import { AI } from '@aeye/ai';
29
- import { createLlama3Adapter } from '@aeye/replicate';
30
-
31
- // Create provider with adapters
32
- const replicate = new ReplicateProvider({
33
- apiKey: process.env.REPLICATE_API_KEY!,
34
- transformers: {
35
- 'meta/meta-llama-3-70b-instruct': createLlama3Adapter(),
36
- },
37
- });
38
-
39
- // Use with AI instance
40
- const ai = AI.with()
41
- .providers({ replicate })
42
- .create();
43
-
44
- // Make a request
45
- const response = await ai.chat.get([
46
- { role: 'user', content: 'Explain neural networks' }
47
- ], {
48
- metadata: { model: 'meta/meta-llama-3-70b-instruct' }
49
- });
50
-
51
- console.log(response.content);
52
- ```
53
-
54
- ## Configuration
55
-
56
- ### Basic Configuration
57
-
58
- ```typescript
59
- import { ReplicateProvider, ReplicateConfig } from '@aeye/replicate';
60
-
61
- const config: ReplicateConfig = {
62
- apiKey: process.env.REPLICATE_API_KEY!,
63
- transformers: {
64
- // Register adapters for models you want to use
65
- 'meta/meta-llama-3-70b-instruct': createLlama3Adapter(),
66
- 'stability-ai/sdxl': createSDXLAdapter(),
67
- },
68
- };
69
-
70
- const provider = new ReplicateProvider(config);
71
- ```
72
-
73
- ### Custom Base URL
74
-
75
- ```typescript
76
- const provider = new ReplicateProvider({
77
- apiKey: process.env.REPLICATE_API_KEY!,
78
- baseUrl: 'https://custom.replicate.com', // Optional custom endpoint
79
- transformers: {
80
- // ... your adapters
81
- },
82
- });
83
- ```
84
-
85
- ## Model Adapters
86
-
87
- Model adapters translate between the @aeye standard interface and each model's specific input/output format.
88
-
89
- ### Using Built-in Adapters
90
-
91
- ```typescript
92
- import {
93
- createLlama3Adapter,
94
- createSDXLAdapter,
95
- createWhisperAdapter,
96
- } from '@aeye/replicate';
97
-
98
- const provider = new ReplicateProvider({
99
- apiKey: process.env.REPLICATE_API_KEY!,
100
- transformers: {
101
- // Chat model
102
- 'meta/meta-llama-3-70b-instruct': createLlama3Adapter(),
103
-
104
- // Image generation
105
- 'stability-ai/sdxl': createSDXLAdapter(),
106
-
107
- // Audio transcription
108
- 'openai/whisper': createWhisperAdapter(),
109
- },
110
- });
111
- ```
112
-
113
- ### Creating Custom Adapters
114
-
115
- TODO: correct example
116
-
117
- ## Usage Examples
118
-
119
- ### Chat Completions
120
-
121
- ```typescript
122
- import { AI } from '@aeye/ai';
123
- import { ReplicateProvider, createLlama3Adapter } from '@aeye/replicate';
124
-
125
- const replicate = new ReplicateProvider({
126
- apiKey: process.env.REPLICATE_API_KEY!,
127
- transformers: {
128
- 'meta/meta-llama-3-70b-instruct': createLlama3Adapter(),
129
- },
130
- });
131
-
132
- const ai = AI.with()
133
- .providers({ replicate })
134
- .create();
135
-
136
- const response = await ai.chat.get([
137
- { role: 'system', content: 'You are a helpful assistant.' },
138
- { role: 'user', content: 'What is machine learning?' }
139
- ], {
140
- metadata: { model: 'meta/meta-llama-3-70b-instruct' }
141
- });
142
-
143
- console.log(response.content);
144
- ```
145
-
146
- ### Streaming Chat
147
-
148
- ```typescript
149
- for await (const chunk of ai.chat.stream([
150
- { role: 'user', content: 'Write a story about a robot' }
151
- ], {
152
- metadata: { model: 'meta/meta-llama-3-70b-instruct' }
153
- })) {
154
- if (chunk.content) {
155
- process.stdout.write(chunk.content);
156
- }
157
- }
158
- ```
159
-
160
- ### Image Generation
161
-
162
- ```typescript
163
- import { createSDXLAdapter } from '@aeye/replicate';
164
-
165
- const replicate = new ReplicateProvider({
166
- apiKey: process.env.REPLICATE_API_KEY!,
167
- transformers: {
168
- 'stability-ai/sdxl': createSDXLAdapter(),
169
- },
170
- });
171
-
172
- const ai = AI.with()
173
- .providers({ replicate })
174
- .create();
175
-
176
- const imageResponse = await ai.image.generate.get({
177
- prompt: 'A serene mountain landscape at sunset',
178
- size: '1024x1024',
179
- }, {
180
- metadata: { model: 'stability-ai/sdxl' }
181
- });
182
-
183
- console.log('Generated image URL:', imageResponse.images[0].url);
184
- ```
185
-
186
- ### Audio Transcription
187
-
188
- ```typescript
189
- import { createWhisperAdapter } from '@aeye/replicate';
190
- import fs from 'fs';
191
-
192
- const replicate = new ReplicateProvider({
193
- apiKey: process.env.REPLICATE_API_KEY!,
194
- transformers: {
195
- 'openai/whisper': createWhisperAdapter(),
196
- },
197
- });
198
-
199
- const ai = AI.with()
200
- .providers({ replicate })
201
- .create();
202
-
203
- const audioBuffer = fs.readFileSync('audio.mp3');
204
-
205
- const transcription = await ai.transcribe.get({
206
- audio: audioBuffer,
207
- }, {
208
- metadata: { model: 'openai/whisper' }
209
- });
210
-
211
- console.log('Transcription:', transcription.text);
212
- ```
213
-
214
- ### Using Specific Model Versions
215
-
216
- ```typescript
217
- // Pin to a specific version for reproducibility
218
- const response = await ai.chat.get(messages, {
219
- metadata: {
220
- model: 'meta/meta-llama-3-70b-instruct',
221
- version: 'fbfb20b472b2f3bdd101412a9f70a0ed4fc0ced78a77ff00970ee7a2383c575d',
222
- }
223
- });
224
- ```
225
-
226
- ### Direct API Usage
227
-
228
- ```typescript
229
- const executor = replicate.createExecutor();
230
-
231
- const response = await executor(
232
- {
233
- messages: [
234
- { role: 'user', content: 'Hello!' }
235
- ],
236
- temperature: 0.7,
237
- maxTokens: 500,
238
- },
239
- {},
240
- { model: 'meta/meta-llama-3-70b-instruct' }
241
- );
242
- ```
243
-
244
- ### List Available Models
245
-
246
- ```typescript
247
- const models = await replicate.listModels();
248
-
249
- models.forEach(model => {
250
- console.log(`${model.id}`);
251
- console.log(` Description: ${model.metadata.description}`);
252
- console.log(` Runs: ${model.metadata.runCount}`);
253
- console.log(` Capabilities: ${Array.from(model.capabilities).join(', ')}`);
254
- });
255
- ```
256
-
257
- ### Search Models
258
-
259
- You can search for models with specific capabilities:
260
-
261
- ```typescript
262
- // Using the Replicate client directly
263
- const client = new Replicate({ auth: process.env.REPLICATE_API_KEY! });
264
-
265
- const results = await client.models.search({
266
- query: 'text generation',
267
- });
268
-
269
- for await (const model of results) {
270
- console.log(model.owner + '/' + model.name);
271
- }
272
- ```
273
-
274
- ## Configuration Options
275
-
276
- ### ReplicateConfig
277
-
278
- | Property | Type | Required | Description |
279
- |----------|------|----------|-------------|
280
- | `apiKey` | `string` | Yes | Replicate API key from https://replicate.com/account/api-tokens |
281
- | `baseUrl` | `string` | No | Custom base URL for API endpoint |
282
- | `transformers` | `Record<string, ModelTransformer>` | No | Model adapters for request/response conversion |
283
-
284
- ### ModelTransformer Interface
285
-
286
- ```typescript
287
- interface ModelTransformer {
288
- // Convert @aeye request to model input
289
- transformRequest: (request: Request) => Record<string, unknown>;
290
-
291
- // Convert model output to @aeye response
292
- transformResponse: (output: unknown) => Response;
293
-
294
- // Optional: convert stream chunks
295
- transformStreamChunk?: (chunk: unknown) => Chunk;
296
-
297
- // Optional: convert image request
298
- transformImageRequest?: (request: ImageGenerationRequest) => Record<string, unknown>;
299
-
300
- // Optional: convert image response
301
- transformImageResponse?: (output: unknown) => ImageGenerationResponse;
302
-
303
- // Optional: convert transcription request
304
- transformTranscriptionRequest?: (request: TranscriptionRequest) => Record<string, unknown>;
305
-
306
- // Optional: convert transcription response
307
- transformTranscriptionResponse?: (output: unknown) => TranscriptionResponse;
308
- }
309
- ```
310
-
311
- ## Built-in Adapters
312
-
313
- The package includes adapters for popular models:
314
-
315
- ### Chat Models
316
-
317
- - **`createLlama3Adapter()`**: Meta Llama 3 models
318
- - `meta/meta-llama-3-8b-instruct`
319
- - `meta/meta-llama-3-70b-instruct`
320
-
321
- ### Image Generation
322
-
323
- - **`createSDXLAdapter()`**: Stable Diffusion XL
324
- - `stability-ai/sdxl`
325
-
326
- - **`createFluxAdapter()`**: Flux models
327
- - `black-forest-labs/flux-schnell`
328
- - `black-forest-labs/flux-dev`
329
-
330
- ### Audio
331
-
332
- - **`createWhisperAdapter()`**: OpenAI Whisper
333
- - `openai/whisper`
334
-
335
- ### Embeddings
336
-
337
- - **`createBGEAdapter()`**: BGE embeddings
338
- - `replicate/bge-large-en-v1.5`
339
-
340
- More adapters are being added regularly. Check the package exports for the latest list.
341
-
342
- ## Error Handling
343
-
344
- ```typescript
345
- try {
346
- const response = await ai.chat.get(messages, {
347
- metadata: { model: 'meta/meta-llama-3-70b-instruct' }
348
- });
349
- } catch (error) {
350
- if (error.message.includes('No transformer registered')) {
351
- console.error('Missing model adapter - register a transformer for this model');
352
- } else if (error.message.includes('Rate limit')) {
353
- console.error('Rate limit exceeded');
354
- } else {
355
- console.error('Error:', error);
356
- }
357
- }
358
- ```
359
-
360
- ## Model Format
361
-
362
- Replicate models use the format `owner/model-name`:
363
-
364
- - `meta/meta-llama-3-70b-instruct`
365
- - `stability-ai/sdxl`
366
- - `openai/whisper`
367
- - `mistralai/mixtral-8x7b-instruct-v0.1`
368
-
369
- To use a specific version, append the version ID:
370
-
371
- - `meta/meta-llama-3-70b-instruct:fbfb20b472b2f3bdd101412a9f70a0ed4fc0ced78a77ff00970ee7a2383c575d`
372
-
373
- ## Best Practices
374
-
375
- 1. **Register Adapters**: Always register adapters for models you use
376
- ```typescript
377
- transformers: {
378
- 'owner/model': createAdapter(),
379
- }
380
- ```
381
-
382
- 2. **Pin Versions**: Use specific versions in production
383
- ```typescript
384
- model: 'owner/model:version-id'
385
- ```
386
-
387
- 3. **Handle Missing Adapters**: Provide helpful errors
388
- ```typescript
389
- if (!transformer) {
390
- throw new Error('No adapter registered for ' + model);
391
- }
392
- ```
393
-
394
- 4. **Cache Model Lists**: Replicate's model list is large
395
- ```typescript
396
- const models = await replicate.listModels();
397
- // Cache the results
398
- ```
399
-
400
- 5. **Monitor Usage**: Replicate charges per prediction
401
- ```typescript
402
- console.log('Tokens used:', response.usage.totalTokens);
403
- ```
404
-
405
- 6. **Test Adapters**: Verify adapter behavior with test data
406
- ```typescript
407
- const testRequest = { messages: [{ role: 'user', content: 'test' }] };
408
- const input = adapter.transformRequest(testRequest);
409
- console.log('Model input:', input);
410
- ```
411
-
412
- ## Creating Model Adapters
413
-
414
- Here's a complete example of creating an adapter:
415
-
416
- ```typescript
417
- import { ModelTransformer } from '@aeye/ai';
418
- import type { Request, Response, Chunk } from '@aeye/core';
419
-
420
- export function createMyModelAdapter(): ModelTransformer {
421
- return {
422
- transformRequest: (request: Request) => {
423
- // Extract the last user message as the prompt
424
- const lastMessage = request.messages[request.messages.length - 1];
425
- const prompt = typeof lastMessage.content === 'string'
426
- ? lastMessage.content
427
- : lastMessage.content.map(c => c.content).join(' ');
428
-
429
- // Build model-specific input
430
- return {
431
- prompt,
432
- temperature: request.temperature ?? 0.7,
433
- max_length: request.maxTokens ?? 500,
434
- top_p: request.topP,
435
- stop_sequences: Array.isArray(request.stop)
436
- ? request.stop
437
- : request.stop
438
- ? [request.stop]
439
- : undefined,
440
- };
441
- },
442
-
443
- transformResponse: (output: unknown): Response => {
444
- const result = output as {
445
- output: string[];
446
- metrics?: { predict_time?: number };
447
- };
448
-
449
- // Combine output array into single string
450
- const content = result.output.join('');
451
-
452
- return {
453
- content,
454
- finishReason: 'stop',
455
- usage: {
456
- text: { input: 0, output: 0 },
457
- },
458
- };
459
- },
460
-
461
- transformStreamChunk: (chunk: unknown) => {
462
- const data = chunk as { output?: string };
463
-
464
- return {
465
- content: data.output,
466
- };
467
- },
468
- };
469
- }
470
- ```
471
-
472
- ## API Reference
473
-
474
- ### ReplicateProvider
475
-
476
- **Constructor**: `new ReplicateProvider(config: ReplicateConfig)`
477
-
478
- **Methods**:
479
- - `createExecutor<TContext, TMetadata>(config?)` - Create executor with adapters
480
- - `createStreamer<TContext, TMetadata>(config?)` - Create streamer with adapters
481
- - `listModels(config?)` - List available models from Replicate
482
- - `generateImage<TContext>(request, ctx, config?)` - Generate images
483
- - `transcribe<TContext>(request, ctx, config?)` - Transcribe audio
484
- - `embed<TContext>(request, ctx, config?)` - Generate embeddings
485
-
486
- ## Supported Features
487
-
488
- - ✅ Chat completions (with adapters)
489
- - ✅ Streaming (model-dependent)
490
- - ✅ Image generation (with adapters)
491
- - ✅ Audio transcription (with adapters)
492
- - ✅ Embeddings (with adapters)
493
- - ✅ Custom models
494
- - ✅ Version pinning
495
- - ❌ Function calling (model-dependent)
496
- - ❌ Structured outputs (model-dependent)
497
-
498
- Feature availability depends on the specific model and adapter.
499
-
500
- ## Finding Models
501
-
502
- Browse available models at:
503
- - https://replicate.com/explore
504
-
505
- Popular model categories:
506
- - **Language Models**: Llama, Mistral, Mixtral, etc.
507
- - **Image Generation**: SDXL, Flux, ControlNet, etc.
508
- - **Audio**: Whisper, MusicGen, etc.
509
- - **Video**: Stable Video Diffusion, etc.
510
- - **Image Enhancement**: Upscaling, face restoration, etc.
511
-
512
- ## Getting an API Key
513
-
514
- 1. Visit https://replicate.com
515
- 2. Create an account or sign in
516
- 3. Navigate to https://replicate.com/account/api-tokens
517
- 4. Generate a new API token
518
- 5. Store it securely in your environment variables
519
-
520
- ## Related Packages
521
-
522
- - **[@aeye/core](../core)**: Core @aeye framework types and interfaces
523
- - **[@aeye/ai](../ai)**: AI abstractions and utilities
524
- - **[@aeye/openai](../openai)**: OpenAI provider
525
- - **[@aeye/anthropic](../anthropic)**: Anthropic Claude provider
526
- - **[@aeye/openrouter](../openrouter)**: Multi-provider gateway
527
-
528
- ## Links
529
-
530
- - [Replicate Website](https://replicate.com)
531
- - [Replicate Documentation](https://replicate.com/docs)
532
- - [Replicate Models](https://replicate.com/explore)
533
- - [Replicate API Reference](https://replicate.com/docs/reference/http)
534
- - [Replicate Pricing](https://replicate.com/pricing)
535
-
536
- ## License
537
-
538
- GPL-3.0
539
-
540
- ## Contributing
541
-
542
- Contributions are welcome, especially new model adapters! Please see the main [@aeye repository](https://github.com/ClickerMonkey/aeye) for contribution guidelines.
543
-
544
- ### Contributing Adapters
545
-
546
- To contribute a new model adapter:
547
-
548
- 1. Create the adapter function in `src/adapters.ts`
549
- 2. Export it from `src/index.ts`
550
- 3. Add tests for the adapter
551
- 4. Update this README with usage examples
552
- 5. Submit a pull request
553
-
554
- ## Support
555
-
556
- For issues and questions:
557
- - GitHub Issues: https://github.com/ClickerMonkey/aeye/issues
558
- - Documentation: https://github.com/ClickerMonkey/aeye
559
- - Replicate Discord: https://discord.gg/replicate
1
+ # @aeye/replicate
2
+
3
+ Replicate provider for the @aeye (AI TypeScript) framework. This package provides integration with Replicate's platform for running AI models in the cloud.
4
+
5
+ ## Features
6
+
7
+ - **Thousands of Models**: Access to a vast library of open-source AI models
8
+ - **Model Adapters**: Flexible adapter system for handling model-specific schemas
9
+ - **Multiple Capabilities**: Support for chat, image generation, transcription, and more
10
+ - **Streaming**: Real-time streaming for supported models
11
+ - **Custom Models**: Deploy and use your own models
12
+ - **Version Control**: Pin specific model versions for reproducibility
13
+
14
+ ## Installation
15
+
16
+ ```bash
17
+ npm install @aeye/replicate @aeye/ai @aeye/core replicate zod
18
+ ```
19
+
20
+ ## Important Note
21
+
22
+ **Replicate has no consistent API** - each model has its own input/output schema. This means you need to register model adapters for each model you want to use. The @aeye framework provides a flexible adapter system to handle this.
23
+
24
+ ## Quick Start
25
+
26
+ ```typescript
27
+ import { ReplicateProvider } from '@aeye/replicate';
28
+ import { AI } from '@aeye/ai';
29
+ import { createLlama3Adapter } from '@aeye/replicate';
30
+
31
+ // Create provider with adapters
32
+ const replicate = new ReplicateProvider({
33
+ apiKey: process.env.REPLICATE_API_KEY!,
34
+ transformers: {
35
+ 'meta/meta-llama-3-70b-instruct': createLlama3Adapter(),
36
+ },
37
+ });
38
+
39
+ // Use with AI instance
40
+ const ai = AI.with()
41
+ .providers({ replicate })
42
+ .create();
43
+
44
+ // Make a request
45
+ const response = await ai.chat.get([
46
+ { role: 'user', content: 'Explain neural networks' }
47
+ ], {
48
+ metadata: { model: 'meta/meta-llama-3-70b-instruct' }
49
+ });
50
+
51
+ console.log(response.content);
52
+ ```
53
+
54
+ ## Configuration
55
+
56
+ ### Basic Configuration
57
+
58
+ ```typescript
59
+ import { ReplicateProvider, ReplicateConfig } from '@aeye/replicate';
60
+
61
+ const config: ReplicateConfig = {
62
+ apiKey: process.env.REPLICATE_API_KEY!,
63
+ transformers: {
64
+ // Register adapters for models you want to use
65
+ 'meta/meta-llama-3-70b-instruct': createLlama3Adapter(),
66
+ 'stability-ai/sdxl': createSDXLAdapter(),
67
+ },
68
+ };
69
+
70
+ const provider = new ReplicateProvider(config);
71
+ ```
72
+
73
+ ### Custom Base URL
74
+
75
+ ```typescript
76
+ const provider = new ReplicateProvider({
77
+ apiKey: process.env.REPLICATE_API_KEY!,
78
+ baseUrl: 'https://custom.replicate.com', // Optional custom endpoint
79
+ transformers: {
80
+ // ... your adapters
81
+ },
82
+ });
83
+ ```
84
+
85
+ ## Model Adapters
86
+
87
+ Model adapters translate between the @aeye standard interface and each model's specific input/output format.
88
+
89
+ ### Using Built-in Adapters
90
+
91
+ ```typescript
92
+ import {
93
+ createLlama3Adapter,
94
+ createSDXLAdapter,
95
+ createWhisperAdapter,
96
+ } from '@aeye/replicate';
97
+
98
+ const provider = new ReplicateProvider({
99
+ apiKey: process.env.REPLICATE_API_KEY!,
100
+ transformers: {
101
+ // Chat model
102
+ 'meta/meta-llama-3-70b-instruct': createLlama3Adapter(),
103
+
104
+ // Image generation
105
+ 'stability-ai/sdxl': createSDXLAdapter(),
106
+
107
+ // Audio transcription
108
+ 'openai/whisper': createWhisperAdapter(),
109
+ },
110
+ });
111
+ ```
112
+
113
+ ### Creating Custom Adapters
114
+
115
+ TODO: correct example
116
+
117
+ ## Usage Examples
118
+
119
+ ### Chat Completions
120
+
121
+ ```typescript
122
+ import { AI } from '@aeye/ai';
123
+ import { ReplicateProvider, createLlama3Adapter } from '@aeye/replicate';
124
+
125
+ const replicate = new ReplicateProvider({
126
+ apiKey: process.env.REPLICATE_API_KEY!,
127
+ transformers: {
128
+ 'meta/meta-llama-3-70b-instruct': createLlama3Adapter(),
129
+ },
130
+ });
131
+
132
+ const ai = AI.with()
133
+ .providers({ replicate })
134
+ .create();
135
+
136
+ const response = await ai.chat.get([
137
+ { role: 'system', content: 'You are a helpful assistant.' },
138
+ { role: 'user', content: 'What is machine learning?' }
139
+ ], {
140
+ metadata: { model: 'meta/meta-llama-3-70b-instruct' }
141
+ });
142
+
143
+ console.log(response.content);
144
+ ```
145
+
146
+ ### Streaming Chat
147
+
148
+ ```typescript
149
+ for await (const chunk of ai.chat.stream([
150
+ { role: 'user', content: 'Write a story about a robot' }
151
+ ], {
152
+ metadata: { model: 'meta/meta-llama-3-70b-instruct' }
153
+ })) {
154
+ if (chunk.content) {
155
+ process.stdout.write(chunk.content);
156
+ }
157
+ }
158
+ ```
159
+
160
+ Replicate models take no response format, so a schema `responseFormat` is delivered as text: the JSON Schema is appended to the system prompt and the request asks for plain text, which the caller (or a Prompt) parses.
161
+
162
+ ### Image Generation
163
+
164
+ ```typescript
165
+ import { createSDXLAdapter } from '@aeye/replicate';
166
+
167
+ const replicate = new ReplicateProvider({
168
+ apiKey: process.env.REPLICATE_API_KEY!,
169
+ transformers: {
170
+ 'stability-ai/sdxl': createSDXLAdapter(),
171
+ },
172
+ });
173
+
174
+ const ai = AI.with()
175
+ .providers({ replicate })
176
+ .create();
177
+
178
+ const imageResponse = await ai.image.generate.get({
179
+ prompt: 'A serene mountain landscape at sunset',
180
+ size: '1024x1024',
181
+ }, {
182
+ metadata: { model: 'stability-ai/sdxl' }
183
+ });
184
+
185
+ console.log('Generated image URL:', imageResponse.images[0].url);
186
+ ```
187
+
188
+ ### Audio Transcription
189
+
190
+ ```typescript
191
+ import { createWhisperAdapter } from '@aeye/replicate';
192
+ import fs from 'fs';
193
+
194
+ const replicate = new ReplicateProvider({
195
+ apiKey: process.env.REPLICATE_API_KEY!,
196
+ transformers: {
197
+ 'openai/whisper': createWhisperAdapter(),
198
+ },
199
+ });
200
+
201
+ const ai = AI.with()
202
+ .providers({ replicate })
203
+ .create();
204
+
205
+ const audioBuffer = fs.readFileSync('audio.mp3');
206
+
207
+ const transcription = await ai.transcribe.get({
208
+ audio: audioBuffer,
209
+ }, {
210
+ metadata: { model: 'openai/whisper' }
211
+ });
212
+
213
+ console.log('Transcription:', transcription.text);
214
+ ```
215
+
216
+ ### Using Specific Model Versions
217
+
218
+ ```typescript
219
+ // Pin to a specific version for reproducibility
220
+ const response = await ai.chat.get(messages, {
221
+ metadata: {
222
+ model: 'meta/meta-llama-3-70b-instruct',
223
+ version: 'fbfb20b472b2f3bdd101412a9f70a0ed4fc0ced78a77ff00970ee7a2383c575d',
224
+ }
225
+ });
226
+ ```
227
+
228
+ ### Direct API Usage
229
+
230
+ ```typescript
231
+ const executor = replicate.createExecutor();
232
+
233
+ const response = await executor(
234
+ {
235
+ messages: [
236
+ { role: 'user', content: 'Hello!' }
237
+ ],
238
+ temperature: 0.7,
239
+ maxTokens: 500,
240
+ },
241
+ {},
242
+ { model: 'meta/meta-llama-3-70b-instruct' }
243
+ );
244
+ ```
245
+
246
+ ### List Available Models
247
+
248
+ ```typescript
249
+ const models = await replicate.listModels();
250
+
251
+ models.forEach(model => {
252
+ console.log(`${model.id}`);
253
+ console.log(` Description: ${model.metadata.description}`);
254
+ console.log(` Runs: ${model.metadata.runCount}`);
255
+ console.log(` Capabilities: ${Array.from(model.capabilities).join(', ')}`);
256
+ });
257
+ ```
258
+
259
+ ### Search Models
260
+
261
+ You can search for models with specific capabilities:
262
+
263
+ ```typescript
264
+ // Using the Replicate client directly
265
+ const client = new Replicate({ auth: process.env.REPLICATE_API_KEY! });
266
+
267
+ const results = await client.models.search({
268
+ query: 'text generation',
269
+ });
270
+
271
+ for await (const model of results) {
272
+ console.log(model.owner + '/' + model.name);
273
+ }
274
+ ```
275
+
276
+ ## Configuration Options
277
+
278
+ ### ReplicateConfig
279
+
280
+ | Property | Type | Required | Description |
281
+ |----------|------|----------|-------------|
282
+ | `apiKey` | `string` | Yes | Replicate API key from https://replicate.com/account/api-tokens |
283
+ | `baseUrl` | `string` | No | Custom base URL for API endpoint |
284
+ | `transformers` | `Record<string, ModelTransformer>` | No | Model adapters for request/response conversion |
285
+
286
+ ### ModelTransformer Interface
287
+
288
+ ```typescript
289
+ interface ModelTransformer {
290
+ // Convert @aeye request to model input
291
+ transformRequest: (request: Request) => Record<string, unknown>;
292
+
293
+ // Convert model output to @aeye response
294
+ transformResponse: (output: unknown) => Response;
295
+
296
+ // Optional: convert stream chunks
297
+ transformStreamChunk?: (chunk: unknown) => Chunk;
298
+
299
+ // Optional: convert image request
300
+ transformImageRequest?: (request: ImageGenerationRequest) => Record<string, unknown>;
301
+
302
+ // Optional: convert image response
303
+ transformImageResponse?: (output: unknown) => ImageGenerationResponse;
304
+
305
+ // Optional: convert transcription request
306
+ transformTranscriptionRequest?: (request: TranscriptionRequest) => Record<string, unknown>;
307
+
308
+ // Optional: convert transcription response
309
+ transformTranscriptionResponse?: (output: unknown) => TranscriptionResponse;
310
+ }
311
+ ```
312
+
313
+ ## Built-in Adapters
314
+
315
+ The package includes adapters for popular models:
316
+
317
+ ### Chat Models
318
+
319
+ - **`createLlama3Adapter()`**: Meta Llama 3 models
320
+ - `meta/meta-llama-3-8b-instruct`
321
+ - `meta/meta-llama-3-70b-instruct`
322
+
323
+ ### Image Generation
324
+
325
+ - **`createSDXLAdapter()`**: Stable Diffusion XL
326
+ - `stability-ai/sdxl`
327
+
328
+ - **`createFluxAdapter()`**: Flux models
329
+ - `black-forest-labs/flux-schnell`
330
+ - `black-forest-labs/flux-dev`
331
+
332
+ ### Audio
333
+
334
+ - **`createWhisperAdapter()`**: OpenAI Whisper
335
+ - `openai/whisper`
336
+
337
+ ### Embeddings
338
+
339
+ - **`createBGEAdapter()`**: BGE embeddings
340
+ - `replicate/bge-large-en-v1.5`
341
+
342
+ More adapters are being added regularly. Check the package exports for the latest list.
343
+
344
+ ## Error Handling
345
+
346
+ ```typescript
347
+ try {
348
+ const response = await ai.chat.get(messages, {
349
+ metadata: { model: 'meta/meta-llama-3-70b-instruct' }
350
+ });
351
+ } catch (error) {
352
+ if (error.message.includes('No transformer registered')) {
353
+ console.error('Missing model adapter - register a transformer for this model');
354
+ } else if (error.message.includes('Rate limit')) {
355
+ console.error('Rate limit exceeded');
356
+ } else {
357
+ console.error('Error:', error);
358
+ }
359
+ }
360
+ ```
361
+
362
+ ## Model Format
363
+
364
+ Replicate models use the format `owner/model-name`:
365
+
366
+ - `meta/meta-llama-3-70b-instruct`
367
+ - `stability-ai/sdxl`
368
+ - `openai/whisper`
369
+ - `mistralai/mixtral-8x7b-instruct-v0.1`
370
+
371
+ To use a specific version, append the version ID:
372
+
373
+ - `meta/meta-llama-3-70b-instruct:fbfb20b472b2f3bdd101412a9f70a0ed4fc0ced78a77ff00970ee7a2383c575d`
374
+
375
+ ## Best Practices
376
+
377
+ 1. **Register Adapters**: Always register adapters for models you use
378
+ ```typescript
379
+ transformers: {
380
+ 'owner/model': createAdapter(),
381
+ }
382
+ ```
383
+
384
+ 2. **Pin Versions**: Use specific versions in production
385
+ ```typescript
386
+ model: 'owner/model:version-id'
387
+ ```
388
+
389
+ 3. **Handle Missing Adapters**: Provide helpful errors
390
+ ```typescript
391
+ if (!transformer) {
392
+ throw new Error('No adapter registered for ' + model);
393
+ }
394
+ ```
395
+
396
+ 4. **Cache Model Lists**: Replicate's model list is large
397
+ ```typescript
398
+ const models = await replicate.listModels();
399
+ // Cache the results
400
+ ```
401
+
402
+ 5. **Monitor Usage**: Replicate charges per prediction
403
+ ```typescript
404
+ console.log('Tokens used:', response.usage.totalTokens);
405
+ ```
406
+
407
+ 6. **Test Adapters**: Verify adapter behavior with test data
408
+ ```typescript
409
+ const testRequest = { messages: [{ role: 'user', content: 'test' }] };
410
+ const input = adapter.transformRequest(testRequest);
411
+ console.log('Model input:', input);
412
+ ```
413
+
414
+ ## Creating Model Adapters
415
+
416
+ Here's a complete example of creating an adapter:
417
+
418
+ ```typescript
419
+ import { ModelTransformer } from '@aeye/ai';
420
+ import type { Request, Response, Chunk } from '@aeye/core';
421
+
422
+ export function createMyModelAdapter(): ModelTransformer {
423
+ return {
424
+ transformRequest: (request: Request) => {
425
+ // Extract the last user message as the prompt
426
+ const lastMessage = request.messages[request.messages.length - 1];
427
+ const prompt = typeof lastMessage.content === 'string'
428
+ ? lastMessage.content
429
+ : lastMessage.content.map(c => c.content).join(' ');
430
+
431
+ // Build model-specific input
432
+ return {
433
+ prompt,
434
+ temperature: request.temperature ?? 0.7,
435
+ max_length: request.maxTokens ?? 500,
436
+ top_p: request.topP,
437
+ stop_sequences: Array.isArray(request.stop)
438
+ ? request.stop
439
+ : request.stop
440
+ ? [request.stop]
441
+ : undefined,
442
+ };
443
+ },
444
+
445
+ transformResponse: (output: unknown): Response => {
446
+ const result = output as {
447
+ output: string[];
448
+ metrics?: { predict_time?: number };
449
+ };
450
+
451
+ // Combine output array into single string
452
+ const content = result.output.join('');
453
+
454
+ return {
455
+ content,
456
+ finishReason: 'stop',
457
+ usage: {
458
+ text: { input: 0, output: 0 },
459
+ },
460
+ };
461
+ },
462
+
463
+ transformStreamChunk: (chunk: unknown) => {
464
+ const data = chunk as { output?: string };
465
+
466
+ return {
467
+ content: data.output,
468
+ };
469
+ },
470
+ };
471
+ }
472
+ ```
473
+
474
+ ## API Reference
475
+
476
+ ### ReplicateProvider
477
+
478
+ **Constructor**: `new ReplicateProvider(config: ReplicateConfig)`
479
+
480
+ **Methods**:
481
+ - `createExecutor<TContext, TMetadata>(config?)` - Create executor with adapters
482
+ - `createStreamer<TContext, TMetadata>(config?)` - Create streamer with adapters
483
+ - `listModels(config?)` - List available models from Replicate
484
+ - `generateImage<TContext>(request, ctx, config?)` - Generate images
485
+ - `transcribe<TContext>(request, ctx, config?)` - Transcribe audio
486
+ - `embed<TContext>(request, ctx, config?)` - Generate embeddings
487
+
488
+ ## Supported Features
489
+
490
+ - ✅ Chat completions (with adapters)
491
+ - ✅ Streaming (model-dependent)
492
+ - ✅ Image generation (with adapters)
493
+ - ✅ Audio transcription (with adapters)
494
+ - ✅ Embeddings (with adapters)
495
+ - ✅ Custom models
496
+ - ✅ Version pinning
497
+ - ❌ Function calling (model-dependent)
498
+ - ❌ Structured outputs (model-dependent)
499
+
500
+ Feature availability depends on the specific model and adapter.
501
+
502
+ ## Finding Models
503
+
504
+ Browse available models at:
505
+ - https://replicate.com/explore
506
+
507
+ Popular model categories:
508
+ - **Language Models**: Llama, Mistral, Mixtral, etc.
509
+ - **Image Generation**: SDXL, Flux, ControlNet, etc.
510
+ - **Audio**: Whisper, MusicGen, etc.
511
+ - **Video**: Stable Video Diffusion, etc.
512
+ - **Image Enhancement**: Upscaling, face restoration, etc.
513
+
514
+ ## Getting an API Key
515
+
516
+ 1. Visit https://replicate.com
517
+ 2. Create an account or sign in
518
+ 3. Navigate to https://replicate.com/account/api-tokens
519
+ 4. Generate a new API token
520
+ 5. Store it securely in your environment variables
521
+
522
+ ## Related Packages
523
+
524
+ - **[@aeye/core](../core)**: Core @aeye framework types and interfaces
525
+ - **[@aeye/ai](../ai)**: AI abstractions and utilities
526
+ - **[@aeye/openai](../openai)**: OpenAI provider
527
+ - **[@aeye/anthropic](../anthropic)**: Anthropic Claude provider
528
+ - **[@aeye/openrouter](../openrouter)**: Multi-provider gateway
529
+
530
+ ## Links
531
+
532
+ - [Replicate Website](https://replicate.com)
533
+ - [Replicate Documentation](https://replicate.com/docs)
534
+ - [Replicate Models](https://replicate.com/explore)
535
+ - [Replicate API Reference](https://replicate.com/docs/reference/http)
536
+ - [Replicate Pricing](https://replicate.com/pricing)
537
+
538
+ ## License
539
+
540
+ GPL-3.0
541
+
542
+ ## Contributing
543
+
544
+ Contributions are welcome, especially new model adapters! Please see the main [@aeye repository](https://github.com/ClickerMonkey/aeye) for contribution guidelines.
545
+
546
+ ### Contributing Adapters
547
+
548
+ To contribute a new model adapter:
549
+
550
+ 1. Create the adapter function in `src/adapters.ts`
551
+ 2. Export it from `src/index.ts`
552
+ 3. Add tests for the adapter
553
+ 4. Update this README with usage examples
554
+ 5. Submit a pull request
555
+
556
+ ## Support
557
+
558
+ For issues and questions:
559
+ - GitHub Issues: https://github.com/ClickerMonkey/aeye/issues
560
+ - Documentation: https://github.com/ClickerMonkey/aeye
561
+ - Replicate Discord: https://discord.gg/replicate
@@ -1 +1 @@
1
- {"version":3,"file":"replicate.d.ts","sourceRoot":"","sources":["../src/replicate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,KAAK,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EAEvB,SAAS,EAET,gBAAgB,EAEhB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAkD,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAyB,MAAM,YAAY,CAAC;AAO9J;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,CAAC,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,CACzD,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,YAAY,KACd,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,CAAC,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,SAAS,GAAG,GAAG,IAAI,CAC3E,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,SAAS,EACnB,GAAG,EAAE,YAAY,KACd,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,CAAC,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,CACpD,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,YAAY,KACd,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,QAAQ,GAAG,GAAG,EAAE,SAAS,GAAG,GAAG;IAClE,aAAa,CAAC,EAAE,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjD,YAAY,CAAC,EAAE,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC5D,OAAO,CAAC,EAAE,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAE7B,IAAI,CAAC,EAAE,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE9C,aAAa,CAAC,EAAE,mBAAmB,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,CAAC;IAErF,SAAS,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;IAE3E,YAAY,CAAC,EAAE,mBAAmB,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAElE,UAAU,CAAC,EAAE,mBAAmB,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;IAE9E,MAAM,CAAC,EAAE,mBAAmB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAE5D,KAAK,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;CAClE;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,cAAc,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAGnE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACpD;;OAEG;IACH,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AA8ID,qBAAa,iBAAkB,YAAW,QAAQ,CAAC,eAAe,CAAC;IACjE,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;gBAErB,MAAM,EAAE,eAAe;IAInC;;;;;OAKG;IACG,UAAU,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA0ChE;;OAEG;IACG,WAAW,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAc7D;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;;;;;;OAOG;YACW,SAAS;IA0EvB;;;;;;;OAOG;YACY,QAAQ;IAkFvB;;;;OAIG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;IAQ/E;;OAEG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;IAmB/E;;;;OAIG;IACG,aAAa,CACjB,OAAO,EAAE,sBAAsB,EAC/B,GAAG,EAAE,YAAY,EACjB,MAAM,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,uBAAuB,CAAC;IAInC;;;;OAIG;IACI,mBAAmB,CACxB,OAAO,EAAE,sBAAsB,EAC/B,GAAG,EAAE,YAAY,EACjB,MAAM,CAAC,EAAE,eAAe;;;IAK1B;;;;OAIG;IACG,SAAS,CACb,OAAO,EAAE,gBAAgB,EACzB,GAAG,EAAE,YAAY,EACjB,MAAM,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,uBAAuB,CAAC;IAInC;;;;OAIG;IACI,eAAe,CACpB,OAAO,EAAE,gBAAgB,EACzB,GAAG,EAAE,YAAY,EACjB,MAAM,CAAC,EAAE,eAAe;;;IAK1B;;;;OAIG;IACG,YAAY,CAChB,OAAO,EAAE,mBAAmB,EAC5B,GAAG,EAAE,YAAY,EACjB,MAAM,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,QAAQ,CAAC;IAIpB;;;;OAIG;IACI,kBAAkB,CACvB,OAAO,EAAE,mBAAmB,EAC5B,GAAG,EAAE,YAAY,EACjB,MAAM,CAAC,EAAE,eAAe;;;IAK1B;;;;OAIG;IACG,UAAU,CACd,OAAO,EAAE,oBAAoB,EAC7B,GAAG,EAAE,YAAY,EACjB,MAAM,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,qBAAqB,CAAC;IAIjC;;;;OAIG;IACI,gBAAgB,CACrB,OAAO,EAAE,oBAAoB,EAC7B,GAAG,EAAE,YAAY,EACjB,MAAM,CAAC,EAAE,eAAe;;;IAK1B;;;;OAIG;IACG,MAAM,CACV,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,YAAY,EACjB,MAAM,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC;IAI1B;;;;OAIG;IACG,KAAK,CACT,OAAO,EAAE,gBAAgB,EACzB,GAAG,EAAE,YAAY,EACjB,MAAM,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,iBAAiB,CAAC;CAG9B"}
1
+ {"version":3,"file":"replicate.d.ts","sourceRoot":"","sources":["../src/replicate.ts"],"names":[],"mappings":"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"}
package/dist/replicate.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * Replicate has no consistent API - each model has its own input/output schema.
6
6
  * Users must register ModelAdapters for each model they want to use.
7
7
  */
8
- import { getModel, getResponseFromChunks } from '@aeye/core';
8
+ import { deliverSchema, getModel, LENIENT, getResponseFromChunks } from '@aeye/core';
9
9
  import Replicate from 'replicate';
10
10
  // ============================================================================
11
11
  // Helper Functions
@@ -283,7 +283,8 @@ export class ReplicateProvider {
283
283
  createExecutor(config) {
284
284
  const repConfig = config || this.config;
285
285
  return async (request, ctx, metadata, signal) => {
286
- return this.doRequest(repConfig, request, ctx, metadata, signal, (transformer) => transformer.chat || {}, 'chat');
286
+ // Replicate models take no response format, so a schema goes in the prompt
287
+ return this.doRequest(repConfig, deliverSchema(request, LENIENT, 'prompt'), ctx, metadata, signal, (transformer) => transformer.chat || {}, 'chat');
287
288
  };
288
289
  }
289
290
  /**
@@ -292,7 +293,7 @@ export class ReplicateProvider {
292
293
  createStreamer(config) {
293
294
  const provider = this;
294
295
  return async function* (request, ctx, metadata, signal) {
295
- const stream = provider.doStream(config, request, ctx, metadata, signal, (transformer) => transformer.chat || {}, 'chat');
296
+ const stream = provider.doStream(config, deliverSchema(request, LENIENT, 'prompt'), ctx, metadata, signal, (transformer) => transformer.chat || {}, 'chat');
296
297
  const chunks = [];
297
298
  for await (const chunk of stream) {
298
299
  chunks.push(chunk);
@@ -1 +1 @@
1
- {"version":3,"file":"replicate.js","sourceRoot":"","sources":["../src/replicate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replicate.js","sourceRoot":"","sources":["../src/replicate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aeye/replicate",
3
- "version": "0.3.9",
3
+ "version": "0.7.0",
4
4
  "description": "@aeye Replicate - Replicate integration for @aeye",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -43,8 +43,8 @@
43
43
  "aeye-*.md"
44
44
  ],
45
45
  "dependencies": {
46
- "@aeye/ai": "^0.3.9",
47
- "@aeye/core": "^0.3.9",
46
+ "@aeye/ai": "^0.7.0",
47
+ "@aeye/core": "^0.7.0",
48
48
  "replicate": "^1.3.0"
49
49
  },
50
50
  "devDependencies": {