机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。
🗂️ LlamaIndex(开源框架)🦙
LlamaIndex 当前的重点是构建用于文档解析和提取的最佳 AI 驱动引擎。LlamaParse 是我们的企业平台,用于自主 OCR、解析、提取、索引等功能。LiteParse 代表了我们在市场上构建最佳免费、快速、廉价文本解析器的努力。ParseBench 和 ExtractBench 代表了我们在解析和提取开源基准测试方面的承诺。
自从该开源软件框架在 2023 年首次推出以来,公司本身已经经历了一次演变。从早期开始,该框架就包含了一整套编排工具,能够让开发者构建各种 RAG 和代理应用程序。
虽然我们仍然提供 OSS 框架作为一个开放工具包,欢迎大家使用,但我们的主要关注已转向 LlamaParse,以及 liteparse 和我们的基准测试工作。我们坚信,代理是文档的新消费者,他们基本上需要合适的工具来从世界上最难的文档中准确/低成本地提取上下文。无论你是处理文档的 AI 初创公司,还是希望自动化文档工作流的企业,来和我们谈谈。
LlamaIndex OSS(由 LlamaIndex 提供)是一个用于构建代理应用的开源框架。你可以在这个框架中使用 LlamaParse,或者单独使用它;请参见下面的 LlamaParse 获取注册和产品链接。
📚 文档:
使用 LlamaIndex 构建通常涉及使用 LlamaIndex 核心和所选择的一组集成(或插件)。在 Python 中使用 LlamaIndex 构建有两种方式:
-
入门:
llama-index。一个入门级 Python 包,其中包括核心 LlamaIndex 以及一些集成选项。 -
自定义:
llama-index-core。安装核心 LlamaIndex 并从集成页面添加所需的 LlamaIndex 集成包,以满足您的应用需求。有 300 多个 LlamaIndex 集成包可以与核心无缝协作,使您能够使用首选的 LLM、嵌入和向量存储提供商进行构建。
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 是一个独立的平台——专注于文档代理和代理 OCR。它包括 Parse(解析)、LlamaAgents(已部署的文档代理)、Extract(结构化提取)和 Index(导入和 RAG)。你可以将其与 LlamaIndex 框架一起使用,也可以独立使用。
- 注册 LlamaParse — 创建账户并获取你的 API 密钥。
- Parse — 代理式 OCR 和文档解析(130 种格式)。文档
- Extract — 从文档中提取结构化数据。文档
- Index — 数据导入、索引和 RAG 流程。文档
- Split — 将大型文档拆分为子类别。文档
- Agents — 使用
Workflows和 Agent Builder 构建端到端文档代理。文档
重要链接
🚀 概览
注意:此 README 的更新频率不如文档高。请查看上方文档获取最新更新!
背景
- 大型语言模型(LLMs)是用于知识生成和推理的出色技术。它们经过大量公开数据的预训练。
- 我们如何最好地用自己的私人数据增强 LLM?
我们需要一个综合工具包来帮助为 LLM 执行这种数据增强。
建议的解决方案
这就是 LlamaIndex 的作用。LlamaIndex 是一个“数据框架”,帮助您构建 LLM 应用。它提供以下工具:
- 提供 数据连接器,以摄取您现有的数据源和数据格式(API、PDF、文档、SQL 等)。
- 提供 结构化数据 的方法(索引、图表),以便这些数据可以轻松应用于 LLM。
- 提供 数据的高级检索/查询接口:输入任何 LLM 提示,返回检索到的上下文和知识增强输出。
- 允许与外部应用框架的轻松集成(例如与 LangChain、Flask、Docker、ChatGPT 或其他任何内容)。
LlamaIndex 为初学者和高级用户提供工具。我们高级别的 API 允许初学者仅用 5 行代码就能使用 LlamaIndex 来摄取和查询他们的数据。我们的低级别 API 允许高级用户自定义和扩展任何模块(数据连接器、索引、检索器、查询引擎、重新排名模块),以满足他们的需求。
💡 贡献
有兴趣参与贡献吗?欢迎并强烈鼓励对 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 构建一个简单的向量存储索引:
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)构建简单向量存储索引:
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 操作。此操作将验证 _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}
}- 本文标题:llama_index - LlamaIndex 是用于人工智能的文档处理平台
- 本文链接:https://cn121.com/llm/run-llama-llama-index.html
- 原项目:run-llama/llama_index 版权归原作者 run-llama 及贡献者所有
- 收录信息:本站于 2026-09-23 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
- 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。
- 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 run-llama/llama_index。
- 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
- 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
- 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。