Rust API reference · Kjarni 0.2.8

kjarni::summarizer

High-level summarization API.

Quick Start

use kjarni::summarizer;

// One-liner
let summary = summarizer::summarize("distilbart-cnn", &long_article).await?;

// Reusable instance
let s = Summarizer::new("distilbart-cnn").await?;
let summary = s.summarize(&article).await?;

Streaming

use futures::StreamExt;

let mut stream = summarizer.stream(&article).await?;
while let Some(chunk) = stream.next().await {
    print!("{}", chunk?);
}

Summarizer

pub struct Summarizer

High-level summarization API

new

pub async fn new(model: &str) -> SummarizerResult<Self>

Create a Summarizer with default settings.

builder

pub fn builder(model: &str) -> SummarizerBuilder

Create a builder for custom configuration.

summarize

pub async fn summarize(&self, text: &str) -> SummarizerResult<String>

Summarize text with default settings.

summarize_with_config

pub async fn summarize_with_config(&self, text: &str, overrides: &Seq2SeqOverrides) -> SummarizerResult<String>

Summarize with custom generation overrides.

stream

pub async fn stream(&self, text: &str) -> SummarizerResult<std::pin::Pin<Box<dyn Stream<Item = SummarizerResult<String>> + Send>>>

Stream summarization.

model_type

pub fn model_type(&self) -> ModelType

Get the model type.

model_name

pub fn model_name(&self) -> &str

Get the model's CLI name.

device

pub fn device(&self) -> Device

Get the device the model is running on.

generator

pub fn generator(&self) -> &Seq2SeqGenerator

Get a reference to the underlying generator.

SummarizerBuilder

pub struct SummarizerBuilder

Builder for configuring a Summarizer instance.

new

pub fn new(model: impl Into<String>) -> Self

Create a new builder for the specified model.

from_preset

pub fn from_preset(preset: &SummarizerPreset) -> Self

Create a builder from a preset.

min_length

pub fn min_length(mut self, len: usize) -> Self

Set minimum summary length.

max_length

pub fn max_length(mut self, len: usize) -> Self

Set maximum summary length.

num_beams

pub fn num_beams(mut self, n: usize) -> Self

Set the number of beams for beam search.

length_penalty

pub fn length_penalty(mut self, penalty: f32) -> Self

Set length penalty.

no_repeat_ngram_size

pub fn no_repeat_ngram_size(mut self, size: usize) -> Self

Set no-repeat n-gram size.

repetition_penalty

pub fn repetition_penalty(mut self, penalty: f32) -> Self

Set repetition penalty.

greedy

pub fn greedy(mut self) -> Self

Use greedy

device

pub fn device(mut self, device: KjarniDevice) -> Self

Set the device

cpu

pub fn cpu(self) -> Self

Use CPU

gpu

pub fn gpu(self) -> Self

Use GPU

with_context

pub fn with_context(mut self, context: Arc<WgpuContext>) -> Self

Provide a pre-created GPU context.

cache_dir

pub fn cache_dir(mut self, path: impl Into<PathBuf>) -> Self

Set the cache directory.

download_policy

pub fn download_policy(mut self, policy: DownloadPolicy) -> Self

Set the download policy.

offline

pub fn offline(mut self) -> Self

Never download models automatically.

quiet

pub fn quiet(mut self) -> Self

Suppress informational output.

build

pub async fn build(self) -> SummarizerResult<Summarizer>

Build the Summarizer instance.

SummarizerPreset

pub struct SummarizerPreset

Fields

  • pub name: &'static str,
  • pub model: &'static str,
  • pub architecture: &'static str,
  • pub default_min_length: usize,
  • pub default_max_length: usize,
  • pub recommended_device: KjarniDevice,
  • pub memory_mb: usize,
  • pub description: &'static str,

SummarizerError

pub enum SummarizerError

Errors that can occur during summarization.

Variants

  • UnknownModel(String),: Unknown model name.
  • IncompatibleModel: Model incompatible with summarization.
  • SummarizationFailed(#[source] anyhow::Error),: Summarization failed.
  • Seq2Seq(#[from] Seq2SeqError),: Underlying seq2seq error.

SummarizerResult

pub type SummarizerResult<T> = Result<T, SummarizerError>

Result type for summarization operations.

SummarizerTier

pub enum SummarizerTier

Variants

  • Fast,
  • Balanced,
  • Quality,

resolve

pub fn resolve(&self) -> &'static SummarizerPreset

available_models

pub fn available_models() -> Vec<&'static str>

List available summarization models.

Example

for model in kjarni::summarizer::available_models() {
    println!("{}", model);
}

get_summarization_models

pub fn get_summarization_models() -> Vec<&'static str>

Get all available summarization models.

is_summarization_model

pub fn is_summarization_model(model: &str) -> SummarizerResult<()>

Check if a model can be used for summarization.

Returns Ok(()) if valid, or an error describing why not.

Example

if kjarni::summarizer::is_summarization_model("distilbart-cnn").is_ok() {
    println!("Model is valid for summarization");
}
pub fn recommended_models() -> Vec<&'static str>

Get recommended summarization models.

Returns a curated list of models known to work well for summarization.

pub fn recommended_summarization_models() -> Vec<&'static str>

Get recommended models for summarization.

summarize

pub async fn summarize(model: &str, text: &str) -> SummarizerResult<String>

Summarize text with default settings.

Example

let summary = kjarni::summarizer::summarize("distilbart-cnn", &article).await?;

summarize_preset

pub async fn summarize_preset(preset: &SummarizerPreset, text: &str) -> SummarizerResult<String>

Summarize using a preset.

Example

use kjarni::summarizer::presets::SUMMARIZER_FAST_V1;

let summary = summarize_preset(&SUMMARIZER_FAST_V1, &article).await?;

summarize_tier

pub async fn summarize_tier(tier: SummarizerTier, text: &str) -> SummarizerResult<String>

Summarize using a tier.

Example

use kjarni::summarizer::SummarizerTier;

let summary = summarize_tier(SummarizerTier::Fast, &article).await?;

validate_for_summarization

pub fn validate_for_summarization(model_type: ModelType) -> SummarizerResult<()>

Validate that a model can be used for summarization.

summarizer::presets

ALL_V1_PRESETS

pub const ALL_V1_PRESETS: &[&SummarizerPreset] = &[ &SUMMARIZER_FAST_V1, &SUMMARIZER_QUALITY_V1, &SUMMARIZER_T5_V1, ]

SUMMARIZER_FAST_V1

pub const SUMMARIZER_FAST_V1: SummarizerPreset = SummarizerPreset

Fast summarization with DistilBART.

SUMMARIZER_QUALITY_V1

pub const SUMMARIZER_QUALITY_V1: SummarizerPreset = SummarizerPreset

High-quality summarization with BART Large.

SUMMARIZER_T5_V1

pub const SUMMARIZER_T5_V1: SummarizerPreset = SummarizerPreset

General-purpose with FLAN-T5.

find_preset

pub fn find_preset(name: &str) -> Option<&'static SummarizerPreset>

Find a preset by name.

Kjarni runs the same engine on every platform: