Vercel AI SDK
Installation
Section titled “Installation”npm install ai truvalBasic tool definition
Section titled “Basic tool definition”import { tool } from 'ai'import { z } from 'zod'
export const verifyEmailTool = tool({ description: 'Verify if an email address is real and deliverable. Returns valid status, confidence score, and whether the address is disposable or a role address.', parameters: z.object({ email: z.string().email().describe('The email address to verify'), }), execute: async ({ email }) => { const res = await fetch('https://api.truval.dev/v1/email/verify', { method: 'POST', headers: { Authorization: `Bearer ${process.env.TRUVAL_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ email }), }) return res.json() },})Using with generateText
Section titled “Using with generateText”import { generateText } from 'ai'import { openai } from '@ai-sdk/openai'
const result = await generateText({ model: openai('gpt-4o'), tools: { verifyEmail: verifyEmailTool }, maxSteps: 3, prompt: 'Is user@example.com a valid email address?',})
console.log(result.text)Using in a Next.js API route
Section titled “Using in a Next.js API route”import { streamText } from 'ai'import { openai } from '@ai-sdk/openai'import { verifyEmailTool } from '@/lib/tools'
export async function POST(req: Request) { const { messages } = await req.json()
const result = streamText({ model: openai('gpt-4o'), tools: { verifyEmail: verifyEmailTool }, maxSteps: 5, messages, })
return result.toDataStreamResponse()}Environment variables
Section titled “Environment variables”TRUVAL_API_KEY=sk_live_...Get your API key at dash.truval.dev.