> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ai-stats.phaseo.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Generate Text (AI SDK)

> Non-streaming text generation with Vercel AI SDK and AI Stats.

Use `generateText` with `aiStats(modelId)` for one-shot completions.

```ts theme={null}
import { aiStats } from "@ai-stats/ai-sdk-provider";
import { generateText } from "ai";

const result = await generateText({
  model: aiStats("openai/gpt-5-nano"),
  prompt: "Write a concise summary of AI Stats Gateway.",
});

console.log(result.text);
console.log(result.providerMetadata);
```

## With chat history

```ts theme={null}
import { aiStats } from "@ai-stats/ai-sdk-provider";
import { generateText } from "ai";

const result = await generateText({
  model: aiStats("openai/gpt-5-nano"),
  messages: [
    { role: "system", content: "You are a terse assistant." },
    { role: "user", content: "Give me three bullet points on retrieval augmentation." },
  ],
});

console.log(result.text);
console.log(result.providerMetadata);
```

## Per-model settings

```ts theme={null}
import { aiStats } from "@ai-stats/ai-sdk-provider";
import { generateText } from "ai";

const result = await generateText({
  model: aiStats("openai/gpt-5-nano", {
    temperature: 0.2,
    topP: 0.9,
    maxTokens: 300,
  }),
  prompt: "Draft a release note for an API update.",
});

console.log(result.text);
console.log(result.providerMetadata);
```

## Prompt vs messages

* Use `prompt` for quick single-turn requests.
* Use `messages` for multi-turn context and role control.
* Keep model IDs dynamic by querying `/v1/gateway/models` (see [Model Discovery](/v1/sdk-reference/sdk/get-models)).
