1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GraphRAGの環境構築と「Hello World」

1
Posted at

GraphRAGの環境構築と「Hello World」の例は、GraphRAGを始める上で不可欠なステップです。ここではMicrosoft GraphRAGライブラリを基に説明し、Python環境を前提とします。

1. GraphRAGの環境構築

GraphRAGを使用するには、Python環境といくつかの必須ライブラリが必要です。

1.1. Pythonと仮想環境の準備(推奨)

新しいプロジェクトを開始する際は、仮想環境を使用することをおすすめします。これにより、プロジェクト間の依存関係の衝突を防ぎ、環境をきれいに保つことができます。

# 仮想環境の作成(例: .venv)
python -m venv .venv

# 仮想環境のアクティベート
# Windows:
.venv\Scripts\activate
# macOS/Linux:
source .venv/bin/activate

1.2. GraphRAGのインストール

GraphRAGライブラリはpip経由でインストールできます。

pip install graphrag

1.3. その他の必須ライブラリのインストール(必要に応じて)

GraphRAGは内部的にさまざまなツールを利用できます。例えば、データ処理のためにPandasやOpenPyXL、LLM連携のためにOpenAIライブラリなどが必要になる場合があります。通常、graphragのインストール時に必要な依存関係のほとんどはインストールされますが、特定の機能を使用するには追加のインストールが必要になることがあります。

  • OpenAIまたはその他のLLMライブラリ: LLMを使用するには、そのLLMサービスのPythonライブラリをインストールする必要があります。
  pip install openai
  • ファイル形式のサポート: 特定のファイル(例: .docx、.pdf)を処理するには、関連ライブラリをインストールする必要がある場合があります。
  pip install python-docx pypdf

1.4. 環境変数の設定(APIキー)

LLMサービス(例: OpenAI)を使用するには、APIキーを環境変数として設定する必要があります。

 * Windows(コマンドプロンプト):
   set OPENAI_API_KEY="あなたのAPIキー"

 * macOS/Linux(ターミナル):
   export OPENAI_API_KEY="あなたのAPIキー"

   または、.envファイルに保存し、python-dotenvライブラリでロードすることもできます。
   # .env ファイルの内容
OPENAI_API_KEY="あなたのAPIキー"

   # Pythonコードで.envファイルをロード
from dotenv import load_dotenv
load_dotenv()

2. GraphRAG「Hello World」の例

GraphRAGの「Hello World」は、通常、小さなテキストデータセットから知識グラフを生成し、それを利用して簡単な質問に答えるプロセスを含みます。ここでは、ごく簡単なテキストファイルとgraphragの基本機能を使用します。

2.1. データの準備

まず、GraphRAGが分析するテキストデータを準備します。プロジェクトディレクトリに簡単なテキストファイル(input.txt)を作成します。

input.txt ファイルの内容

GraphRAG is a new technique developed by Microsoft for improving LLM accuracy.
It combines knowledge graphs with retrieval-augmented generation.
This technology helps reduce hallucinations and provides more explainable AI.
GraphRAG builds on traditional RAG by adding a structured knowledge layer.
It aims to enhance the reliability of large language models.

2.2. 設定ファイルの準備 (config.yaml)

GraphRAGはconfig.yamlファイルを通じて実行設定を管理します。このファイルは、入力データパス、出力パス、LLM設定などを定義します。

config.yaml ファイルの内容

input:
  # データがあるディレクトリ
  base_dir: ./

output:
  # 結果が保存されるディレクトリ
  base_dir: ./output/

llm:
  # 使用するLLMプロバイダー(例: openai, azure_openai)
  provider: openai
  # OpenAIモデル名(例: gpt-4o, gpt-3.5-turbo)
  model: gpt-4o # または gpt-3.5-turbo
  api_key: "${OPENAI_API_KEY}" # 環境変数からロード

embeddings:
  # エンベディングモデルの設定
  provider: openai
  model: text-embedding-ada-002 # OpenAIエンベディングモデル
  api_key: "${OPENAI_API_KEY}"

reporting:
  # レポート設定(必要に応じて)
  type: console

GraphRAG処理パイプラインの設定

GraphRAG 1.0では、基本パイプラインが自動化されています。

2.3. Pythonスクリプトの作成 (hello_graphrag.py)

次に、GraphRAGを実行し、「Hello World」の質問に答えるPythonスクリプトを作成します。

hello_graphrag.py

import os
from graphrag.query.llm.base import BaseLLM
from graphrag.query.llm.openai import OpenAI

# 環境変数のロード(config.yamlから直接ロードする場合は不要)
# from dotenv import load_dotenv
# load_dotenv()

# GraphRAGのコアライブラリをインポート
# GraphRAG 1.0はCLIによる実行を推奨していますが、
# ここでは主要なコンポーネントを直接使用して示します。

# LLMの初期化(config.yaml設定に基づくこともできますが、ここでは直接初期化)
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
    raise ValueError("OPENAI_API_KEY 環境変数が設定されていません。")

llm: BaseLLM = OpenAI(api_key=api_key, model="gpt-4o") # または "gpt-3.5-turbo"

print("--- GraphRAG Simple Query Example ---")

# 簡単な質問
query_text = "What is GraphRAG?"

try:
    print(f"\nQuery: {query_text}")
    # GraphRAGのLLMユーティリティを使用して簡単なテキスト生成
    # (知識グラフの生成と活用はCLI 'graphrag run' の後 'graphrag query' で実行)
    response = llm.generate_text(prompt=f"Answer the following question based on the provided text: '{query_text}'\n\nText:\n{open('input.txt').read()}")

    print("\n--- LLM Response (Direct) ---")
    print(response)

except Exception as e:
    print(f"エラーが発生しました: {e}")
    print("OPENAI_API_KEYが正しく設定されており、インターネットに接続されていることを確認してください。")
    print("また、OpenAIモデル(例: gpt-4o)が正しく指定されているか確認してください。")

--- GraphRAG CLIによる一般的な使用フロー(参考) ---

  • 実際のGraphRAGの使用フローは以下のとおりです:
# 1. 'input' ディレクトリにデータを配置(例: input.txt)
# 2. 'config.yaml' を設定
# 3. GraphRAGを実行(知識グラフの生成)
#    graphrag run --config_yaml ./config.yaml
# 4. GraphRAGでクエリを実行(知識グラフベースの回答)
#    graphrag query "What is GraphRAG?" --config_yaml ./config.yaml
# この「Hello World」の例は、CLIなしでPythonコード内でLLM連携を示す最小限の例です。
# 完全なGraphRAG機能を使用するには、上記のCLIコマンドを実行する必要があります。

2.4. 実行

ターミナルを開き、以下のコマンドを順番に実行します。

 * 仮想環境のアクティベート:
   # Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activate

 * 必要なライブラリのインストール:
   pip install graphrag openai

 * APIキーの設定(必須):
   # Windows
set OPENAI_API_KEY="あなたのOpenAI APIキー"
# macOS/Linux
export OPENAI_API_KEY="あなたのOpenAI APIキー"
  • Pythonスクリプトの実行:
python hello_graphrag.py

予想される出力(OpenAIの応答によって異なる場合があります):

--- GraphRAG Simple Query Example ---

Query: What is GraphRAG?

--- LLM Response (Direct) ---
GraphRAG is a new technique developed by Microsoft designed to improve the accuracy of Large Language Models (LLMs). It integrates knowledge graphs with retrieval-augmented generation (RAG) to reduce hallucinations, provide more explainable AI, and enhance the reliability of LLMs by adding a structured knowledge layer on top of traditional RAG.

3. GraphRAGの実際の使用フロー(CLIベース)

上記の「Hello World」の例は、GraphRAGライブラリの一部のコンポーネントを直接使用する非常に簡単な例です。GraphRAGの真の力と効率性を体験するには、Microsoftが提供するCLI(コマンドラインインターフェース)を使用することをおすすめします。
実際のGraphRAGの使用フロー:

  • データの準備: inputディレクトリにテキストドキュメント(.txt、.docx、.pdfなど)を配置します。
  • config.yamlの設定: 上で示したconfig.yamlファイルをプロジェクトのルートに保存します。
  • GraphRAGの実行(知識グラフの生成とインデックス作成):
    このコマンドは、入力データを処理して知識グラフを生成し、エンティティ、関係、コミュニティなどを抽出します。これには多少時間がかかる場合があります。
graphrag run --config_yaml ./config.yaml

このコマンドを実行すると、outputディレクトリに生成された知識グラフデータやその他のインデックス作成結果が保存されます。

  • GraphRAGのクエリ(知識グラフベースの回答):
    知識グラフが生成された後、CLIを使用して知識グラフベースで質問をすることができます。
graphrag query "What is GraphRAG?" --config_yaml ./config.yaml

このコマンドは、生成された知識グラフを活用して質問に回答します。
注意: graphrag runコマンドは、LLMを使用してエンティティ抽出や関係の特定などを行うため、API呼び出しコストが発生する可能性があります。小さなデータセットから始めてテストすることをおすすめします。
この「Hello World」と実際の使用フローの説明が、GraphRAGの環境構築と基本的な使い方を理解するのに役立つことを願っています。
GraphRAGについてさらに詳しく知りたいことや、試してみたいことはありますか?

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?