@wix/ai
v1.5.0
Published
Wix AI SDK
Readme
@wix/ai
Wix AI SDK for the Vercel AI SDK. Provides access to AI models through Wix infrastructure with automatic authentication.
⚠️ Note: This package depends on Vercel AI SDK v6 (currently in beta).
Supported Providers
| Provider | Status | Capabilities | |----------|--------|--------------| | OpenAI | ✅ Available | Text generation, chat, embeddings | | Runware | ✅ Available | Image generation |
Installation
npm install @wix/aiRequirements:
ai@>=6.0.27(Vercel AI SDK v6)zod@^4.1.8
Quick Start
Wix Environment (Blocks, Wix CLI Apps)
import { generateText } from 'ai';
import { openai } from '@wix/ai';
const { text } = await generateText({
model: openai('gpt-4o'),
prompt: 'What is the capital of France?',
});Self-Hosted Apps
For apps running outside Wix, pass a WixClient configured with AppStrategy or ApiKeyStrategy:
import { generateText } from 'ai';
import { createOpenAI } from '@wix/ai';
import { createClient, AppStrategy } from '@wix/sdk';
const wixClient = createClient({
auth: AppStrategy({
appId: 'YOUR_APP_ID',
appSecret: 'YOUR_APP_SECRET',
instanceId: 'YOUR_INSTANCE_ID',
}),
});
const openai = createOpenAI({ client: wixClient });
const { text } = await generateText({
model: openai('gpt-4o'),
prompt: 'What is the capital of France?',
});Requirements
- ✅ Wix backend code (API routes, server functions)
- ✅ Self-hosted apps (with WixClient using AppStrategy or ApiKeyStrategy)
- ❌ Browser/client-side code
Technical requirements:
- Node.js 18+
aipackage v6.0.0+
API Reference
OpenAI Provider
Responses API (Default)
import { generateText } from 'ai';
import { openai } from '@wix/ai';
const { text } = await generateText({
model: openai('gpt-4o'),
prompt: 'Explain quantum computing.',
});Or explicitly:
const model = openai.responses('gpt-4o');Chat Completions
import { generateText } from 'ai';
import { openai } from '@wix/ai';
const { text } = await generateText({
model: openai.chat('gpt-4o'),
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'What is TypeScript?' },
],
});Embeddings
import { embed, cosineSimilarity } from 'ai';
import { openai } from '@wix/ai';
const { embedding } = await embed({
model: openai.embeddingModel('text-embedding-3-small'),
value: 'Hello world',
});
const similarity = cosineSimilarity(embedding1, embedding2);Batch embeddings:
import { embedMany } from 'ai';
import { openai } from '@wix/ai';
const { embeddings } = await embedMany({
model: openai.embeddingModel('text-embedding-3-small'),
values: ['Hello', 'World', 'Foo', 'Bar'],
});OpenAI Provider Methods
| Method | Description |
|--------|-------------|
| openai(modelId) | Responses API (default) |
| openai.responses(modelId) | Responses API (explicit) |
| openai.chat(modelId) | Chat Completions API |
| openai.embeddingModel(modelId) | Text embeddings |
Runware Provider
Image Generation
import { generateImage } from 'ai';
import { runware } from '@wix/ai';
const result = await generateImage({
model: runware.imageModel('runware:101@1'),
prompt: 'A serene mountain landscape at sunset',
n: 4, // Generate 4 images in one call
});Using image() method
import { generateImage } from 'ai';
import { runware } from '@wix/ai';
const result = await generateImage({
model: runware.image('FLUX.1'),
prompt: 'A futuristic cityscape at night with neon lights',
});Self-Hosted Apps
For apps running outside Wix, use createRunware with a WixClient:
import { generateImage } from 'ai';
import { createRunware } from '@wix/ai';
import { createClient, ApiKeyStrategy } from '@wix/sdk';
const wixClient = createClient({
auth: ApiKeyStrategy({
siteId: 'YOUR_SITE_ID',
apiKey: 'YOUR_API_KEY',
}),
});
const runware = createRunware({ client: wixClient });
const result = await generateImage({
model: runware.imageModel('runware:101@1'),
prompt: 'A beautiful sunset over mountains',
n: 2,
});Runware Provider Methods
| Method | Description |
|--------|-------------|
| runware.image(modelId) | Image generation (shortcut method) |
| runware.imageModel(modelId) | Image generation model |
License
MIT
