查询管道#
警告
查询管道(Query Pipelines)目前已进入功能冻结/废弃阶段。如果您想编排模块,我们建议查看工作流(workflows)。
概念#
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
端到端指南,学习从标准到高级的方法来设置数据编排。