Skip to content

Recipe: Compress (Summarize)

NOTE

Goal: Reduce text into a summary.

The Compress recipe focuses on summarizing input text. It's a simple, single-step recipe that uses a model to condense content.

flowchart LR
  Input([Text]) --> Summarize[Compress]
  Summarize --> Output([Summary])

1) Quick start

bash
npm install ai @ai-sdk/openai
bash
pnpm add ai @ai-sdk/openai
bash
yarn add ai @ai-sdk/openai
bash
bun add ai @ai-sdk/openai
js
import { recipes } from "@geekist/llm-core/recipes";
import { fromAiSdkModel } from "@geekist/llm-core/adapters";
import { openai } from "@ai-sdk/openai";

const compress = recipes.compress().defaults({
  adapters: { model: fromAiSdkModel(openai("gpt-4o-mini")) },
});

const outcome = await compress.run({ input: "Long text here..." });

if (outcome.status === "ok") {
  /** @type {any} */
  const artefact = outcome.artefact;
  console.log(artefact.compress?.summary);
}

The artefact contains compress.summary with the condensed text.


Implementation