查询管道#
警告
查询管道最近已进入功能冻结/弃用阶段。如果您想协调模块,我们建议查看工作流。
概念#
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
端到端指南,了解设置数据协调的标准到高级方法。