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 為初學者和高級用戶提供工具。我們的進階 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}
}