LlamaIndex 深度解析
架构概览
LlamaIndex 的核心流程:数据加载 → 索引构建 → 查询执行。
数据源(文件/DB/API) → Documents → 索引(Vector/Tree/KG) → 查询引擎 → LLM → 回答
数据连接层
内置连接器
- 文件:PDF、Word、Markdown、CSV 等
- 数据库:SQL、MongoDB 等
- 云服务:S3、Google Drive、Notion、Slack
- 网页:爬虫、RSS
自定义连接器
通过 SimpleDirectoryReader、VectorStoreIndex 等扩展,可接入任意数据源。
索引类型
| 索引类型 | 说明 | 适用场景 |
|---|---|---|
| VectorStoreIndex | 向量索引 | 语义检索、RAG |
| TreeIndex | 树形结构 | 层次化文档、摘要 |
| KeywordTableIndex | 关键词索引 | 精确匹配 |
| KnowledgeGraphIndex | 知识图谱 | 实体关系查询 |
| ComposabilityGraphIndex | 组合索引 | 多源、多策略 |
查询引擎
- VectorIndexRetriever:向量检索 + 重排序
- ResponseSynthesizer:组装上下文并生成回答
- SubQuestionQueryEngine:子问题分解、并行检索、结果汇总
- RouterQueryEngine:根据问题类型路由到不同索引