Hoppa till navigering

Retrieval-Augmented Generation

Förbättra din agent med stora kunskapsbaser med hjälp av RAG.

Översikt

Retrieval-Augmented Generation (RAG) gör det möjligt för din agent att komma åt och använda stora kunskapsbaser under konversationer. I stället för att läsa in hela dokument i kontextfönstret hämtar RAG bara den mest relevanta informationen för varje användarfråga, vilket gör att din agent kan:

  • Komma åt mycket större kunskapsbaser än vad som ryms i en prompt
  • Ge mer korrekta, kunskapsbaserade svar
  • Minska hallucinationer genom att referera till källmaterial
  • Skala kunskap utan att skapa flera specialiserade agenter

RAG är idealiskt för agenter som behöver referera till stora dokument, tekniska manualer eller omfattande kunskapsbaser som skulle överskrida kontextfönstrets gränser vid traditionell prompting. RAG lägger till en liten latens i din agents svarstid, omkring 250 ms.

Den här videon spelades in med en tidigare version av dashboarden. Stegen för att konfigurera RAG är oförändrade, men vissa gränssnittselement kan se annorlunda ut.

Så fungerar RAG

När RAG är aktiverat bearbetar din agent användarfrågor genom följande steg:

  1. Bearbetning av fråga: Användarens fråga analyseras och omformuleras för optimal hämtning.
  2. Generering av inbäddning: Den bearbetade frågan omvandlas till en vektorinbäddning som representerar användarens fråga.
  3. Hämtning: Systemet hittar det semantiskt mest liknande innehållet i din kunskapsbas.
  4. Generering av svar: Agenten genererar ett svar med både konversationskontexten och den hämtade informationen.

Den här processen säkerställer att information som är relevant för användarens fråga skickas till LLM för att generera ett faktamässigt korrekt svar.

Guide

Förutsättningar

Aktivera RAG för din agent

Gå till avsnittet Knowledge Base i agentens inställningar och aktivera alternativet Use RAG. Konfigurera inbäddningsmodellen, maximalt antal dokumentdelar och maximalt vektoravstånd under fliken Advanced efter behov.

RAG-konfigurationsalternativ, inklusive val av inbäddningsmodell

Indexering av kunskapsbasen

Varje dokument i din kunskapsbas måste indexeras innan det kan användas med RAG. Den här processen sker automatiskt när ett dokument läggs till i en agent med RAG aktiverat.

Indexering kan ta några minuter för stora dokument. Du kan kontrollera indexeringsstatusen i listan över kunskapsbaser.

Konfigurera lägen för dokumentanvändning (valfritt)

För varje dokument i din kunskapsbas kan du välja hur det används:

  • Auto (standard): Dokumentet hämtas bara när det är relevant för frågan
  • Prompt: Dokumentet inkluderas alltid i systemprompten, oavsett relevans
Alternativ för dokumentanvändningsläge i kunskapsbasen

Om du ställer in för många dokument på läget “Prompt” kan kontextgränserna överskridas. Använd alternativet sparsamt för viktig information.

Testa din RAG-aktiverade agent

När du har sparat konfigurationen testar du agenten genom att ställa frågor som rör din kunskapsbas. Agenten ska nu kunna hämta och referera till specifik information från dina dokument.

Användningsgränser

För att säkerställa en rättvis resursfördelning tillämpar ElevenLabs gränser för den totala storleken på dokument som kan indexeras för RAG per workspace, baserat på abonnemangsnivå.

Gränserna är följande:

AbonnemangsnivåGräns för total dokumentstorlekKommentarer
Gratis1 MBIndex kan tas bort efter inaktivitet.
Starter2 MB
Creator20 MB
Pro100 MB
Scale500 MB
Business1 GB
Enterprise1 GBHögre gränser finns beroende på nivå och avtal.

Obs!

  • Dessa gränser gäller den totala ursprungliga filstorleken för dokument som indexeras för RAG, inte den interna lagringsstorleken för själva RAG-indexet (som kan vara betydligt större).
  • Dokument som är mindre än 500 byte kan inte indexeras för RAG och används automatiskt i prompten i stället.

API-implementering

Du kan också implementera RAG via API:et:

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
)