use anyhow::Result; use async_trait::async_trait; use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct EmbeddingRequest { pub input: Vec, pub model: String, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct EmbeddingResponse { pub data: Vec, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct EmbeddingData { pub embedding: Vec, } #[async_trait] pub trait EmbeddingCapable { async fn create_embeddings( &self, session_id: &str, texts: Vec, ) -> Result>>; }