翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Neptune Analytics グラフを使用して Amazon Bedrock ナレッジベースを作成する
GraphRAG は Amazon Bedrock ナレッジベースに完全に統合されており、グラフとベクトルストレージに Amazon Neptune Analytics を使用します。AWS マネジメントコンソール、AWS CLI、または AWS SDK を使用して、ナレッジベースで GraphRAG の使用を開始できます。
GraphRAG の使用を開始するために、既存のグラフインフラストラクチャは必要ありません。Amazon Bedrock ナレッジベースは、Amazon Neptune からのグラフの作成とメンテナンスを自動的に管理します。システムは、Amazon S3 バケットにアップロードされたドキュメントからエンティティ、事実、関係を抽出することで、グラフを自動的に作成および更新します。そのため、グラフモデリングに関する事前の知識なしに、関連するレスポンスをエンドユーザーに提供できます。グラフは Amazon Neptune Analytics に保存されます。
ナレッジベースを作成するときは、以下を設定または指定します。
ルートユーザーを使用してナレッジベースを作成することはできません。これらのステップを開始する前に、IAM ユーザーでログインします。
以下は、コンソールから Neptune GraphRAG を使用し、CLI を使用するためのナレッジベースを作成する方法を示しています。
- Console
-
コンソールから Neptune Analytics のナレッジベースを作成するには
-
Amazon Bedrock コンソールを使用するためのアクセス許可を持つ IAM ID を使用して、AWS マネジメントコンソールにサインインします。Amazon Bedrock コンソール (https://console.aws.amazon.com/bedrock) を開きます。
-
左側のナビゲーションペインで [ナレッジベース] を選択します。
-
[ナレッジベース] セクションで [作成] を選択し、[ベクトルストアを含むナレッジベース] を選択します。
-
(オプション) [ナレッジベースの詳細] で、デフォルトの名前を変更し、ナレッジベースの説明を入力します。
-
[IAM アクセス許可] で、IAM ロールを選択します。このロールは、他の必要な AWS のサービスにアクセスするためのアクセス許可を Amazon Bedrock に付与します。Amazon Bedrock にサービスロールを作成させるか、Neptune Analytics 用に作成した独自のカスタムロールを使用するかを選択できます。例については、Amazon Neptune Analytics でベクトルデータベースにアクセスするためのアクセス許可を参照してください。
-
データソースとして [Amazon S3] を選択し、[次へ] を選択してデータソースを設定します。
-
ナレッジベースを接続するためのデータソースとして使用され、Amazon Neptune Analytics と統合するために使用されるファイルの S3 URI を指定します。提供できる追加の手順とオプション情報については、「データソースをナレッジベースと接続する」を参照してください。
-
[埋め込みモデル] セクションで、埋め込みモデルを選択してデータをベクトル埋め込みに変換します。必要に応じて、[追加設定] セクションを使用してベクトルディメンションを指定できます。埋め込みタイプには、浮動小数点ベクトル埋め込みを使用することをお勧めします。
埋め込みモデルのベクトルディメンションは、Neptune Analytics グラフの作成時に指定したベクトルディメンションと一致している必要があります。
-
[ベクトルデータベース] セクションで、ベクトルストアを作成する方法を選択し、クエリに使用される埋め込みを保存するベクトルストアとして [Amazon Neptune Analytics (GraphRAG)] を選択します。ベクトルストアを作成するには、次のいずれかの方法を使用できます。
-
[新しいベクトルストアをクイック作成] メソッドを使用して、ベクトルストアの作成をすばやく開始することをお勧めします。ベクトルストアとして [Amazon Neptune Analytics (GraphRAG)] を選択します。このオプションでは、既存の Neptune Analytics リソースは必要ありません。ナレッジベースは、ドキュメントコーパスから派生したエンティティとその関係のグラフ表現とともに、Amazon Neptune でドキュメント埋め込みを自動的に生成して保存します。
-
または、Neptune Analytics グラフとベクトルインデックスを既に作成している場合は、[作成したベクトルストアを選択] オプションを使用できます。ベクトルストアとして [Amazon Neptune Analytics (GraphRAG)] を選択し、ベクトルインデックス内のグラフ ARN、ベクトルフィールド名、およびメタデータフィールド名を特定します。詳細については、「ナレッジベース用に作成したベクトルストアを使用するための前提条件」を参照してください。
-
[次へ] を選択して、ナレッジベースの詳細を確認します。次に進みナレッジベースを作成する前に、任意のセクションを編集できます。
ナレッジベースの作成にかかる時間は、特定の設定によって異なります。ナレッジベースの作成が完了すると、ナレッジベースのステータスは準備中または利用可能な状態に変更されます。
ナレッジベースの準備ができて使用可能になったら、最初にデータソースの同期を行い、その後も必要に応じて同期を行いコンテンツを最新の状態に保ちます。コンソールでナレッジベースを選択し、データソースの概要セクションで [同期] を選択します。
-
[ナレッジベースを作成] を選択します。Amazon Bedrock がナレッジベースを作成している間、[進行中] のステータスが表示されます。データソースを同期する前に、作成が完了するまで待つ必要があります。
-
Amazon Bedrock がナレッジベースの作成を完了したら、「データソースをナレッジベースと接続する」の手順に従ってデータソースを設定します。
- API
-
AWS CLI を使用して Neptune Analytics のナレッジベースを作成するには
-
まず、コンテキストエンリッチメント設定を使用してデータソースを作成します。このオペレーションを実行するには、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 コマンドを使用して取り込みを開始し、クエリの取得を実行する方法を示します。
データソースを同期する
ナレッジベースを作成したら、データを取り込むか同期して、クエリできるようにします。取り込み時には、グラフィカル構造が抽出され、指定したベクトル埋め込みモデルと設定に基づいて、データソースの未加工データがベクトル埋め込みに変換されます。
以下のコマンドは、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 グラフに接続されたナレッジベースをクエリする」を参照してください。