kernelx_core/capabilities/
vision.rs1use 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}