Costruisci app Next.js e React basate su AI con Venice AI e Vercel AI SDK
Il Vercel AI SDK è il modo più popolare per costruire funzionalità AI in app Next.js, React, Svelte e Vue. Venice funziona out-of-the-box come provider compatibile con OpenAI.
Crea un provider Venice usando l’adapter compatibile 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() per garantire la compatibilità con l'endpoint chat completions di Veniceexport const venice = (modelId: string) => openai.chat(modelId);
Usare .chat() garantisce che le richieste vadano all’endpoint /chat/completions di Venice. La sintassi predefinita openai('model') può usare endpoint OpenAI più recenti che Venice non supporta ancora.
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 }) => { // La tua chiamata API meteo qui 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?' }], // Parametri specifici di Venice experimental_providerMetadata: { venice_parameters: { enable_web_search: 'auto', }, },});
Se experimental_providerMetadata non viene passato, puoi usare un wrapper fetch personalizzato o chiamare direttamente l’API Venice per le funzionalità di web search.