diff --git a/lib/models.json b/lib/models.json index ae29931c..3f30ff93 100644 --- a/lib/models.json +++ b/lib/models.json @@ -327,6 +327,13 @@ "providerId": "ollama", "name": "Mistral Large", "multiModal": false + }, + { + "id": "v0-1.0-md", + "provider": "Vercel", + "providerId": "vercel", + "name": "v0-1.0-md", + "multiModal": true } ] } diff --git a/lib/models.ts b/lib/models.ts index 55a03041..178761c8 100644 --- a/lib/models.ts +++ b/lib/models.ts @@ -1,10 +1,11 @@ import { createAnthropic } from '@ai-sdk/anthropic' +import { createFireworks } from '@ai-sdk/fireworks' import { createGoogleGenerativeAI } from '@ai-sdk/google' import { createVertex } from '@ai-sdk/google-vertex' import { createMistral } from '@ai-sdk/mistral' import { createOpenAI } from '@ai-sdk/openai' +import { createVercel } from '@ai-sdk/vercel' import { createOllama } from 'ollama-ai-provider' -import { createFireworks } from '@ai-sdk/fireworks' export type LLMModel = { id: string @@ -69,6 +70,11 @@ export function getModelClient(model: LLMModel, config: LLMModelConfig) { apiKey: apiKey || process.env.DEEPSEEK_API_KEY, baseURL: baseURL || 'https://api.deepseek.com/v1', })(modelNameString), + vercel: () => + createVercel({ + apiKey: apiKey || process.env.VERCEL_API_KEY, + baseURL: baseURL || 'https://api.vercel.com/v1', + })(modelNameString), } const createClient = diff --git a/package-lock.json b/package-lock.json index 5895e5e7..45e09fcc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,7 @@ "@ai-sdk/google-vertex": "^2.2.3", "@ai-sdk/mistral": "^1.0.1", "@ai-sdk/openai": "^1.3.15", + "@ai-sdk/vercel": "^0.0.1", "@e2b/code-interpreter": "^1.0.2", "@radix-ui/react-avatar": "^1.1.0", "@radix-ui/react-dialog": "^1.1.1", @@ -563,6 +564,68 @@ } } }, + "node_modules/@ai-sdk/vercel": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@ai-sdk/vercel/-/vercel-0.0.1.tgz", + "integrity": "sha512-hHDZotTYVpmNyiSiWySSv/XbSjkL9exmKkBR7FwR1zp41ml+LV6WBlfwatBWZ5m22hSSDrztx4abvvd/MFF0yg==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/openai-compatible": "0.2.14", + "@ai-sdk/provider": "1.1.3", + "@ai-sdk/provider-utils": "2.2.8" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.0.0" + } + }, + "node_modules/@ai-sdk/vercel/node_modules/@ai-sdk/openai-compatible": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/@ai-sdk/openai-compatible/-/openai-compatible-0.2.14.tgz", + "integrity": "sha512-icjObfMCHKSIbywijaoLdZ1nSnuRnWgMEMLgwoxPJgxsUHMx0aVORnsLUid4SPtdhHI3X2masrt6iaEQLvOSFw==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider": "1.1.3", + "@ai-sdk/provider-utils": "2.2.8" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.0.0" + } + }, + "node_modules/@ai-sdk/vercel/node_modules/@ai-sdk/provider": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-1.1.3.tgz", + "integrity": "sha512-qZMxYJ0qqX/RfnuIaab+zp8UAeJn/ygXXAffR5I4N0n1IrvA6qBsjc8hXLmBiMV2zoXlifkacF7sEFnYnjBcqg==", + "license": "Apache-2.0", + "dependencies": { + "json-schema": "^0.4.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@ai-sdk/vercel/node_modules/@ai-sdk/provider-utils": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-2.2.8.tgz", + "integrity": "sha512-fqhG+4sCVv8x7nFzYnFo19ryhAa3w096Kmc3hWxMQfW/TubPOmt3A6tYZhl4mUfQWWQMsuSkLrtjlWuXBVSGQA==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider": "1.1.3", + "nanoid": "^3.3.8", + "secure-json-parse": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.23.8" + } + }, "node_modules/@ai-sdk/vue": { "version": "0.0.59", "resolved": "https://registry.npmjs.org/@ai-sdk/vue/-/vue-0.0.59.tgz", diff --git a/package.json b/package.json index 17c8f082..f7f784e3 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "@ai-sdk/google-vertex": "^2.2.3", "@ai-sdk/mistral": "^1.0.1", "@ai-sdk/openai": "^1.3.15", + "@ai-sdk/vercel": "^0.0.1", "@e2b/code-interpreter": "^1.0.2", "@radix-ui/react-avatar": "^1.1.0", "@radix-ui/react-dialog": "^1.1.1",