Aperçu
Nous travaillons toujours sur cette fonctionnalité, mais nous aimerions que vous l'essayiez !
Cette fonctionnalité est actuellement fournie dans le cadre d'un programme d'aperçu conformément à nos politiques de pré-sortie.
Avec New Relic, vous pouvez améliorer les agents NRAI avec RAG. Cela signifie que vous pouvez associer la documentation, les runbooks, les rétroactions incident et même la source du code à vos services, donnant ainsi à NRAI de meilleures informations détaillées sur les problèmes de votre système.
Démarrer avec RAG
Obtenez l'identifiant de votre organisation
{ actor { organization { id } }}
Créer un outil RAG
Il convient de noter que le nom et la description de votre outil RAG sont extrêmement importants ! Le LLM choisira d'utiliser un outil pour répondre à une prompt en fonction de l'exactitude du nom et de la description de l'outil.
mutation { entityManagementCreateRagTool( ragToolEntity: { description: "Runbooks for resolving incidents with APIs", name: "API Runbooks", scope: {id: `${ORGANIZATION_ID}`, type: ORGANIZATION} } ) { entity { id } }}
Télécharger un document sur l'API Blob
- Notez que cette étape spécifique ne se fait pas via NerdGraph. C'est parce que NerdGraph prend en charge les téléchargements de fichiers via ses 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
La réponse ressemblera à ceci :
{ "entityGuid": "MTIyODU0NTN8TkdFUHxSQUdfRE9DVU1FTlR8MDE5NGUyOTgtYmQzMS03NzA4LWI3NzItYzQ4MTZlYjNhYThk", "blobVersionEntity": null}
Afficher l'entité Document RAG représentée dans NerdGraph
{ actor { entityManagement { entity( id: `${RAG_DOCUMENT_GUID}` ) { ... on EntityManagementRagDocumentEntity { id name blob { url } type } } } }}
Maintenant que nous avons un outil RAG et un document RAG, nous devons les associer l’un à l’autre. Cela se fait via les API de gestion d'entités dans NerdGraph.
Créer une relation entre le document RAG et l'outil 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 } } }}
Requête pour voir les relations entre les documents RAG et les outils RAG
{ actor { entityManagement { relationships( filter: {sourceId: {eq: `${RAG_DOCUMENT_ID}`}} ) { items { type target { id type } } } } }}
Requête de l'outil RAG
Vous pouvez interroger votre outil RAG et recevoir des correspondances groupées en fonction des documents indexés pour un outil donné. Vous pouvez utiliser NRAI pour résumer les correspondances de blocs renvoyées, ou vous pouvez utiliser les API NerdGraph pour récupérer la correspondance et utiliser votre propre IA sur votre propre système.
{ actor { machineLearning { ragQueryData( prompt: "tell me about the incident", toolId: `${RAG_TOOL_GUID}` ) { blobId chunk documentId score toolId } } }}