LlamaIndex
用于构建基于私有数据的检索、索引与文档智能应用的 Python 框架。
- Star 数
- ★ 53k
- 最近更新
- 2 天前
- License
- MIT
- 主语言
- Python
- FA 评分
- 48/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- Python 开发者需要让问答应用检索某个本地文档目录中的内容,可用
SimpleDirectoryReader与VectorStoreIndex建立并查询索引。 - 不适合
- 只想用现成文档解析产品、不想写 Python 代码的用户
- 需要长期稳定、与文档同步更新的框架支持的企业
这个 Agent 能做什么,适合哪些场景?
LlamaIndex OSS 是一个用于构建 agentic 应用的开源 Python 框架,重点处理让 LLM 使用私有数据的问题。其核心包为 llama-index-core,并通过独立集成包连接 LLM、嵌入模型和向量存储提供商;README 称可选集成超过 300 个。框架提供数据连接器、索引和图结构,以及检索与查询接口,可把检索到的上下文用于生成知识增强的输出。示例展示了 SimpleDirectoryReader 读取本地目录、VectorStoreIndex.from_documents 建索引,以及 index.as_query_engine().query() 发起查询。LlamaParse 是独立的平台,提供 Parse、Extract、Index、Split 和 Agents 等文档处理相关产品,可与该框架结合使用,也可单独使用。
应用可安装 llama-index-core 及所需集成包,例如 llama-index-llms-openai、llama-index-llms-ollama 和 llama-index-embeddings-huggingface。SimpleDirectoryReader("YOUR_DATA_DIRECTORY").load_data() 从指定本地目录加载文档;VectorStoreIndex.from_documents(documents) 根据文档创建向量索引。查询时,index.as_query_engine() 生成查询引擎,随后 .query("YOUR_QUESTION") 返回查询结果。默认数据保存在内存中;调用 index.storage_context.persist() 会写入 ./storage,之后可用 StorageContext.from_defaults(persist_dir="./storage") 与 load_index_from_storage(storage_context) 重新加载。使用 OpenAI 示例时,程序读取 OPENAI_API_KEY;使用 Ollama 示例时,可通过 Settings.llm、Settings.tokenizer 和 Settings.embed_model 配置模型、分词器与嵌入模型。
- Python 开发者需要让问答应用检索某个本地文档目录中的内容,可用
SimpleDirectoryReader与VectorStoreIndex建立并查询索引。 - 团队希望把 OpenAI 用作 LLM,同时保留 LlamaIndex 的核心索引接口,可安装
llama-index-llms-openai并设置OPENAI_API_KEY。 - 使用 Ollama 托管模型的开发者,可将
Ollama、Hugging Face 嵌入模型和AutoTokenizer配置到Settings。 - 需要在进程重启后复用已有索引的应用,可将存储持久化到
./storage,再通过load_index_from_storage恢复。 - 需要文档解析、OCR、结构化提取或文档代理能力的组织,可选择与框架配合或独立使用 LlamaParse 平台。
如何安装或部署这个 Agent?
需要 Python 环境。安装核心与示例中列出的可选集成:
pip install llama-index-core
pip install llama-index-llms-openai
pip install llama-index-llms-ollama
pip install llama-index-embeddings-huggingface若使用 OpenAI 示例,先在运行环境中设置 OPENAI_API_KEY。README 没有给出 LlamaParse 的本地安装命令;该平台的入口是注册并获取 API key。
如何使用这个 Agent?
最小可运行流程:
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("YOUR_DATA_DIRECTORY").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
response = query_engine.query("YOUR_QUESTION")OpenAI 路径需要先设置 OPENAI_API_KEY,并安装 OpenAI 集成包。默认索引仅在内存中;若需跨进程保存,调用 index.storage_context.persist(),并用 StorageContext.from_defaults(persist_dir="./storage") 和 load_index_from_storage(...) 恢复。
这个 Agent 有哪些优点和局限?
- 核心包与集成包分离:可仅安装
llama-index-core,再按需选择 LLM、嵌入模型和向量存储集成。 - README 提供从本地目录读取文档、创建
VectorStoreIndex、查询和持久化/恢复索引的完整代码路径。 - 同一框架示例覆盖 OpenAI 与通过 Ollama 托管的非 OpenAI 模型,并可配置 Hugging Face 嵌入模型。
- LlamaParse 可作为独立文档平台使用,也可与框架结合,覆盖解析、OCR、提取、索引和文档代理相关场景。
- OpenAI 示例需要
OPENAI_API_KEY;采用不同模型或嵌入提供商时,需要安装并配置相应集成包。 - 默认数据只保存在内存,应用若需重启后继续使用索引,必须显式持久化并恢复。
- README 明确说明其更新频率低于文档,采用前应评估文档与当前版本的一致性。
- LlamaParse 的注册和 API key 获取被列为平台使用步骤,README 未说明其定价、配额或本地部署方式。
这个 Agent 与同类方案有什么区别?
README 将 LlamaIndex 描述为可与 LangChain 集成的框架,但没有提供两者的功能或性能对比。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| LlamaIndex 当前 | 48 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 53k | 2 天前 | Python | OpenAI API |
| Agentic RAG 傻瓜式构建指南 | 51 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 4.3k | 20 天前 | Jupyter Notebook | — |
| RAGLight | 63 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 672 | 21 天前 | Python | OpenAI API |
| Instructor | 55 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 14k | 今天 | Python | OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:README 和 SECURITY.md 明确说明库应在可信执行环境中使用,并列出安全边界,但未提供权限最小化或用户确认机制。数据流透明度有限,仅提及数据连接器和索引,未详细说明数据流向。敏感数据处理方面,SECURITY.md 提到调试日志可能泄露 API 密钥,但未提供具体防护措施。依赖安全方面,pyproject.toml 列出了依赖,但未提供漏洞扫描或锁定文件。外部影响方面,库会进行网络请求,但未明确说明。回滚机制未提及。来源归属方面,README 和 pyproject.toml 提供了作者和维护者信息,但发布者未验证。扣分原因:缺乏用户确认、数据流透明度不足、敏感数据处理不充分、依赖安全措施缺失、回滚机制缺失。
证据显示:README 和 pyproject.toml 提供了清晰的安装和使用说明,代码结构一致,但未提供错误处理细节。依赖可用性方面,依赖列表明确,但未提供版本锁定或镜像。失败消息方面,llama-dev 测试工具提供了详细的错误输出,但库本身的失败消息未详细说明。扣分原因:错误处理细节不足,依赖可用性未充分保障。
证据显示:README 面向初学者和高级用户,提供了多种使用场景,但未明确能力边界。触发精度方面,未提供明确的触发条件或权限控制。环境适配方面,支持 Python 3.10+,并提供了多种集成选项。扣分原因:能力边界不明确,触发精度不足。
证据显示:README 提供了清晰的信息架构,安装说明详细,命名稳定,示例丰富,但已知限制未明确列出。许可证为 MIT,版本信息在 pyproject.toml 中,但未提供变更日志。维护责任方面,pyproject.toml 列出了维护者,但未提供贡献指南。扣分原因:已知限制未明确,变更日志缺失。
证据显示:README 提供了丰富的示例,输出可用性高,边际价值明显,成本效益合理。扣分原因:无重大扣分,但未提供性能或成本数据。
证据显示:README 中的声明有文档支持,但未提供交叉验证。事实与推断分离方面,README 区分了事实和推断,但不够明确。扣分原因:声明可追溯性不足,交叉验证缺失。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 发布者身份未验证,需谨慎对待。
- 库应在可信环境中使用,用户需自行处理输入验证和安全控制。
- 敏感数据处理和依赖安全措施不足,建议审查。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
Release Notes [2026-09-21] llama-index-agent-agentmesh [0.3.0] - fix: resolve a ton of security alerts ([#22855](https://github.com/run-llama/llama_index/pull/22855)) llama-index-agent-azure [0.4.0] - fix: resolve a ton of security alerts ([#22855](https://github.com/run-llama/llama_index/pull/22855)) llama-index-callbacks-argilla [0.6.0] - fix: resolve a ton of security alerts ([#22855](https://github.com/run-llama/llama_index/pull/22855)) llama-index-callbacks-arize-phoenix [0.8.0] …在 GitHub 查看 ↗ -
发布说明摘录
Release Notes [2026-08-19] llama-index-core [0.14.24] - fix: close HotpotQA evaluator file handles ([#22113](https://github.com/run-llama/llama_index/pull/22113)) - fix(core): preserve oversized leaf nodes in CodeSplitter ([#22119](https://github.com/run-llama/llama_index/pull/22119)) - fix: preserve multiblock chat history writes ([#22124](https://github.com/run-llama/llama_index/pull/22124)) - fix(core): skip empty nodes in HTMLNodeParser ([#22125](https://github.com/run-llama/llama_index/pull/22125)) …在 GitHub 查看 ↗ -
发布说明摘录
Release Notes [2026-06-24] llama-index-callbacks-argilla [0.5.0] - chore(deps): bump the uv group across 32 directories with 3 updates ([#21664](https://github.com/run-llama/llama_index/pull/21664)) - chore(deps): bump the uv group across 29 directories with 3 updates ([#21665](https://github.com/run-llama/llama_index/pull/21665)) - chore(deps): bump the uv group across 31 directories with 3 updates ([#21668](https://github.com/run-llama/llama_index/pull/21668)) …在 GitHub 查看 ↗
常见问题
是否只能使用 OpenAI?
索引会自动保留吗?
index.storage_context.persist() 保存,并在后续进程中用 StorageContext 和 load_index_from_storage 读取。