kbolt-core 0.1.1

Core engine for kbolt local-first retrieval
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use crate::Result;

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub(crate) enum EmbeddingInputKind {
    Query,
    Document,
}

pub(crate) trait Embedder: Send + Sync {
    fn embed_batch(&self, kind: EmbeddingInputKind, texts: &[String]) -> Result<Vec<Vec<f32>>>;
}

pub(crate) trait EmbeddingDocumentSizer: Send + Sync {
    fn count_document_tokens(&self, text: &str) -> Result<usize>;
}