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 wire-compatible BM25 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
10/// Host-agnostic `Embedder` trait, joint embedding output, and error helpers.
11pub mod embedder;
12/// AST rewriting: resolve `TEXT` inputs to vectors via the configured embedder.
13pub mod resolve;
14pub mod sparse;
15pub mod topology;
16
17#[cfg(test)]
18mod resolve_test;
19#[cfg(test)]
20mod sparse_test;
21
22pub use embedder::{
23 cross_rerank_unsupported_error, image_unsupported_error, multi_unsupported_error,
24 sparse_model_unsupported_error, Embedder, EmbedderBound, JointEmbeddingOutput, SparseEmbedder,
25};
26pub use resolve::{resolve_embeddings, DENSE_VECTOR_NAME, SPARSE_VECTOR_NAME};
27pub use sparse::SparseVector;
28pub use topology::{
29 query_needs_kind_resolution, resolve_query_vector_kinds, resolve_query_vector_kinds_simple,
30 TopologyNames,
31};