# WindowedConversationSummarizer



# Overview

Summarizes conversations after a fixed number of messages to keep the context window bounded.

## Type Definition

```ts
import type { SummarizationOptions, SummarizerInput, SummaryUpdate } from 'peam/server';

export declare class WindowedConversationSummarizer {
  constructor(options: SummarizationOptions);
  summarize(input: SummarizerInput): Promise<SummaryUpdate | null>;
}
```

## Usage

Create a summarizer and pass it to the chat runtime with [createChat](/docs/api-reference/server/create-chat):

```ts
import { createChat, WindowedConversationSummarizer } from 'peam/server';
import { openai } from '@ai-sdk/openai';

const summarizer = new WindowedConversationSummarizer({
  model: openai('gpt-4o'),
  maxMessages: 12,
});

export const POST = createChat({
  summarizer,
}).handler;
```

You can also pass summarization options directly and let [createChat](/docs/api-reference/server/create-chat) construct it:

```ts
import { createChat } from 'peam/server';
import { openai } from '@ai-sdk/openai';

export const POST = createChat({
  summarization: {
    model: openai('gpt-4o'),
    maxMessages: 12,
  },
}).handler;
```

## Notes

* Uses `maxMessages` with a default of 10.
* Used automatically by [DefaultChatRuntime](/docs/api-reference/server/default-chat-runtime) unless `summarization` is set to `false`.


## Sitemap
[Overview of all docs pages](/sitemap.md)
