뉴렐릭을 사용하면 RAG로 NRAI 에이전트를 향상할 수 있습니다. 즉, 문서, 런북, 인시던트 레트로, 심지어 소스 코드까지 서비스와 연결하여 NRAI가 시스템 문제에 대해 더 나은 인사이트를 제공할 수 있음을 의미합니다.
RAG 시작하기
귀하의 조직 ID를 얻으십시오
{ actor { organization { id } }}
RAG 도구 만들기
주의하세요 - RAG 도구의 이름과 설명은 매우 중요합니다! LLM은 도구 이름과 설명의 정확성에 따라 프롬프트에 응답할 때 도구를 활용할지 여부를 선택합니다.
mutation { entityManagementCreateRagTool( ragToolEntity: { description: "Runbooks for resolving incidents with APIs", name: "API Runbooks", scope: {id: `${ORGANIZATION_ID}`, type: ORGANIZATION}} ) { entity { id } }}
Blob API에 문서 업로드
- 이 특정 단계는 NerdGraph를 통해서 이루어지지 않는다는 점에 유의하세요. NerdGraph는 API를 통한 파일 업로드를 지원하기 때문입니다.
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}": "MTIyODU0NTN8TkdFUHxSQUdfRE9DVU1FTlR8MDE5NGUyOTgtYmQzMS03NzA4LWI3NzItYzQ4MTZlYjNhYThk", "blobVersionEntity": null}
NerdGraph에 표현된 RAG 문서 보기
{ actor { entityManagement { entity( id: `${RAG_DOCUMENT_GUID}` ) { ... on EntityManagementRagDocumentEntity { id name blob { url } type } } } }}
이제 RAG 도구와 RAG 문서가 있으므로 이 둘을 서로 연결해야 합니다. 이 작업은 NerdGraph의 엔티티 관리 API를 통해 수행됩니다.
RAG 문서와 RAG 도구 간의 관계 생성
mutation { entityManagementCreateRelationship( relationship: { source: { scope: ORGANIZATION, id: `${RAG_DOCUMENT_GUID}` }, target: { scope: ORGANIZATION, id: `${RAG_TOOL_GUID}` }, type: "INDEXED_FOR"} ) { relationship { type target { id type } source { id type } } }}
RAG 문서와 RAG 도구 간의 관계를 확인하기 위한 쿼리
{ actor { entityManagement { relationships( filter: {sourceId: {eq: `${RAG_DOCUMENT_ID}`}} ) { items { type target { id type } } } } }}
RAG 도구 쿼리
RAG 도구를 쿼리하여 주어진 도구에 대해 색인된 문서를 기반으로 분할된 일치 항목을 받을 수 있습니다. NRAI를 사용하여 반환된 청크 일치 항목을 요약할 수도 있고, NerdGraph API를 사용하여 일치 항목을 검색하고 사용자 시스템에서 사용자 고유의 AI를 사용할 수도 있습니다.
{ actor { machineLearning { ragQueryData(prompt: "tell me about the incident", toolId: `${RAG_TOOL_GUID}`) { blobId chunk documentId score toolId } } }}