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/openaibash
pnpm add ai @ai-sdk/openaibash
yarn add ai @ai-sdk/openaibash
bun add ai @ai-sdk/openaijs
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
- Source:
src/recipes/compress/index.ts