kernelx_core/capabilities/
vision.rs

1use crate::{capabilities::HasCapability, models::ModelConfig, Result};
2use async_trait::async_trait;
3
4#[async_trait]
5pub trait Vision: HasCapability {
6    async fn caption(&self, image: &[u8], prompt: &str) -> Result<String> {
7        self.caption_impl(self.model_id(), image, prompt, self.config())
8            .await
9    }
10
11    #[doc(hidden)]
12    async fn caption_impl(
13        &self,
14        model: &str,
15        image: &[u8],
16        prompt: &str,
17        config: &ModelConfig,
18    ) -> Result<String>;
19}