Skip to main content

vtcode_core/compaction/
summarizer.rs

1use crate::llm::provider::{LLMProvider, LLMRequest, Message};
2use anyhow::{Context, Result};
3
4/// Summarize the provided text using the configured provider.
5pub async fn summarize_text(
6    provider: &dyn LLMProvider,
7    model: &str,
8    prompt: &str,
9) -> Result<String> {
10    let request = LLMRequest {
11        messages: vec![Message::user(prompt.to_string())],
12        model: model.to_string(),
13        ..Default::default()
14    };
15
16    let response = provider
17        .generate(request)
18        .await
19        .context("Failed to generate summary")?;
20    Ok(response.content.unwrap_or_default())
21}