LlamaIndex OSS (by LlamaIndex) はエージェントアプリケーション構築用のオープンソースフレームワークです。Parse は、エージェント型 OCR、解析、抽出、インデックス作成などのためのエンタープライズプラットフォームです。このフレームワークと一緒に LlamaParse を使用することも、単独で使用することもできます。登録とプロダクトリンクについては、下の LlamaParse を参照してください。
LlamaIndex で構築する場合、通常は LlamaIndex コアと選択した統合(またはプラグイン)のセットを操作します。LlamaIndex で Python での構築を開始する方法は 2 つあります:
-
スターター:
llama-index。コア LlamaIndex および統合の選択を含むスターター Python パッケージです。 -
カスタマイズ:
llama-index-core。コア LlamaIndex をインストールし、アプリケーションに必要な LlamaHub の LlamaIndex 統合パッケージを追加してください。コアとシームレスに連携する 300 以上の LlamaIndex 統合パッケージがあり、優先する LLM、埋め込み、ベクトルストアプロバイダーで構築できます。
LlamaIndex Python ライブラリは名前空間化されているため、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 OpenAILlamaParse はそれ自体が独立したプラットフォームで、ドキュメントエージェントとエージェント型 OCR に焦点を当てています。Parse (解析)、LlamaAgents (デプロイされたドキュメントエージェント)、Extract (構造化抽出)、Index (取り込みと RAG)を含んでいます。LlamaIndex フレームワークと一緒に使用することも、単独で使用することもできます。
- LlamaParse にサインアップ — アカウントを作成し、API キーを取得します。
- Parse — エージェント型 OCR およびドキュメント解析 (130+ 形式)。ドキュメント
- Extract — ドキュメントからの構造化データ抽出。ドキュメント
- Index — 取り込み、インデックス作成、RAG パイプライン。ドキュメント
- Split — 大きなドキュメントをサブカテゴリに分割。ドキュメント
- Agents —
Workflowsと Agent Builder でエンドツーエンドのドキュメントエージェントを構築。ドキュメント
注記:このREADMEはドキュメントほど頻繁に更新されていません。最新の更新についてはドキュメントを確認してください!
- LLMは知識生成と推論のための優れた技術です。公開されている大量のデータで事前学習されています。
- 自身のプライベートデータでLLMを最適に拡張するにはどうすればよいでしょうか?
LLMのデータ拡張を実行するための包括的なツールキットが必要です。
LlamaIndexが登場します。LlamaIndexは、LLMアプリを構築するための「データフレームワーク」です。以下のツールを提供します:
- 既存のデータソースとデータ形式(API、PDF、ドキュメント、SQL など)を取り込むためのデータコネクタを提供します。
- このデータをLLMで簡単に使用できるようにデータを構造化する方法(indices、graphs)を提供します。
- データに対する高度な検索・クエリインターフェースを提供します:任意のLLM入力プロンプトを入力すると、取得されたコンテキストと知識拡張出力が返されます。
- 外部アプリケーションフレームワーク(例:LangChain、Flask、Docker、ChatGPT など)との簡単な統合を可能にします。
LlamaIndexは初心者ユーザーと上級ユーザーの両方にツールを提供します。高レベルAPIにより、初心者ユーザーは5行のコードでLlamaIndexを使用してデータを取り込み、クエリできます。低レベルAPIにより、上級ユーザーは任意のモジュール(data connectors、indices、retrievers、query engines、reranking modules)をカスタマイズおよび拡張して、ニーズに合わせることができます。
貢献に興味がありますか?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