Vai alla navigazione

Generazione aumentata dal recupero

Migliora il tuo agente con ampie knowledge base usando RAG.

Panoramica

La Retrieval-Augmented Generation (RAG) consente al tuo agente di accedere e utilizzare ampie knowledge base durante le conversazioni. Invece di caricare interi documenti nella finestra di contesto, RAG recupera solo le informazioni più pertinenti per ogni query dell’utente, consentendo al tuo agente di:

  • Accedere a knowledge base molto più grandi di quanto potrebbe contenere un prompt
  • Fornire risposte più accurate e basate sulle conoscenze
  • Ridurre le allucinazioni facendo riferimento al materiale sorgente
  • Ampliare le conoscenze senza creare più agenti specializzati

RAG è ideale per gli agenti che devono fare riferimento a documenti di grandi dimensioni, manuali tecnici o knowledge base estese che supererebbero i limiti della finestra di contesto dei prompt tradizionali. RAG aggiunge una leggera latenza al tempo di risposta del tuo agente, circa 250 ms.

Questo video è stato registrato con una versione precedente della dashboard. I passaggi per configurare RAG non sono cambiati, ma alcuni elementi dell’interfaccia potrebbero apparire diversi.

Come funziona RAG

Quando RAG è abilitato, il tuo agente elabora le query degli utenti seguendo questi passaggi:

  1. Elaborazione della query: la domanda dell’utente viene analizzata e riformulata per un recupero ottimale.
  2. Generazione dell’embedding: la query elaborata viene convertita in un embedding vettoriale che rappresenta la domanda dell’utente.
  3. Recupero: il sistema trova i contenuti semanticamente più simili nella tua knowledge base.
  4. Generazione della risposta: l’agente genera una risposta utilizzando sia il contesto della conversazione sia le informazioni recuperate.

Questo processo garantisce che le informazioni pertinenti alla query dell’utente vengano passate all’LLM per generare una risposta corretta dal punto di vista fattuale.

Guida

Prerequisiti

Abilita RAG per il tuo agente

Nelle impostazioni del tuo agente, apri Knowledge Base e seleziona la scheda Retrieval. In Retrieval mode, scegli Every turn per cercare nella knowledge base a ogni turno, oppure On demand per consentire all’agente di cercare solo quando decide di averne bisogno. Prompt only disattiva il recupero.

Configura il modello di embedding, il limite di distanza vettoriale e il numero di candidati in Semantic search, nonché i limiti di caratteri e chunk in Retrieval limits.

Indicizzazione della knowledge base

Ogni documento nella tua knowledge base deve essere indicizzato prima di poter essere utilizzato con RAG. Questo processo avviene automaticamente quando un documento viene aggiunto a un agente con RAG abilitato.

L’indicizzazione di documenti di grandi dimensioni può richiedere alcuni minuti. Puoi controllarne lo stato nell’elenco della knowledge base.

Configura le modalità di utilizzo dei documenti (facoltativo)

Per ogni documento nella tua knowledge base, puoi scegliere come utilizzarlo:

  • Auto (predefinito): il documento viene recuperato solo se pertinente alla query
  • Prompt: il documento è sempre incluso nel prompt di sistema, indipendentemente dalla pertinenza
Opzioni della modalità di utilizzo dei documenti nella knowledge base

Impostare troppi documenti in modalità “Prompt” potrebbe superare i limiti di contesto. Usa questa opzione con parsimonia per le informazioni critiche.

Testa il tuo agente con RAG abilitato

Dopo aver salvato la configurazione, testa il tuo agente ponendo domande relative alla tua knowledge base. Ora l’agente dovrebbe essere in grado di recuperare e fare riferimento a informazioni specifiche dai tuoi documenti.

Limiti di utilizzo

Per garantire un’equa allocazione delle risorse, ElevenLabs applica limiti alla dimensione totale dei documenti che possono essere indicizzati per RAG per workspace, in base al piano di abbonamento.

I limiti sono i seguenti:

Piano di abbonamentoLimite dimensione totale dei documentiNote
Free1 MBGli indici potrebbero essere eliminati dopo inattività.
Starter2 MB
Creator20 MB
Pro100 MB
Scale500 MB
Business1 GB
Enterprise1 GBLimiti più alti disponibili in base al piano e al contratto.

Nota:

  • Questi limiti si applicano alla dimensione originale del file totale dei documenti indicizzati per RAG, non alla dimensione di archiviazione interna dell’indice RAG stesso (che può essere notevolmente più grande).
  • I documenti di dimensioni inferiori a 500 byte non possono essere indicizzati per RAG e verranno invece utilizzati automaticamente nel prompt.

Implementazione API

Puoi anche implementare RAG tramite l’API:

from elevenlabs import ElevenLabs
import time
# Initialize the ElevenLabs client
elevenlabs = ElevenLabs(api_key="your-api-key")
# First, index a document for RAG
document_id = "your-document-id"
embedding_model = "e5_mistral_7b_instruct"
# Trigger RAG indexing
response = elevenlabs.conversational_ai.knowledge_base.document.compute_rag_index(
documentation_id=document_id,
model=embedding_model
)
# Check indexing status
while response.status not in ["SUCCEEDED", "FAILED"]:
time.sleep(5) # Wait 5 seconds before checking status again
response = elevenlabs.conversational_ai.knowledge_base.document.compute_rag_index(
documentation_id=document_id,
model=embedding_model
)
# Then update agent configuration to use RAG
agent_id = "agent_7101k5zvyjhmfg983brhmhkd98n6"
# Get the current agent configuration
agent_config = elevenlabs.conversational_ai.agents.get(agent_id=agent_id)
# Enable RAG in the agent configuration
agent_config.agent.prompt.rag = {
"enabled": True,
"embedding_model": "e5_mistral_7b_instruct",
"max_documents_length": 10000
}
# Update document usage mode if needed
for i, doc in enumerate(agent_config.agent.prompt.knowledge_base):
if doc.id == document_id:
agent_config.agent.prompt.knowledge_base[i].usage_mode = "auto"
# Update the agent configuration
elevenlabs.conversational_ai.agents.update(
agent_id=agent_id,
conversation_config=agent_config.agent
)