Skip to main content

qql_embed/
lib.rs

1//! Shared embedding layer for QQL.
2//!
3//! - [`Embedder`] — host-agnostic dense/sparse API (batch dense by default when overridden)
4//! - [`resolve_embeddings`] — rewrite `QUERY` / `UPSERT` text into vectors on the AST
5//! - [`sparse`] — local BM25-style sparse vectors (no network)
6//!
7//! Used by `qql` (runtime HttpEmbedder), `qql-edge` (FastEmbedder), and `qql-wasm`
8//! (fetch / JS adapters). No Qdrant I/O and no HTTP client live here.
9
10pub mod embedder;
11pub mod resolve;
12pub mod sparse;
13pub mod topology;
14
15#[cfg(test)]
16mod resolve_test;
17#[cfg(test)]
18mod sparse_test;
19
20pub use embedder::{
21    cross_rerank_unsupported_error, image_unsupported_error, multi_unsupported_error,
22    sparse_model_unsupported_error, Embedder, EmbedderBound, JointEmbeddingOutput, SparseEmbedder,
23};
24pub use resolve::{resolve_embeddings, DENSE_VECTOR_NAME, SPARSE_VECTOR_NAME};
25pub use sparse::SparseVector;
26pub use topology::{
27    query_needs_kind_resolution, resolve_query_vector_kinds, resolve_query_vector_kinds_simple,
28    TopologyNames,
29};