vidsage-core 0.1.0

Core functionality for VidSage video processing and AI commentary generation
Documentation
//! Commentary generator traits

use super::{Commentary, CommentaryInput, CommentaryOutput, CommentaryStyle};
use crate::Result;

/// Trait for AI commentary generation functionality
#[async_trait::async_trait]
pub trait CommentaryGenerator {
    /// Generate commentary for a video based on its metadata
    async fn generate_commentary(&self, input: CommentaryInput) -> Result<CommentaryOutput>;

    /// Evaluate the quality of a generated commentary
    async fn evaluate_commentary(&self, commentary: &Commentary) -> Result<f64>;

    /// Improve an existing commentary
    async fn improve_commentary(
        &self,
        commentary: &Commentary,
        feedback: &str,
    ) -> Result<Commentary>;

    /// Generate multiple commentaries with different styles
    async fn generate_multiple(
        &self,
        input: CommentaryInput,
        styles: Vec<CommentaryStyle>,
    ) -> Result<Vec<CommentaryOutput>>;
}