LlamaIndex(GPT 索引)是 LLM 申请的数据框架。使用 LlamaIndex 进行构建通常涉及使用 LlamaIndex 核心和一组选定的集成(或插件)。在 Python 中开始使用 LlamaIndex 构建有两种方法:
启动器: llama-index
。一个入门 Python 包,包含核心 LlamaIndex 以及一系列集成。
定制: llama-index-core
。安装核心 LlamaIndex 并在 LlamaHub 上添加您选择的应用程序所需的 LlamaIndex 集成包。有超过 300 个 LlamaIndex 集成包可与核心无缝协作,允许您使用您首选的 LLM、嵌入和矢量存储提供商进行构建。
LlamaIndex Python 库是命名空间的,因此包含core
import 语句意味着正在使用 core 包。相反,那些没有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
LlamaIndex.TS(打字稿/Javascript)
文档
叽叽喳喳
不和谐
注意:本自述文件的更新频率不如文档。请查看上面的文档以获取最新更新!
我们需要一个全面的工具包来帮助法学硕士执行数据增强。
这就是LlamaIndex 的用武之地。LlamaIndex 是一个“数据框架”,可帮助您构建 LLM 应用程序。它提供了以下工具:
LlamaIndex 为初学者和高级用户提供工具。我们的高级 API 允许初学者使用 LlamaIndex 通过 5 行代码获取和查询他们的数据。我们的低级 API 允许高级用户自定义和扩展任何模块(数据连接器、索引、检索器、查询引擎、重新排名模块),以满足他们的需求。
有兴趣贡献吗?对 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-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 令牌:
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
# set the LLM
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 },
)
# set tokenizer to match LLM
Settings . tokenizer = AutoTokenizer . from_pretrained (
"NousResearch/Llama-2-7b-chat-hf"
)
# 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 )
我们使用诗歌作为所有 Python 包的包管理器。因此,可以通过引用每个包的文件夹中的pyproject.toml
文件来找到每个 Python 包的依赖项。
cd < desired-package-folder >
pip install poetry
poetry install --with dev
如果您在论文中使用 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}
}