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 Text Summarizer and Meeting Assistant 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

Showcase Apps

AppDescriptionLinks
Text SummarizerSummarize articles and documentsDemo · Source
Meeting AssistantSummarize transcribed meeting recordingsDemo · Source
Smart WriterSummarize and rewrite contentDemo · Source

On this page