LlamaIndex (GPT Index) は、LLM アプリケーションのデータ フレームワークです。 LlamaIndex を使用したビルドには通常、LlamaIndex コアと選択した統合セット (またはプラグイン) の操作が含まれます。 Python で LlamaIndex を使用して構築を開始するには 2 つの方法があります。
スターター: llama-index
。コア LlamaIndex と一連の統合が含まれるスターター Python パッケージ。
カスタマイズ済み: llama-index-core
。コア LlamaIndex をインストールし、アプリケーションに必要な選択した LlamaIndex 統合パッケージを LlamaHub に追加します。コアとシームレスに連携する 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)
ドキュメント
ツイッター
不和
注: この README はドキュメントほど頻繁には更新されません。最新の更新については、上記のドキュメントを確認してください。
LLM のこのデータ拡張を実行するには、包括的なツールキットが必要です。
そこで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 パッケージのパッケージ マネージャーとして詩を使用します。その結果、各 Python パッケージの依存関係は、パッケージの各フォルダーにあるpyproject.toml
ファイルを参照することで見つけることができます。
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}
}