Files
wehub-resource-sync 62d59d7b92
Build Package / build (windows-latest) (push) Has been cancelled
Core Typecheck / core-typecheck (push) Has been cancelled
Linting / lint (push) Has been cancelled
Build Package / build (ubuntu-latest) (push) Has been cancelled
Publish Sub-Package to PyPI if Needed / publish_subpackage_if_needed (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
docs: make Chinese README the default
2026-07-13 10:15:29 +00:00

13 KiB
Raw Permalink Blame History

Note

本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。

🗂️ LlamaIndex 🦙

PyPI - Downloads Build GitHub contributors Discord Twitter Reddit Ask AI

LlamaIndex OSS(由 LlamaIndex) 提供)是一个用于构建智能体(agentic)应用的开源框架。Parse 是我们面向智能体 OCR、解析、提取、索引等功能的企业级平台。你可以将此框架与 LlamaParse 一起使用,也可以单独使用;注册及产品链接请见下文 LlamaParse

📚 文档:

使用 LlamaIndex 进行开发通常需要配合 LlamaIndex 核心库以及一组选定的集成(或插件)。在 Python 中,有两种方式可以开始基于 LlamaIndex 进行开发:

  1. 入门版(Starterllama-index. 一个入门 Python 包,包含 LlamaIndex 核心库以及部分集成。

  2. 自定义(Customizedllama-index-core. 安装 LlamaIndex 核心库,并在 LlamaHub 上添加你的应用所需的 LlamaIndex 集成包。目前已有 300 多个可与核心库无缝协作的 LlamaIndex 集成包,让你能够使用偏好的 LLM、嵌入(embedding)和向量存储(vector store)提供商进行开发。

LlamaIndex Python 库采用命名空间设计:包含 core 的 import 语句表示正在使用核心包;相反,不包含 core 的语句则表示正在使用集成包。

# 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)与智能体 OCRagentic OCR)。它包括 Parse(解析)、LlamaAgents(已部署的文档智能体)、Extract(结构化提取)和 Index(摄取与 RAG)。你可以将它与 LlamaIndex 框架配合使用,也可以单独使用。

  • 注册 LlamaParse — 创建账户并获取 API key。
  • Parse — 智能体 OCR 与文档解析(支持 130+ 种格式)。文档
  • Extract — 从文档中进行结构化数据提取。文档
  • Index — 摄取、索引与 RAG 流水线。文档
  • Split — 将大型文档拆分为子类别。文档
  • Agents — 使用 Workflows 和 Agent Builder 构建端到端文档智能体。文档

重要链接

文档

X(原 Twitter

LinkedIn

Reddit

Discord

🚀 概览

注意:本 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 核心的贡献,以及基于核心构建的集成贡献!详见我们的 贡献指南

新的集成应当与现有 LlamaIndex 框架组件进行有意义的整合。LlamaIndex 维护者有权酌情拒绝某些集成。

📄 文档

完整文档见此处

请查阅以获取最新的教程、操作指南、参考文档及其他资源!

💻 示例用法

# 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

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

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,
)

查询:

query_engine = index.as_query_engine()
query_engine.query("YOUR_QUESTION")

默认情况下,数据存储在内存中。 持久化到磁盘(位于 ./storage 下):

index.storage_context.persist()

从磁盘重新加载:

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 文件夹中的文件是否一致。

若要验证,可运行以下脚本(指向你已安装的包):

#!/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}
}