LlamaIndex OSS(由 LlamaIndex 开发)是一个用于构建智能体应用的开源框架。Parse 是我们的企业平台,专注于智能体 OCR、解析、提取、索引等功能。你可以将此框架与 LlamaParse 结合使用,或单独使用 LlamaParse;有关注册和产品链接,请参见下面的 LlamaParse 部分。
📚 文档:
使用 LlamaIndex 进行构建通常涉及使用 LlamaIndex 核心以及一组选定的集成(或插件)。在 Python 中开始使用 LlamaIndex 有两种方式:
llama-index。一个入门级的 Python 包,包含 LlamaIndex 核心以及一组精选的集成。llama-index-core。安装 LlamaIndex 核心,并根据你的应用需求,从 LlamaHub 添加你选择的 LlamaIndex 集成包。有超过 300 个 LlamaIndex 集成包可以与核心无缝协作,让你能够使用偏好的 LLM、嵌入模型和向量存储提供商进行构建。LlamaIndex Python 库的命名空间经过设计,使得包含 core 的导入语句意味着正在使用核心包。相反,那些不包含 core 的语句意味着正在使用集成包。
# 典型模式
from llama_index.core.xxx import ClassABC # 核心子模块 xxx
from llama_index.xxx.yyy import (
SubclassABC,
) # 子模块 xxx 的集成 yyy
# 具体示例
from llama_index.core.llms import LLM
from llama_index.llms.openai import OpenAI
LlamaParse 是一个独立的平台,专注于文档智能体和智能体 OCR。它包括 Parse(解析)、LlamaAgents(部署的文档智能体)、Extract(结构化提取)和 Index(摄取和 RAG)。你可以将其与 LlamaIndex 框架结合使用,或独立使用。
Workflows 和 Agent Builder 构建端到端的文档智能体。文档LlamaIndex.TS (Typescript/Javascript)
注意:此 README 的更新频率不如文档。请查看上面的文档以获取最新更新!
我们需要一个全面的工具包来帮助为 LLM 执行这种数据增强。
这就是 LlamaIndex 的用武之地。LlamaIndex 是一个帮助你构建 LLM 应用的“数据框架”。它提供以下工具:
LlamaIndex 为初学者和高级用户提供工具。我们的高级 API 允许初学者用户用 5 行代码使用 LlamaIndex 来摄取和查询他们的数据。我们的低级 API 允许高级用户自定义和扩展任何模块(数据连接器、索引、检索器、查询引擎、重排模块),以满足他们的需求。
有兴趣贡献吗?我们非常欢迎对 LlamaIndex 核心的贡献以及基于核心构建的集成贡献!有关更多详情,请参阅我们的贡献指南。
新的集成应与现有的 LlamaIndex 框架组件有意义的整合。根据 LlamaIndex 维护者的判断,某些集成可能会被拒绝。
完整文档可以在这里找到。
请查看它以获取最新的教程、操作指南、参考和其他资源!
# 自定义选择与核心配合使用的集成
pip install llama-index-core
pip install llama-index-llms-openai
pip install llama-index-llms-replicate
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 构建一个简单的向量存储索引,例如托管在 Replicate 上的 Llama 2(你可以轻松创建一个免费试用 API 令牌):
```python
import os
os.environ["REPLICATE_API_TOKEN"] = "YOUR_REPLICATE_API_TOKEN"
from llama_index.core import Settings, VectorStoreIndex, SimpleDirectoryReader
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.llms.replicate import Replicate
from transformers import AutoTokenizer
llama2_7b_chat = "meta/llama-2-7b-chat:8e6975e5ed6174911a6ff3d60540dfd4844201974602551e10e9e87ab143d81e"
Settings.llm = Replicate(
model=llama2_7b_chat,
temperature=0.01,
additional_kwargs={"top_p": 1, "max_new_tokens": 300},
)