logo
LlamaIndex 框架指南
AI Engineer

LlamaIndex 框架指南

LlamaIndex 是专注于数据索引和检索的 LLM 框架,特别适合构建 RAG 应用。

LlamaIndex 框架指南查询引擎

LlamaIndex 查询与检索 (Querying)

一旦你建立了索引,下一步就是通过“查询引擎”来获取答案。LlamaIndex 提供了从基础到高阶的多种查询模式。

#1. 查询引擎 (Query Engine)

查询引擎是一个端到端的接口,它接收一个字符串问题,并返回一个 Response 对象。

python
query_engine = index.as_query_engine() response = query_engine.query("请总结本文档。") print(response.response) # 文本答案 print(response.source_nodes) # 答案来源的原始节点

#2. 检索器 (Retriever) - 核心组件

如果你不需要 LLM 生成最终答案,只需要找出相关的文本片段,你可以直接使用检索器。

python
retriever = index.as_retriever(similarity_top_k=3) nodes = retriever.retrieve("什么是向量数据库?")

#3. 高级查询模式

#A. 对话引擎 (Chat Engine)

与查询引擎不同,对话引擎具有 Memory,可以进行多轮对话。

python
chat_engine = index.as_chat_engine() response = chat_engine.chat("你好,我叫小明") response = chat_engine.chat("我刚才说我叫什么?")

#B. 路由查询 (Router Query Engine)

如果你有多个索引(比如一个文档索引和一个总结索引),路由引擎可以自动判断应该去哪个索引里找答案。

#C. 子问题查询 (Sub-Question Query Engine)

对于复杂问题(如:对比 A 公司和 B 公司的财务报表),该引擎会将其拆解为多个子问题,分别查询后再汇总。

#4. 检索优化技巧 (RAG 进阶)

LlamaIndex 最强大的地方在于它内置了许多先进的检索策略:

  • Metadata Filtering: 仅检索特定日期或分类的文件。
  • Re-ranking (重排序):先初步检索 20 个片段,再用一个更精准的模型(如 Cohere Rerank)选出最相关的 3 个。这能极大提升答案质量。
  • Hybrid Search: 结合向量搜索(语义)和关键词搜索(精准匹配)。

#5. 结构化输出

你可以要求查询引擎直接返回 JSON 或 Pydantic 对象,方便下游程序处理。

python
from pydantic import BaseModel class Info(BaseModel): name: str amount: float query_engine = index.as_query_engine(output_cls=Info)

总结:LlamaIndex 提供了目前业界最专业的 RAG 检索链路。如果你的应用对回答的准确性要求极高,你应该深挖它的检索优化功能。

相关路线图