翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Neptune Analytics グラフを使用して Amazon Bedrock ナレッジベースを作成する
GraphRAG は Amazon Bedrock ナレッジベースに完全に統合されており、グラフとベクトルのストレージに Amazon Neptune Analytics を使用します。 AWS Management Console、、または AWS SDK を使用して AWS CLI、ナレッジベースで GraphRAG の使用を開始できます。
GraphRAG の使用を開始するために、既存のグラフインフラストラクチャは必要ありません。Amazon Bedrock ナレッジベースは、Amazon Neptune からのグラフの作成とメンテナンスを自動的に管理します。システムは、Amazon S3 バケットにアップロードしたドキュメントからエンティティ、事実、関係を抽出することで、グラフを自動的に作成および更新します。 を使用すると、グラフモデリングに関する事前の知識なしに、関連するレスポンスをエンドユーザーに提供できます。グラフは Amazon Neptune Analytics に保存されます。
ナレッジベースを作成するときは、以下を設定または指定します。
ルートユーザーを使用してナレッジベースを作成することはできません。これらのステップを開始する前に、IAM ユーザーでログインします。
以下は、コンソールと CLI から Neptune GraphRAG を使用するためのナレッジベースを作成する方法を示しています。
- Console
-
コンソールから Neptune Analytics のナレッジベースを作成するには
-
Amazon Bedrock コンソールを使用するアクセス許可を持つ IAM プリンシパル AWS Management Console を使用して にサインインします。次に、https://console.aws.amazon.com/bedrock/ で Amazon Bedrock コンソールを開きます。
-
左側のナビゲーションペインで、ナレッジベースを選択します。
-
「ナレッジベース」セクションで「作成」を選択し、「ベクトルストアを含むナレッジベース」を選択します。
-
(オプション) ナレッジベースの詳細で、デフォルト名を変更し、ナレッジベースの説明を入力します。
-
IAM アクセス許可で、他の必要な にアクセスするためのアクセス許可を Amazon Bedrock に付与する IAM ロールを選択します AWS のサービス。Amazon Bedrock にサービスロールを作成させるか、Neptune Analytics 用に作成した独自のカスタムロールを使用するかを選択できます。例については、Amazon Neptune Analytics でベクトルデータベースにアクセスするためのアクセス許可を参照してください。
-
データソースとして Amazon S3 を選択し、次へを選択してデータソースを設定します。
-
ナレッジベースを に接続し、Amazon Neptune Analytics と統合するためのデータソースとして使用されるファイルの S3 URI を指定します。提供できる追加のステップとオプション情報については、「」を参照してくださいデータソースをナレッジベースに接続する。
-
埋め込みモデルセクションで、埋め込みモデルを選択してデータをベクトル埋め込みに変換します。必要に応じて、追加設定セクションを使用してベクトルディメンションを指定できます。埋め込みタイプでは、浮動小数点ベクトル埋め込みを使用することをお勧めします。
埋め込みモデルのベクトルディメンションは、Neptune Analytics グラフの作成時に指定したベクトルディメンションと一致する必要があります。
-
ベクトルデータベースセクションで、ベクトルストアを作成する方法を選択し、クエリに使用される埋め込みを保存するベクトルストアとして Amazon Neptune Analytics (GraphRAG) を選択します。ベクトルストアを作成するには、次のいずれかの方法を使用できます。
-
Quick create a new vector store メソッドを使用して、ベクトルストアの作成をすばやく開始することをお勧めします。ベクトルストアとして Amazon Neptune Analytics (GraphRAG) を選択します。このオプションでは、既存の Neptune Analytics リソースは必要ありません。ナレッジベースは、ドキュメントコーパスから派生したエンティティとその関係のグラフ表現とともに、Amazon Neptune でドキュメント埋め込みを自動的に生成して保存します。
-
または、Neptune Analytics グラフとベクトルインデックスを既に作成している場合は、「作成したベクトルストアを選択」オプションを使用できます。ベクトルストアとして Amazon Neptune Analytics (GraphRAG) を選択し、ベクトルインデックス内のグラフ ARN、ベクトルフィールド名、メタデータフィールド名を特定します。詳細については、「ナレッジベース用に作成したベクトルストアを使用するための前提条件」を参照してください。
-
Next を選択し、ナレッジベースの詳細を確認します。次に進みナレッジベースを作成する前に、任意のセクションを編集できます。
ナレッジベースの作成にかかる時間は、特定の設定によって異なります。ナレッジベースの作成が完了すると、ナレッジベースのステータスは準備中または利用可能な状態に変更されます。
ナレッジベースの準備ができて使用可能になったら、最初にデータソースの同期を行い、その後も必要に応じて同期を行いコンテンツを最新の状態に保ちます。コンソールでナレッジベースを選択し、データソースの概要セクションで [同期] を選択します。
-
ナレッジベースの作成 を選択します。Amazon Bedrock がナレッジベースを作成しているときに、進行中のステータスが表示されます。データソースを同期するには、作成が完了するまで待つ必要があります。
-
Amazon Bedrock がナレッジベースの作成を完了したら、 の手順に従ってデータソースを設定しますデータソースをナレッジベースに接続する。
- API
-
を使用して Neptune Analytics のナレッジベースを作成するには AWS CLI
-
まず、コンテキストエンリッチメント設定を使用してデータソースを作成します。このオペレーションを実行するには、Amazon Bedrock エージェントのビルドタイムエンドポイントを使用してCreateDataSource
リクエストを送信します。CLI コマンドの例を以下に示します。
aws bedrock-agent create-data-source \
--name graph_rag_source \
--description data_source_for_graph_rag \
--knowledge-base-id LDBBY2K5AG \
--cli-input-json "file://input.json"
以下のコードは、input.json
ファイルの内容を示しています。
{
"dataSourceConfiguration": {
"s3Configuration": {
"bucketArn": "arn:aws:s3:::<example-graphrag-datasets>
",
"bucketOwnerAccountId": "<ABCDEFGHIJ>"
,
"inclusionPrefixes": [ <"example-dataset">
]
},
"type": "S3",
},
"VectorIngestionConfiguration": {
"contextEnrichmentConfiguration":
"type": "BEDROCK_FOUNDATION_MODEL",
"bedrockFoundationModelConfiguration": {
"modelArn": "arn:aws:bedrock:<region>
::foundation-model/anthropic.claude-3-haiku-20240307-v1:0",
"enrichmentStrategyConfiguration": {
"method": "CHUNK_ENTITY_EXTRACTION"
}
}
}
}
-
ナレッジベースを作成するには、Amazon Bedrock エージェントのビルドタイムエンドポイントを使用してCreateKnowledgeBase
リクエストを送信します。CLI コマンドの例を以下に示します。
aws bi create-knowledge-base \
--name <"knowledge-base-graphrag">
\
--role-arn arn:aws:iam::<accountId>
:role/<BedrockExecutionRoleForKnowledgeBase>
\
--cli-input-json "file://input.json"
以下は、input.json
ファイルの内容を示しています。
{
"storageConfiguration": {
"type": "NEPTUNE_ANALYTICS"
"neptuneAnalyticsConfiguration": {
"graphArn": "arn:aws:neptune-graph:<region>
:<>
:graph/<graphID>
",
"fieldMapping": {
"metadataField": "metadata",
"textField": "text"
},
}
},
"knowledgeBaseConfiguration": {
"type": "VECTOR",
"vectorKnowledgeBaseConfiguration": {
"embeddingModelArn": "arn:aws:bedrock:<region>
::foundation-model/cohere.embed-english-v3"
}
}
}
-
GraphRAG ベースのアプリケーションが実行されている場合、ナレッジベース API オペレーションを引き続き使用して、より包括的で関連性があり、説明可能なレスポンスをエンドユーザーに提供できます。以下のセクションでは、CLI コマンドを使用して取り込みを開始し、クエリの取得を実行する方法を示します。
データソースを同期する
ナレッジベースを作成したら、データを取り込むか同期して、クエリできるようにします。取り込みは、グラフィカル構造を抽出し、指定したベクトル埋め込みモデルと設定に基づいて、データソースの raw データをベクトル埋め込みに変換します。
次のコマンドは、 CLI を使用して取り込みジョブを開始する方法の例を示しています。
aws bedrock-agent start-ingestion-job \
--data-source-id <"ABCDEFGHIJ">
\
--knowledge-base-id <"EFGHIJKLMN">
コンソールと API を使用してデータソースを同期する方法の詳細については、「」を参照してくださいAmazon Bedrock ナレッジベースとデータを同期する。
ナレッジベースに変更を取り込む
Amazon S3 をデータソースとして使用する場合は、データソースを変更し、変更を 1 つのステップで同期できます。直接取り込みを使用すると、ナレッジベース内のファイルを 1 つのアクションで直接追加、更新、または削除でき、ナレッジベースは同期することなくドキュメントにアクセスできます。直接取り込みでは、 KnowledgeBaseDocuments
API オペレーションを使用して、ナレッジベース用に設定されたベクトルストアに直接送信するドキュメントのインデックスを作成します。これらのオペレーションを使用してナレッジベースのドキュメントを直接表示することもできます。接続されたデータソースに移動して表示する必要はありません。詳細については、「変更をナレッジベースに直接取り込む」を参照してください。
ナレッジベースをテストする
ナレッジベースをセットアップしたので、クエリを送信してレスポンスを生成してテストできます。
次のコードは、CLI コマンドの例を示しています。
aws bedrock-agent-runtime retrieve \
--knowledge-base-id <"ABCDEFGHIJ">
\
--retrieval-query="{\"text\": \"What are the top three video games available now?\"}"
詳細については、「Amazon Neptune Analytics グラフに接続されたナレッジベースをクエリする」を参照してください。