Vercel AI SDK guide
Vercel AI SDK compression integration
The Vercel AI SDK makes it easy to build streaming AI interfaces. Adding SuperCompress between the request and the SDK call cuts your token costs by ~65% with a few lines of middleware.
How compression fits into AI SDK routes
Vercel AI SDK routes receive a messages array and pass it to a streaming model call. The ideal place to compress is right in the route handler, before the messages reach the SDK's streaming function.
The compressor scores each message against the latest user query and removes low-value context. System messages and instructions are preserved intact.
TypeScript integration example
import { StreamingTextResponse } from "ai";
import OpenAI from "openai";
import { SuperCompress } from "supercompress";
export async function POST(req: Request) {
const { messages } = await req.json();
const compressor = new SuperCompress();
// Compress conversation history against the latest query
const latestQuery = messages[messages.length - 1].content;
const history = messages.slice(0, -1)
.map(m => `${m.role}: ${m.content}`)
.join("
");
const compressed = await compressor.compress(history, latestQuery);
// Rebuild messages with compressed history
const compressedMessages = [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: compressed.text },
messages[messages.length - 1]
];
const response = await openai.chat.completions.create({
model: "gpt-4o",
messages: compressedMessages,
stream: true,
});
return new StreamingTextResponse(response);
}
Frequently asked questions
Does compression work with AI SDK streaming?
Yes. Compress before calling the streaming function. The streamed response is unaffected.
What about tool calls in AI SDK?
The compressor preserves tool call content. Only low-value conversation history is compressed.
Try it yourself
Paste your long prompt into the playground, ask a question, and see what SuperCompress keeps and removes. Free, no signup needed.