Skip to main content
The Vercel AI SDK provides powerful functions for text generation and streaming. Below are details and examples for implementing these functions.

Text Generation

Use generateText() for standard, non-streaming responses.
import { generateText } from 'ai';
import { openai, MODEL } from './client';

async function generateGreeting() {
  const response = await generateText({
    model: openai(MODEL),
    prompt: 'Explain quantum computing in one sentence.',
  });

  console.log(response.text);
}

Streaming Responses

Use streamText() to stream tokens as they are generated.
import { streamText } from 'ai';
import { openai, MODEL } from './client';

async function streamResponse() {
  const result = await streamText({
    model: openai(MODEL),
    prompt: 'Write a poem about a software engineer.',
  });

  for await (const chunk of result.textStream) {
    process.stdout.write(chunk);
  }
}
Streaming improves perceived latency and is recommended for chat interfaces.

System Prompts & Parameters

You can customize model behavior using a system prompt and generation parameters.

Supported Parameters

model
LanguageModel
required
The model instance to use for generation.
prompt
string
The text prompt to generate a response for. Either prompt or messages is required.
system
string
System instructions to guide the model’s behavior.
temperature
number
Controls randomness. Lower values produce more deterministic responses.
maxTokens
number
Maximum number of tokens generated.
topP
number
Nucleus sampling probability.
topK
number
Limits sampling to the top K probable tokens.
presencePenalty
number
Encourages introducing new topics.
frequencyPenalty
number
Reduces repeated words or phrases.
seed
number
Produces deterministic outputs when supported.
stopSequences
string[]
Stops generation when one of the specified sequences is encountered.

Error Handling

Wrap SDK calls in a try...catch block to handle API errors, validation failures, and authentication issues.
import { generateText } from 'ai';
import { openai, MODEL } from './client';

async function safeGenerate() {
  try {
    const response = await generateText({
      model: openai(MODEL),
      prompt: 'Hello!',
      temperature: -1,
    });

    console.log(response.text);
  } catch (error: any) {
    console.error('Error:', error.name);
    console.error(error.message);
  }
}
Common errors include:
  • Invalid API key
  • Incorrect endpoint URL
  • Unsupported model
  • Invalid request parameters
  • Rate limits