kaiba 0.5.0

Kaiba domain library - Core types and interfaces for AI persona system
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//! Embedding Service Port
//!
//! Abstract interface for text embedding generation.

use async_trait::async_trait;

use crate::domain::errors::DomainError;

/// Service interface for generating text embeddings
#[async_trait]
pub trait EmbeddingService: Send + Sync {
    /// Generate embedding vector for text
    async fn embed(&self, text: &str) -> Result<Vec<f32>, DomainError>;

    /// Generate embeddings for multiple texts
    async fn embed_batch(&self, texts: &[String]) -> Result<Vec<Vec<f32>>, DomainError>;
}