概述
LlamaIndex 是一个开源框架,旨在帮助开发者构建基于 LLM 的智能体应用。其核心目标是解决如何将私有数据与 LLM 结合,即数据增强问题。该项目由 LlamaIndex 公司维护,该公司同时推出了 LlamaParse 企业级文档智能体平台。
主要能力
- 数据连接器:支持从 API、PDF、文档、SQL 等多种数据源和格式摄入数据。
- 数据索引:提供索引、图等结构,使数据易于被 LLM 使用。
- 检索与查询:提供高级检索/查询接口,可输入任意 LLM 提示,返回检索到的上下文和知识增强的输出。
- 集成扩展:可轻松与外部应用框架(如 LangChain、Flask、Docker、ChatGPT 等)集成。
- 多层级 API:高级 API 允许初学者用约 5 行代码完成数据摄入和查询;低级 API 允许高级用户自定义和扩展模块(数据连接器、索引、检索器、查询引擎、重排序模块等)。
使用方式
在 Python 中构建 LlamaIndex 应用有两种方式:
- Starter:使用
llama-index包,包含核心及精选集成。 - Customized:安装
llama-index-core并按需添加集成包。
LlamaIndex 核心包命名空间:导入语句包含 core 表示使用核心包;不包含则使用集成包。
默认数据存储在内存中。持久化到磁盘(./storage 目录)并重新加载可通过相应 API 实现。
LlamaParse 可独立使用,也可与 LlamaIndex 框架结合。其功能包括 Parse(解析)、Extract(结构化提取)、Index(摄入与 RAG)、Split(文档拆分)、Agents(通过 Workflows 和 Agent Builder 构建端到端文档智能体)。
适用场景
- 构建 RAG(检索增强生成)应用。
- 构建数据增强的 LLM 应用。
- 处理需要从复杂文档中提取上下文的场景,如企业文档自动化。
- 需要集成多种数据源和 LLM 提供商的开发项目。
限制与说明
- 文档和 README 可能更新不及时,建议查阅官方文档获取最新信息。
- 新集成需与现有 LlamaIndex 框架组件有意义地集成,可能被拒绝。
- 默认存储为内存,需手动持久化。
- 包含的
_static文件夹提供 nltk 和 tiktoken 缓存,用于受限磁盘访问环境;可通过 GitHub 证明验证其安全性。 - 若在论文中使用 LlamaIndex,需引用指定文献。
- 更多详细信息请参考官方文档。