lotus-data/lotus
Optimized Agentic and LLM Bulk Processing Over Your Data
LOTUS – 优化的代理与 LLM 大规模处理
它是什么 – LOTUS 是一个 Python 库(在 PyPI 上为 lotus-ai),让您可以在大型文本数据集上执行“语义算子”——即 LLM 驱动的 map、filter、reduce、join 等。该库内置一个优化器,可批处理调用、级联模型并延迟规划管线,让您在降低 API 调用成本的同时获得更高的准确性。
核心概念
- 语义算子 – 高阶、声明式的原语,描述您想要的内容(例如“从每篇论文中提取标题”),并让 LLM 进行转换。
- 代理算子 – 一种特殊类别,在每个分片上执行一个使用工具的代理(带有沙盒 Python REPL),适用于需要代码执行或多步推理的复杂或模糊任务。
- 优化器 – 自动决定如何批处理、级联和调度 LLM 调用,从而降低成本并提高结果质量。
典型使用案例
- 代码库分析或安全扫描(对每个文件执行代理,然后归纳为错误报告)。
- 大规模研究综合(搜索语料库、提取关键点并生成摘要)。
- 从代理日志中挖掘故障模式。
- 从非结构化文档中进行结构化提取。
- 对模型输出进行逐行的 LLM 作为评委评估。
- 针对私人数据进行检索增强生成 (RAG)。
如何使用(来自 README)
import lotus
from lotus.models import LM
from lotus.tools import PythonREPLTool
lotus.settings.configure(lm=LM(model="gpt-5", reasoning_effort="low"))
snippets = [
"def average(nums): return sum(nums) / (len(nums) - 1)",
"def word_count(s): return len(s.split())",
"def percent(part, whole): return part / whole",
"def reverse(s): return s[::-1]",
]
corpus = lotus.Corpus.from_documents(snippets)
result = corpus.agent(
task="Test each function on example inputs and report which ones are buggy, with a counterexample for each bug.",
ops=["map", "reduce"],
tools=[PythonREPLTool()],
)
print(result.output)
该代码片段展示了三个步骤:创建 Corpus、描述任务,并使用语义算子列表和选用工具调用 agent。
安装
pip install lotus-ai(或uv add lotus-ai)。- 获取最新代码:
pip install git+https://github.com/lotus-data/lotus.git@main。
文档与社区
- 完整文档请见 https://lotus-ai.readthedocs.io。
- Colab 演示、Discord 服务器以及
examples/下的一组示例脚本。 - 该项目由斯坦福大学和加州大学伯克利分校的研究人员支持,并引用了三篇同行评审论文 (arXiv 2407.11418, VLDB 2025, IEEE Data Engineering 2026)。
谁适合使用 数据科学家、ML 工程师或研究团队,他们需要在数千到数百万条文本记录上应用 LLM 推理,而无需为每个 API 调用编写自定义循环。LOTUS 抽象化了编排过程,让您专注于工作的“语义”描述,并在底层处理成本感知执行。
相关
- 项目
- 项目
- 项目
- 项目