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 抽象化了编排过程,让您专注于工作的“语义”描述,并在底层处理成本感知执行。

相关

  • 项目
  • 项目
  • 项目
  • 项目