Skip to content

查询管道#

概念#

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

这围绕着我们的 QueryPipeline 抽象展开。加载各种模块(从LLMs到提示符到检索器到其他管道),将它们连接成一个顺序链或有向无环图(DAG),然后端对端地运行。

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

  • 用更少的代码/样板表达常见的工作流程
  • 更易读
  • 更高的平行性/更好地集成常见的低代码/无代码解决方案(例如 LangFlow)
  • 【未来】声明式接口允许轻松序列化管道组件,提供管道的可移植性/更容易部署到不同的系统。

我们的查询管道还会在所有子模块中传播回调,并与我们的可观察性合作伙伴集成。

要查看 QueryPipeline 的交互式示例,请查看RAG CLI

使用模式#

以下是设置查询管道的两种简单方式 - 通过简化的语法设置顺序链和设置完整的计算 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 端到端指南,了解在数据上设置编排的标准到高级方式。