LlamaIndex OSS (by LlamaIndex) は、エージェント型アプリケーションを構築するためのオープンソースフレームワークです。Parse は、エージェント型 OCR、パース、抽出、インデックス化などを行うためのエンタープライズプラットフォームです。このフレームワークと共に LlamaParse を使用することも、単独で使用することもできます。サインアップと製品リンクについては、下の LlamaParse をご覧ください。
LlamaIndex での開発には、通常 LlamaIndex コアと選択した統合パッケージ(またはプラグイン)を使用します。Python で LlamaIndex を使い始める方法は 2 つあります。
-
Starter:
llama-index。コア LlamaIndex および統合パッケージの選りすぐりを含むスターター Python パッケージです。 -
Customized:
llama-index-core。コア LlamaIndex をインストールし、アプリケーションに必要な LlamaIndex 統合パッケージを LlamaHub から追加します。コアと組み合わせて自由に動作する 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+ フォーマット)。Docs
- Extract — ドキュメントからの構造化データ抽出。Docs
- Index — 取り込み、インデックス化、RAG パイプライン。Docs
- Split — 大規模なドキュメントをサブカテゴリに分割します。Docs
- Agents —
Workflowsと Agent Builder を使用してエンドツーエンドのドキュメントエージェントを構築します。Docs
注記: この README はドキュメントほど頻繁には更新されません。最新の更新情報については、上記のドキュメントをご確認ください!
- LLM は知識生成と推論のための優れたテクノロジーです。公開されている大量のデータで事前学習されています。
- 自社のプライベートデータで LLM を最適に拡張するにはどうすればよいでしょうか?
このデータ拡張を実現するための包括的なツールキットが必要です。
ここで LlamaIndex が登場します。LlamaIndex は「データフレームワーク」で、LLM アプリの構築を支援します。以下のツールを提供します。
- 既存のデータソースとデータ形式(API、PDF、ドキュメント、SQL など)を取り込むためのデータコネクタを提供します。
- このデータを LLM で簡単に使用できるよう、データを構造化する(インデックス、グラフ)方法を提供します。
- データに対する高度な検索/クエリインターフェースを提供します:任意の LLM 入力プロンプトを入力すると、検索されたコンテキストと知識拡張された出力を取得できます。
- 外側のアプリケーションフレームワーク(例:LangChain、Flask、Docker、ChatGPT など)との簡単な統合を可能にします。
LlamaIndex は初心者ユーザーと上級ユーザーの両方のためのツールを提供します。高レベル API により、初心者ユーザーは 5 行のコードで LlamaIndex を使用してデータを取り込んでクエリできます。低レベル API により、上級ユーザーはニーズに合わせてモジュール(データコネクタ、インデックス、検索器、クエリエンジン、リランキングモジュール)をカスタマイズして拡張できます。
貢献に興味がありますか?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 にはパッケージのインストールに含まれる nltk と tiktoken のキャッシュを含む _static フォルダーが含まれています。これにより、実行時にディスクアクセスが制限された環境で 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