Skip to content

查询管道#

Warning

查询管道功能目前已进入特性冻结/弃用阶段。如需编排模块,建议改用工作流

概念#

LlamaIndex 提供声明式查询 API,允许将不同模块串联起来,从而在数据上编排从简单到复杂的工作流。

该功能围绕我们的 QueryPipeline 抽象实现。您可以加载各类模块(从 LLM 到提示词,从检索器到其他管道),将它们连接成顺序链或 DAG(有向无环图),并端到端地运行整个流程。

注意:您也可以不使用声明式管道抽象来编排这些工作流(通过命令式使用模块并编写自定义函数)。那么 QueryPipeline 的优势何在?

  • 用更少的代码/样板表达常见工作流
  • 更高的可读性
  • 更好的兼容性/与常见低代码/无代码解决方案(如 LangFlow)的集成点
  • [未来] 声明式接口便于序列化管道组件,实现管道可移植性/更轻松部署到不同系统

我们的查询管道还会在所有子模块间传播回调函数,这些回调与我们的可观测性合作伙伴集成。

要查看 QueryPipeline 的实际交互示例,请参阅 RAG 命令行工具

使用模式#

以下是两种设置查询管道的简单方法——从建立顺序链的简化语法到构建完整计算 DAG。

from llama_index.core.query_pipeline import QueryPipeline

# 顺序链
p = QueryPipeline(chain=[prompt_tmpl, llm], verbose=True)

# DAG
p = QueryPipeline(verbose=True)
p.add_modules({"prompt_tmpl": prompt_tmpl, "llm": llm})
p.add_link("prompt_tmpl", "llm")

# 运行管道
p.run(prompt_key1="<input1>", ...)

更多信息请参阅以下使用模式指南:

模块指南#

查看我们的 QueryPipeline 端到端指南,学习从标准到高级的数据编排方法。