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");
}
recommended_models
pub fn recommended_models() -> Vec<&'static str>
Get recommended summarization models.
Returns a curated list of models known to work well for summarization.
recommended_summarization_models
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: