跳到内容

查询管道#

警告

查询管道最近已进入功能冻结/弃用阶段。如果您想协调模块,我们建议查看工作流

概念#

LlamaIndex 提供了一个声明式查询 API,允许您将不同的模块链接在一起,以便协调数据上的简单到高级工作流。

这以我们的 QueryPipeline 抽象为中心。加载各种模块(从 LLM 到提示词,从检索器到其他管道),将它们全部连接成顺序链或 DAG,并端到端运行。

注意:您可以在不使用声明式管道抽象的情况下(通过命令式使用模块并编写自己的函数)协调所有这些工作流。那么 QueryPipeline 的优点是什么?

  • 用更少的代码行/样板表达常见工作流
  • 更高的可读性
  • 与常见的低代码/无代码解决方案(例如 LangFlow)具有更高的对等性/更好的集成点
  • [将来] 声明式接口允许轻松序列化管道组件,从而提供管道的可移植性/更轻松地部署到不同的系统。

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

要查看 QueryPipeline 实际使用的交互式示例,请查看RAG CLI

使用模式#

这里有两种设置查询管道的简单方法——从设置顺序链的简化语法到设置完整计算 DAG。

from llama_index.core.query_pipeline import QueryPipeline

# sequential chain
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")

# run pipeline
p.run(prompt_key1="<input1>", ...)

更多信息可以在下面的使用模式指南中找到。

模块指南#

查看我们的 QueryPipeline 端到端指南,了解设置数据协调的标准到高级方法。