LocalMode
Core

Summarization

Summarize text with configurable length controls.

Generate concise summaries of text using provider-agnostic summarization models. Works with any provider that implements the SummarizationModel interface.

See it in action

Try the Text Summarizer block and Audio Studio block for working demos of these APIs.

summarize()

Summarize a single text:

import { summarize } from '@localmode/core';
import { transformers } from '@localmode/transformers';

const model = transformers.summarizer('Xenova/distilbart-cnn-6-6');

const { summary, usage, response } = await summarize({
  model,
  text: 'A long article about machine learning and its impact on modern technology...',
});

console.log(summary);
console.log(usage.durationMs); // 250
const { summary } = await summarize({
  model,
  text: longArticle,
  maxLength: 100,
  minLength: 30,
});
const controller = new AbortController();

setTimeout(() => controller.abort(), 10000);

const { summary } = await summarize({
  model,
  text: longArticle,
  abortSignal: controller.signal,
});

SummarizeOptions

Prop

Type

SummarizeResult

Prop

Type

summarizeMany()

Summarize multiple texts:

import { summarizeMany } from '@localmode/core';

const { summaries } = await summarizeMany({
  model,
  texts: [article1, article2, article3],
  maxLength: 100,
  minLength: 30,
});

summaries.forEach((s) => console.log(s));

Custom Provider

Implement the SummarizationModel interface:

import type { SummarizationModel, DoSummarizeOptions, DoSummarizeResult } from '@localmode/core';

class MySummarizer implements SummarizationModel {
  readonly modelId = 'custom:my-summarizer';
  readonly provider = 'custom';

  async doSummarize(options: DoSummarizeOptions): Promise<DoSummarizeResult> {
    const { texts, maxLength, minLength } = options;

    // Your summarization logic here
    const summaries = texts.map((text) => text.slice(0, maxLength ?? 150));

    return {
      summaries,
      usage: { inputTokens: texts.join('').length, outputTokens: summaries.join('').length, durationMs: 0 },
    };
  }
}

For recommended models, provider-specific options, and practical recipes, see the Transformers Summarization guide.

Next Steps

Blocks

AppDescriptionLinks
Writing Tools (Text Summarizer)Summarize articles and documentsLive block · Source
Audio Studio (Meeting Assistant)Summarize transcribed meeting recordingsLive block · Source
Writing Tools (Smart Writer)Summarize and rewrite contentLive block · Source

On this page