New Relicを使用すると、ドキュメント、Runbook、インシデント レトロ、さらにはソース コードをサービスに関連付けることにより、検索拡張生成 (RAG) を使用してNew Relic AIエージェントを強化できます。 このプロセスにより、 New Relic AIシステムの問題に対するインサイトを改善します。 このチュートリアルでは、組織 ID を取得し、RAG ツールを作成し、Blob API を使用してプラットフォームにドキュメントを追加する方法について説明します。
ドキュメントを追加したら、それらを RAG ツールに関連付ける関係を作成します。その後、RAG ドキュメントと RAG ツール間の関係を照会して設定を確認できます。 最後のステップは、RAG ツール自体にクエリを実行して、関連するインデックス付き情報を取得することです。
ナレッジ コネクタの詳細については、 「New Relic AI ナレッジ コネクタ」を参照してください。
重要
次の手順を実行する前に、「組織製品管理者」権限があることを確認してください。
コンテンツのインデックス作成を開始し、New Relic AI のナレッジ コネクタのメリットを活用するには、次の手順に従ってください。
タスク1: RAGツールを作成する
組織 ID はアカウントを一意に識別し、作成した RAG ツール、アップロードしたドキュメント、確立した関係がNew Relic内の組織に関連付けられることを保証します。
RAG ツールとドキュメントを設定および管理するときに、NerdGraph でミューテーションとクエリを実行するには組織 ID が必要です。次のクエリを実行し、組織 ID を後の手順で使えるように保管しておきます。
サンプルクエリ
{ actor { organization { id } }}
RAG ツールは、New Relic 内の関連ドキュメントとリソースを整理するための専用のコンテナーとして機能します。RAG ツールの明確な名前と正確な説明は、LLM が各プロンプトに対して適切なツールを選択するのに役立ち、関連性のあるコンテキスト認識型の応答を保証します。
New Relic アカウントに新しい RAG ツールを作成するには、次のentityManagementCreateRagTool
ミューテーションを実行します。
${ORGANIZATION_ID}
、前の手順で取得した実際の組織 ID に置き換えてください。成功した場合、RAG ツールに対して
id
受け取ります。入力
問題の名前
データタイプ
必須ですか?
説明
ragToolEntity
オブジェクト
はい
新しい RAG ツールの設定を含む入力オブジェクト。
description
弦
はい
RAG ツールの目的を明確かつ正確に説明します。
name
弦
はい
RAG ツールの一意の名前。
scope
オブジェクト
はい
ツールが作成されるコンテキストを定義するオブジェクト。
scope.id
弦
はい
組織の一意の ID (
${ORGANIZATION_ID}
)。
scope.type
弦
はい
スコープのタイプ。
ORGANIZATION
である必要があります。
サンプル変異
mutation {entityManagementCreateRagTool(ragToolEntity: {description: "Runbooks for resolving incidents with APIs",name: "API Runbooks",scope: {id: `${ORGANIZATION_ID}`, type: ORGANIZATION}}) {entity {id}}}返された
id
は、後の手順でドキュメントをツールにリンクしたり、関係を検証したり、 New Relicで関連情報をツールに照会したりするときに必要になるため、保存する必要があります。
タスク2: ドキュメントのインデックスを作成する
重要
インデックスが作成されたすべてのドキュメントは、組織内のすべてのユーザーに表示されます。インデックスを作成するドキュメントが社内ポリシーに準拠していることを確認し、機密データや個人情報をアップロードしないでください。
Blob APIとその目的
Blob API は、ドキュメントやランブックなどのファイルをアカウントにアップロードするために設計された New Relic サービスです。NerdGraph は構造化データのクエリと変更に最適化されており、効率的なファイル転送には最適化されていないため、ドキュメントのアップロードには Blob API が必要です。
認証要件
ドキュメントをアップロードする権限を持つ有効なNew Relic APIキーが必要です。 Blob APIを使用してNew RelicにドキュメントをアップロードするためのAPIキーを取得するには:
New Relicアカウントにログインします。
APIキーUIページからAPIキーを作成および管理します。
Create a key[キーの作成]をクリックし、必要な詳細を入力します (または必要な権限を持つ既存のキーを使用します)。
Create a key[キーの作成]をクリックし、生成されたキー (NRAK-XXXXXXXXXX のようになります) をコピーします。
curl
bash
コマンドを使用してドキュメントをアップロードする方法の例を次に示します。入力
問題の名前
データタイプ
必須ですか?
説明
Api-Key
弦
はい
認証用のNew Relic APIキー。
NewRelic-Entity
JSONオブジェクト
はい
ドキュメントの名前など、ドキュメントに関するメタデータ。
Content-Type
弦
はい
アップロードされるファイルの形式 (例:
application/json
)。
payload
(
@incidents.json
)
ファイル
はい
アップロードするドキュメント ファイル (ファイル パスで指定)。
サンプルクエリ
bash$curl -X POST https://blob-api.one-service.newrelic.com/v1/e/organizations/$ORGANIZATION_ID/RagDocuments \>-H 'Api-Key: NRAK-XXXXXXXXXX' \>-H 'NewRelic-Entity: {"name": "Runbooks for API service" }' \>-H 'Content-Type: application/json' \>-d @incidents.jsonサンプル回答
レスポンス
データタイプ
説明
entityGuid
弦
アップロードされた RAG ドキュメントの一意の識別子。
blobVersionEntity
オブジェクト
アップロードされた BLOB のバージョンを表します。
{"entityGuid": "MTIyODU0NTN8TkdFUHxSQUdfRE9DVU1FTlR8MDE5NGUyOTgtYmQzMS03NzA4LWI3NzItYzQ4MTZlYjNhYThk","blobVersionEntity": null}次のステップ
ドキュメントをアップロードすると、インデックスが作成され、New Relic AI で検索および取得できるようになります。RAG ツールとの関係を作成したり、NerdGraph でドキュメントをクエリしたりするには、応答から
entityGuid
保存する必要があります。
ドキュメントが Blob API 経由でアップロードされた後、このクエリを実行すると、アップロードが成功したこと、およびドキュメントが独自の一意の識別子とプロパティを持つ RAG ドキュメント エンティティとして適切に登録されたことが確認されます。
入力
問題の名前 | データタイプ | 必須ですか? | 説明 |
---|---|---|---|
| 弦 | はい | 取得する RAG ドキュメントの一意の GUID。 |
サンプルクエリ
以下のクエリで、 ${RAG_DOCUMENT_GUID}
プレースホルダーを前の手順で受け取ったentityGuid
に置き換えます。
{ actor { entityManagement { entity( id: `${RAG_DOCUMENT_GUID}` ) { ... on EntityManagementRagDocumentEntity { id name blob { url } type } } } }}
このクエリは、RAG ドキュメントに関する次の詳細を返します。
id
: RAG ドキュメントの固有 ID。name
: RAG ドキュメントの名前。blob { url }
: アップロードされたドキュメントにアクセスするための URL。type
: エンティティのタイプ。この場合はEntityManagementRagDocumentEntity
です。
RAG ツールを作成し、ドキュメントをアップロードし、アップロードが成功したことを確認したので、次のステップでは、RAG ツールと RAG ドキュメントを関連付けて、ドキュメントを New Relic AI で検索および使用できるようにします。これを行うには、 entityManagementCreateRelationship
ミューテーションを実行します。
${RAG_DOCUMENT_GUID}
、Blob API 経由のドキュメントアップロードの応答からのentityGuid
に置き換えます。${RAG_TOOL_GUID}
、RAG ツール作成ミューテーションの応答からのid
に置き換えます。入力
問題の名前
データタイプ
必須ですか?
説明
relationship
オブジェクト
はい
関係の詳細を含む入力オブジェクト。
source
オブジェクト
はい
リレーションシップのソース エンティティ (RAG ドキュメント)。
source.scope
弦
はい
ソース エンティティのスコープ。
ORGANIZATION
である必要があります。
source.id
弦
はい
RAG ドキュメントの一意の GUID (
${RAG_DOCUMENT_GUID}
)。
target
オブジェクト
はい
リレーションシップのターゲット エンティティ (RAG ツール)。
target.scope
弦
はい
ターゲット エンティティのスコープ。
ORGANIZATION
である必要があります。
target.id
弦
はい
RAG ツールの一意の GUID (
${RAG_TOOL_GUID}
)。
type
弦
はい
関係のタイプ。
"INDEXED_FOR"
である必要があります。
サンプル変異
mutation {entityManagementCreateRelationship(relationship: {source: {scope: ORGANIZATION,id: `${RAG_DOCUMENT_GUID}`},target: {scope: ORGANIZATION,id: `${RAG_TOOL_GUID}`},type: "INDEXED_FOR"}) {relationship {typetarget {idtype}source {idtype}}}}
タスク3: 関連情報を取得する
RAG ドキュメントと RAG ツール間の関係を作成した後、NerdGraph で関係を照会して関連付けを検証できます。これにより、ドキュメントが適切にリンクされ、New Relic AI で使用できるようになります。
${RAG_DOCUMENT_ID}
アップロードしたドキュメントのentityGuid
に置き換えます。入力
問題の名前
データタイプ
必須ですか?
説明
relationships
クエリ
はい
エンティティ間の関係を取得するためのクエリ。
filter
オブジェクト
いいえ
属性に基づいて関係をフィルタリングするために使用されるオブジェクト。
filter.sourceId
オブジェクト
いいえ
ソース エンティティの一意の識別子でフィルターするオブジェクト。
filter.sourceId.eq
弦
いいえ
一致する RAG ドキュメントの一意の GUID。
サンプルクエリ
{actor {entityManagement {relationships(filter: {sourceId: {eq: `${RAG_DOCUMENT_ID}`}}) {items {typetarget {idtype}}}}}}
RAG ツールとインデックス付きドキュメントを設定したら、RAG ツールにクエリを実行して、プロンプトに基づいて関連情報を取得できます。これにより、New Relic AI は組織のドキュメントを使用してコンテキストに応じた回答を表示できるようになります。
入力
問題の名前 | データタイプ | 必須ですか? | 説明 |
---|---|---|---|
| 弦 | はい | RAG ツールで処理する自然言語クエリ。 |
| 弦 | はい | 書き込まれる RAG ツールの一意の GUID。 |
サンプルクエリ
{ actor { machineLearning { ragQueryData( prompt: "tell me about the incident", toolId: `${RAG_TOOL_GUID}` ) { blobId chunk documentId score toolId } } }}
レスポンスには、インデックス付けされたドキュメントからのチャンク化された一致が含まれます。これは直接使用することも、New Relic AI で要約することもできます。