Transmite chat completions de Venice en apps Next.js y React con el proveedor compatible con OpenAI del Vercel AI SDK en producción.
El Vercel AI SDK es la forma más popular de construir funciones de IA en aplicaciones Next.js, React, Svelte y Vue. Venice funciona out of the box como proveedor compatible con OpenAI.
Crea un proveedor de Venice usando el adaptador compatible con OpenAI:
// lib/venice.tsimport { createOpenAI } from '@ai-sdk/openai';const openai = createOpenAI({ apiKey: process.env.VENICE_API_KEY!, baseURL: 'https://api.venice.ai/api/v1',});// Usa .chat() para asegurar la compatibilidad con el endpoint chat completions de Veniceexport const venice = (modelId: string) => openai.chat(modelId);
Usar .chat() garantiza que las solicitudes vayan al endpoint /chat/completions de Venice. La sintaxis predeterminada openai('model') puede usar endpoints más nuevos de OpenAI que Venice aún no admite.
import { streamText, tool } from 'ai';import { venice } from '@/lib/venice';import { z } from 'zod';const result = streamText({ model: venice('zai-org-glm-5-1'), messages: [{ role: 'user', content: 'What is the weather in Tokyo?' }], tools: { getWeather: tool({ description: 'Get current weather for a location', parameters: z.object({ location: z.string().describe('City name'), }), execute: async ({ location }) => { // Tu llamada a la API del tiempo aquí return { temperature: 22, condition: 'Sunny', location }; }, }), },});for await (const part of result.fullStream) { if (part.type === 'text-delta') { process.stdout.write(part.textDelta); } else if (part.type === 'tool-result') { console.log('Tool result:', part.result); }}
import { streamText } from 'ai';import { venice } from '@/lib/venice';const result = streamText({ model: venice('venice-uncensored'), messages: [{ role: 'user', content: 'What happened in AI news today?' }], // Parámetros específicos de Venice experimental_providerMetadata: { venice_parameters: { enable_web_search: 'auto', }, },});
Si experimental_providerMetadata no pasa, puedes usar un wrapper de fetch personalizado o llamar directamente a la API de Venice para las funciones de búsqueda web.