> [!NOTE] > 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。 > [English](./README.en.md) · [原始项目](https://github.com/run-llama/llama_index) · [上游 README](https://github.com/run-llama/llama_index/blob/HEAD/README.md) > 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。 # 🗂️ LlamaIndex 🦙 [![PyPI - Downloads](https://img.shields.io/pypi/dm/llama-index)](https://pypi.org/project/llama-index/) [![Build](https://github.com/run-llama/llama_index/actions/workflows/build_package.yml/badge.svg)](https://github.com/run-llama/llama_index/actions/workflows/build_package.yml) [![GitHub contributors](https://img.shields.io/github/contributors/jerryjliu/llama_index)](https://github.com/jerryjliu/llama_index/graphs/contributors) [![Discord](https://img.shields.io/discord/1059199217496772688)](https://discord.gg/dGcwcsnxhU) [![Twitter](https://img.shields.io/twitter/follow/llama_index)](https://x.com/llama_index) [![Reddit](https://img.shields.io/reddit/subreddit-subscribers/LlamaIndex?style=plastic&logo=reddit&label=r%2FLlamaIndex&labelColor=white)](https://www.reddit.com/r/LlamaIndex/) [![Ask AI](https://img.shields.io/badge/Phorm-Ask_AI-%23F2777A.svg?&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNSIgaGVpZ2h0PSI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Ik00LjQzIDEuODgyYTEuNDQgMS40NCAwIDAgMS0uMDk4LjQyNmMtLjA1LjEyMy0uMTE1LjIzLS4xOTIuMzIyLS4wNzUuMDktLjE2LjE2NS0uMjU1LjIyNmExLjM1MyAxLjM1MyAwIDAgMS0uNTk1LjIxMmMtLjA5OS4wMTItLjE5Mi4wMTQtLjI3OS4wMDZsLTEuNTkzLS4xNHYtLjQwNmgxLjY1OGMuMDkuMDAxLjE3LS4xNjkuMjQ2LS4xOTFhLjYwMy42MDMgMCAwIDAgLjItLjEwNi41MjkuNTI5IDAgMCAwIC4xMzgtLjE3LjY1NC42NTQgMCAwIDAgLjA2NS0uMjRsLjAyOC0uMzJhLjkzLjkzIDAgMCAwLS4wMzYtLjI0OS41NjcuNTY3IDAgMCAwLS4xMDMtLjIuNTAyLjUwMiAwIDAgMC0uMTY4LS4xMzguNjA4LjYwOCAwIDAgMC0uMjQtLjA2N0wyLjQzNy43MjkgMS42MjUuNjcxYS4zMjIuMzIyIDAgMCAwLS4yMzIuMDU4LjM3NS4zNzUgMCAwIDAtLjExNi4yMzJsLS4xMTYgMS40NS0uMDU4LjY5Ny0uMDU4Ljc1NEwuNzA1IDRsLS4zNTctLjA3OUwuNjAyLjkwNkMuNjE3LjcyNi42NjMuNTc0LjczOS40NTRhLjk1OC45NTggMCAwIDEgLjI3NC0uMjg1Ljk3MS45NzEgMCAwIDEgLjMzNy0uMTRjLjExOS0uMDI2LjIyNy0uMDM0LjMyNS0uMDI2TDMuMjMyLjE2Yy4xNTkuMDE0LjMzNi4wMy40NTkuMDgyYTEuMTczIDEuMTczIDAgMCAxIC41NDUuNDQ3Yy4wNi4wOTQuMTA5LjE5Mi4xNDQuMjkzYTEuMzkyIDEuMzkyIDAgMCAxIC4wNzguNThsLS4wMjkuMzJaIiBmaWxsPSIjRjI3NzdBIi8+CiAgPHBhdGggZD0iTTQuMDgyIDIuMDA3YTEuNDU1IDEuNDU1IDAgMCAxLS4wOTguNDI3Yy0uMDUuMTI0LS4xMTQuMjMyLS4xOTIuMzI0YTEuMTMgMS4xMyAwIDAgMS0uMjU0LjIyNyAxLjM1MyAxLjM1MyAwIDAgMS0uNTk1LjIxNGMtLjEuMDEyLS4xOTMuMDE0LS4yOC4wMDZsLTEuNTYtLjEwOC4wMzQtLjQwNi4wMy0uMzQ4IDEuNTU5LjE1NGMuMDkgMCAuMTczLS4wMS4yNDgtLjAzM2EuNjAzLjYwMyAwIDAgMCAuMi0uMTA2LjUzMi41MzIgMCAwIDAgLjEzOS0uMTcyLjY2LjY2IDAgMCAwIC4wNjQtLjI0MWwuMDI5LS4zMjFhLjk0Ljk0IDAgMCAwLS4wMzYtLjI1LjU3LjU3IDAgMCAwLS4xMDMtLjIwMi41MDIuNTAyIDAgMCAwLS4xNjgtLjEzOC42MDUuNjA1IDAgMCAwLS4yNC0uMDY3TDEuMjczLjgyN2MtLjA5NC0uMDA4LS4xNjguMDEtLjIyMS4wNTUtLjA1My4wNDUtLjA4NC4xMTQtLjA5Mi4yMDZMLjcwNSA0IDAgMy45MzhsLjI1NS0yLjkxMUExLjAxIDEuMDEgMCAwIDEgLjM5My41NzIuOTYyLjk2MiAwIDAgMSAuNjY2LjI4NmEuOTcuOTcgMCAwIDEgLjMzOC0uMTRDMS4xMjIuMTIgMS4yMy4xMSAxLjMyOC4xMTlsMS41OTMuMTRjLjE2LjAxNC4zLjA0Ny40MjMuMWExLjE3IDEuMTcgMCAwIDEgLjU0NS40NDhjLjA2MS4wOTUuMTA5LjE5My4xNDQuMjk1YTEuNDA2IDEuNDA2IDAgMCAxIC4wNzcuNTgzbC0uMDI4LjMyMloiIGZpbGw9IndoaXRlIi8+CiAgPHBhdGggZD0iTTQuMDgyIDIuMDA3YTEuNDU1IDEuNDU1IDAgMCAxLS4wOTguNDI3Yy0uMDUuMTI0LS4xMTQuMjMyLS4xOTIuMzI0YTEuMTMgMS4xMyAwIDAgMS0uMjU0LjIyNyAxLjM1MyAxLjM1MyAwIDAgMS0uNTk1LjIxNGMtLjEuMDEyLS4xOTMuMDE0LS4yOC4wMDZsLTEuNTYtLjEwOC4wMzQtLjQwNi4wMy0uMzQ4IDEuNTU5LjE1NGMuMDkgMCAuMTczLS4wMS4yNDgtLjAzM2EuNjAzLjYwMyAwIDAgMCAuMi0uMTA2LjUzMi41MzIgMCAwIDAgLjEzOS0uMTcyLjY2LjY2IDAgMCAwIC4wNjQtLjI0MWwuMDI5LS4zMjFhLjk0Ljk0IDAgMCAwLS4wMzYtLjI1LjU3LjU3IDAgMCAwLS4xMDMtLjIwMi41MDIuNTAyIDAgMCAwLS4xNjgtLjEzOC42MDUuNjA1IDAgMCAwLS4yNC0uMDY3TDEuMjczLjgyN2MtLjA5NC0uMDA4LS4xNjguMDEtLjIyMS4wNTUtLjA1My4wNDUtLjA4NC4xMTQtLjA5Mi4yMDZMLjcwNSA0IDAgMy45MzhsLjI1NS0yLjkxMUExLjAxIDEuMDEgMCAwIDEgLjM5My41NzIuOTYyLjk2MiAwIDAgMSAuNjY2LjI4NmEuOTcuOTcgMCAwIDEgLjMzOC0uMTRDMS4xMjIuMTIgMS4yMy4xMSAxLjMyOC4xMTlsMS41OTMuMTRjLjE2LjAxNC4zLjA0Ny40MjMuMWExLjE3IDEuMTcgMCAwIDEgLjU0NS40NDhjLjA2MS4wOTUuMTA5LjE5My4xNDQuMjk1YTEuNDA2IDEuNDA2IDAgMCAxIC4wNzcuNTgzbC0uMDI4LjMyMloiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=)](https://www.phorm.ai/query?projectId=c5863b56-6703-4a5d-87b6-7e6031bf16b6) LlamaIndex OSS(由 [LlamaIndex](https://llamaindex.ai?utm_medium=li_github&utm_source=github&utm_campaign=2026--)) 提供)是一个用于构建智能体(agentic)应用的开源框架。**[Parse](https://cloud.llamaindex.ai?utm_medium=li_github&utm_source=github&utm_campaign=2026--)** 是我们面向智能体 OCR、解析、提取、索引等功能的企业级平台。你可以将此框架与 LlamaParse 一起使用,也可以单独使用;注册及产品链接请见下文 [LlamaParse](#llamacloud-document-agent-platform)。 > ### 📚 **文档:** > > - [LlamaParse](https://developers.llamaindex.ai/python/cloud/llamaparse/?utm_medium=li_github&utm_source=github&utm_campaign=2026--) > - [LlamaIndex OSS](https://developers.llamaindex.ai/python/framework/?utm_medium=li_github&utm_source=github&utm_campaign=2026--) > - [LlamaAgents](https://developers.llamaindex.ai/python/llamaagents/overview/?utm_medium=li_github&utm_source=github&utm_campaign=2026--) 使用 LlamaIndex 进行开发通常需要配合 LlamaIndex 核心库以及一组选定的集成(或插件)。在 Python 中,有两种方式可以开始基于 LlamaIndex 进行开发: 1. **入门版(Starter)**:[`llama-index`](https://pypi.org/project/llama-index/). 一个入门 Python 包,包含 LlamaIndex 核心库以及部分集成。 2. **自定义(Customized)**:[`llama-index-core`](https://pypi.org/project/llama-index-core/). 安装 LlamaIndex 核心库,并在 [LlamaHub](https://llamahub.ai/) 上添加你的应用所需的 LlamaIndex 集成包。目前已有 300 多个可与核心库无缝协作的 LlamaIndex 集成包,让你能够使用偏好的 LLM、嵌入(embedding)和向量存储(vector store)提供商进行开发。 LlamaIndex Python 库采用命名空间设计:包含 `core` 的 import 语句表示正在使用核心包;相反,不包含 `core` 的语句则表示正在使用集成包。 ```python # typical pattern from llama_index.core.xxx import ClassABC # core submodule xxx from llama_index.xxx.yyy import ( SubclassABC, ) # integration yyy for submodule xxx # concrete example from llama_index.core.llms import LLM from llama_index.llms.openai import OpenAI ``` ### LlamaParse(文档智能体平台) **LlamaParse** 是一个独立平台,专注于文档智能体(document agents)与智能体 OCR(agentic OCR)。它包括 **Parse**(解析)、**LlamaAgents**(已部署的文档智能体)、**Extract**(结构化提取)和 **Index**(摄取与 RAG)。你可以将它与 LlamaIndex 框架配合使用,也可以单独使用。 - **[注册 LlamaParse](https://cloud.llamaindex.ai?utm_medium=li_github&utm_source=github&utm_campaign=2026--)** — 创建账户并获取 API key。 - **Parse** — 智能体 OCR 与文档解析(支持 130+ 种格式)。[文档](https://developers.llamaindex.ai/python/cloud/llamaparse/?utm_medium=li_github&utm_source=github&utm_campaign=2026--) - **Extract** — 从文档中进行结构化数据提取。[文档](https://developers.llamaindex.ai/python/cloud/llamaextract/?utm_medium=li_github&utm_source=github&utm_campaign=2026--) - **Index** — 摄取、索引与 RAG 流水线。[文档](https://developers.llamaindex.ai/python/cloud/llamacloud/?utm_medium=li_github&utm_source=github&utm_campaign=2026--) - **Split** — 将大型文档拆分为子类别。[文档](https://developers.llamaindex.ai/python/cloud/split/getting_started/?utm_medium=li_github&utm_source=github&utm_campaign=2026--) - **Agents** — 使用 `Workflows` 和 Agent Builder 构建端到端文档智能体。[文档](https://developers.llamaindex.ai/python/llamaagents/overview/?utm_medium=li_github&utm_source=github&utm_campaign=2026--) ### 重要链接 [文档](https://developers.llamaindex.ai/python/framework/?utm_medium=li_github&utm_source=github&utm_campaign=2026--) [X(原 Twitter)](https://x.com/llama_index) [LinkedIn](https://www.linkedin.com/company/llamaindex/) [Reddit](https://www.reddit.com/r/LlamaIndex/) [Discord](https://discord.gg/dGcwcsnxhU) ## 🚀 概览 **注意**:本 README 的更新频率不如文档本身。如需了解最新更新,请查阅上方文档! ### 背景 - LLM(大语言模型)是知识生成与推理领域的杰出技术。它们在大量公开可用数据上进行了预训练。 - 我们如何最好地用自有私有数据来增强 LLM? 我们需要一套全面的工具包,来帮助为 LLM 执行此类数据增强。 ### 解决方案 这正是 **LlamaIndex** 的用武之地。LlamaIndex 是一个帮助你构建 LLM 应用的「数据框架」(data framework)。它提供以下工具: - 提供 **data connectors(数据连接器)**,用于摄取你现有的数据源和数据格式(API、PDF、文档、SQL 等)。 - 提供将你的数据**结构化**的方法(indices、graphs),使这些数据能够轻松地与 LLM 配合使用。 - 提供针对你数据的**高级检索/查询接口**:输入任意 LLM 提示词,即可获得检索到的上下文和知识增强后的输出。 - 可轻松与外部应用框架集成(例如 LangChain、Flask、Docker、ChatGPT 等)。 LlamaIndex 为初学者和高级用户都提供了工具。我们的高层 API 允许初学者仅用 5 行代码即可使用 LlamaIndex 摄取并查询数据。我们的低层 API 允许高级用户自定义并扩展任何模块(data connectors、indices、retrievers、query engines、reranking modules),以满足其需求。 ## 💡 贡献 有兴趣贡献代码吗?我们欢迎并大力鼓励对 LlamaIndex 核心的贡献,以及基于核心构建的集成贡献!详见我们的 [贡献指南](CONTRIBUTING.md)。 新的集成应当与现有 LlamaIndex 框架组件进行有意义的整合。LlamaIndex 维护者有权酌情拒绝某些集成。 ## 📄 文档 完整文档见[此处](https://developers.llamaindex.ai/python/framework/?utm_medium=li_github&utm_source=github&utm_campaign=2026--) 请查阅以获取最新的教程、操作指南、参考文档及其他资源! ## 💻 示例用法 ```sh # custom selection of integrations to work with core pip install llama-index-core pip install llama-index-llms-openai pip install llama-index-llms-ollama pip install llama-index-embeddings-huggingface ``` 示例位于 `docs/examples` 文件夹。索引位于 `indices` 文件夹(参见下方索引列表)。 使用 OpenAI 构建简单的 vector store index: ```python import os os.environ["OPENAI_API_KEY"] = "YOUR_OPENAI_API_KEY" from llama_index.core import VectorStoreIndex, SimpleDirectoryReader documents = SimpleDirectoryReader("YOUR_DATA_DIRECTORY").load_data() index = VectorStoreIndex.from_documents(documents) ``` 使用非 OpenAI LLM(例如通过 Ollama 托管的 LLM)构建简单的 vector store index: ```python from llama_index.core import Settings, VectorStoreIndex, SimpleDirectoryReader from llama_index.embeddings.huggingface import HuggingFaceEmbedding from llama_index.llms.ollama import Ollama from transformers import AutoTokenizer # set the LLM Settings.llm = Ollama( model="llama-3.1:latest", request_timeout=360.0, ) # set tokenizer to match LLM Settings.tokenizer = AutoTokenizer.from_pretrained( "meta-llama/Llama-3.1-8B-Instruct" ) # set the embed model Settings.embed_model = HuggingFaceEmbedding( model_name="BAAI/bge-small-en-v1.5" ) documents = SimpleDirectoryReader("YOUR_DATA_DIRECTORY").load_data() index = VectorStoreIndex.from_documents( documents, ) ``` 查询: ```python query_engine = index.as_query_engine() query_engine.query("YOUR_QUESTION") ``` 默认情况下,数据存储在内存中。 持久化到磁盘(位于 `./storage` 下): ```python index.storage_context.persist() ``` 从磁盘重新加载: ```python from llama_index.core import StorageContext, load_index_from_storage # rebuild storage context storage_context = StorageContext.from_defaults(persist_dir="./storage") # load index index = load_index_from_storage(storage_context) ``` ## 关于构建资产验证的说明 默认情况下,`llama-index-core` 包含 `_static` 文件夹,其中存放随包安装附带的 nltk 和 tiktoken 缓存。这确保你在运行时磁盘访问权限受限的环境中也能轻松运行 `llama-index`。 为验证这些文件安全且有效,我们使用 GitHub `attest-build-provenance` action。该 action 会验证 `_static` 文件夹中的文件与 `llama-index-core/llama_index/core/_static` 文件夹中的文件是否一致。 若要验证,可运行以下脚本(指向你已安装的包): ```bash #!/bin/bash STATIC_DIR="venv/lib/python3.13/site-packages/llama_index/core/_static" REPO="run-llama/llama_index" find "$STATIC_DIR" -type f | while read -r file; do echo "Verifying: $file" gh attestation verify "$file" -R "$REPO" || echo "Failed to verify: $file" done ``` ## 📖 引用 若在论文中使用 LlamaIndex,可引用: ``` @software{Liu_LlamaIndex_2022, author = {Liu, Jerry}, doi = {10.5281/zenodo.1234}, month = {11}, title = {{LlamaIndex}}, url = {https://github.com/jerryjliu/llama_index}, year = {2022} } ```