Construa apps Next.js e React com IA usando Venice AI e o Vercel AI SDK
O Vercel AI SDK é a maneira mais popular de construir recursos de IA em apps Next.js, React, Svelte e Vue. A Venice funciona imediatamente como um provedor compatível com OpenAI.
Crie um provedor Venice usando o adaptador compatível com 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',});// Use .chat() para garantir compatibilidade com o endpoint de chat completions da Veniceexport const venice = (modelId: string) => openai.chat(modelId);
Usar .chat() garante que as requisições vão para o endpoint /chat/completions da Venice. A sintaxe padrão openai('model') pode usar endpoints mais novos da OpenAI que a Venice ainda não suporta.
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 }) => { // Sua chamada de API de clima aqui 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 da Venice experimental_providerMetadata: { venice_parameters: { enable_web_search: 'auto', }, },});
Se experimental_providerMetadata não passar adiante, você pode usar um wrapper de fetch personalizado ou chamar a API Venice diretamente para recursos de busca na web.