← all repositories
lotus-data/lotus

Relational Algebra, But Make It Understand English

LOTUS extends DataFrames so you can filter, join, and aggregate unstructured data with plain English instead of brittle regex and glue scripts.

1.7k stars Python Data ToolingRAG · Search
lotus
Not currently ranked — collecting fresh signals.
star history

What it does

LOTUS is a Python framework that bolts LLM-powered operations onto Pandas-style DataFrames. It lets you filter rows, join tables, extract attributes, or rank results by writing English descriptions—sem_filter, sem_join, and friends—instead of custom regex or one-off scripts. The framework routes LLM calls through LiteLLM and can pull in embeddings or rerankers from SentenceTransformers when vector search is cheaper than generation.

The interesting bit

The authors frame this as “semantic operators”: a deliberate attempt to port relational algebra into the unstructured era. You declare what you want in natural language and the engine decides how to execute, optimize, and approximate—complete with advertised accuracy guarantees against reference implementations.

Key highlights

  • Pandas-native feel: operators like sem_map, sem_agg, sem_topk, and sem_sim_join extend DataFrames rather than replacing them
  • Optimization layer: the README claims algorithms for up to 1000× speedups and accuracy guarantees relative to high-quality reference implementations, though specific benchmarks are not shown
  • Model-agnostic backends: LLMs via LiteLLM (OpenAI, Ollama, vLLM, etc.), retrieval models via SentenceTransformers, plus cross-encoder rerankers
  • Multimodal scope: handles text, images, and structured fields in the same pipeline
  • Research-backed: born out of a Stanford-affiliated group with an arXiv paper (2407.11418)

Caveats

  • macOS users need to manually install FAISS via Conda unless they use uv, so native dependencies can bite
  • The README touts dramatic speedups and accuracy guarantees but does not include reproducible benchmarks or detailed methodology in the provided text

Verdict

Data engineers and ML practitioners who currently maintain brittle Python glue scripts to clean, label, or join unstructured datasets will feel right at home. If your pipelines are already pure structured SQL with no text or images to reason over, this is overkill.

Frequently asked

What is lotus-data/lotus?
LOTUS extends DataFrames so you can filter, join, and aggregate unstructured data with plain English instead of brittle regex and glue scripts.
Is lotus open source?
Yes — lotus-data/lotus is open source, released under the Apache-2.0 license.
What language is lotus written in?
lotus-data/lotus is primarily written in Python.
How popular is lotus?
lotus-data/lotus has 1.7k stars on GitHub.
Where can I find lotus?
lotus-data/lotus is on GitHub at https://github.com/lotus-data/lotus.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.