Generowanie wspomagane wyszukiwaniem

Ulepsz swojego agenta dzięki dużym bazom wiedzy z użyciem RAG.

Omówienie

Generowanie wspomagane wyszukiwaniem (RAG) pozwala agentowi korzystać z dużych baz wiedzy podczas rozmów. Zamiast ładować całe dokumenty do okna kontekstu, RAG pobiera tylko informacje najbardziej trafne dla każdego zapytania użytkownika, dzięki czemu agent może:

  • Korzystać z dużo większych baz wiedzy, niż zmieściłoby się w prompcie
  • Udzielać dokładniejszych odpowiedzi opartych na wiedzy
  • Ograniczać halucynacje, odwołując się do materiałów źródłowych
  • Skalować bazę wiedzy bez tworzenia wielu wyspecjalizowanych agentów

RAG sprawdza się w przypadku agentów, którzy muszą odwoływać się do dużych dokumentów, instrukcji technicznych lub obszernych baz wiedzy przekraczających limity okna kontekstu w tradycyjnym promptowaniu. RAG nieznacznie wydłuża czas odpowiedzi agenta — o około 250 ms.

Ten film nagrano w starszej wersji panelu. Kroki konfiguracji RAG pozostają bez zmian, ale niektóre elementy interfejsu mogą wyglądać inaczej.

Jak działa RAG

Gdy RAG jest włączony, agent przetwarza zapytania użytkownika w następujących krokach:

  1. Przetwarzanie zapytania: Pytanie użytkownika jest analizowane i przekształcane, by zoptymalizować wyszukiwanie.
  2. Tworzenie embeddingu: Przetworzone zapytanie jest zamieniane w embedding wektorowy reprezentujący pytanie użytkownika.
  3. Wyszukiwanie: System znajduje treści najbardziej podobne semantycznie w twojej bazie wiedzy.
  4. Generowanie odpowiedzi: Agent tworzy odpowiedź, korzystając zarówno z kontekstu rozmowy, jak i pobranych informacji.

Dzięki temu do LLM trafiają informacje istotne dla zapytania użytkownika, co pozwala wygenerować poprawną merytorycznie odpowiedź.

Przewodnik

Wymagania wstępne

Włącz RAG dla agenta

W ustawieniach agenta przejdź do sekcji Baza wiedzy i włącz opcję Użyj RAG. W razie potrzeby skonfiguruj model embeddingu, maksymalną liczbę fragmentów dokumentu i maksymalny dystans wektorowy na karcie Zaawansowane.

Opcje konfiguracji RAG, w tym wybór modelu embeddingu

Indeksowanie bazy wiedzy

Każdy dokument w bazie wiedzy musi zostać zindeksowany, zanim będzie można użyć go z RAG. Ten proces uruchamia się automatycznie, gdy dokument zostanie dodany do agenta z włączonym RAG.

Indeksowanie dużych dokumentów może potrwać kilka minut. Status indeksowania sprawdzisz na liście bazy wiedzy.

Skonfiguruj tryby użycia dokumentów (opcjonalnie)

Dla każdego dokumentu w bazie wiedzy możesz wybrać sposób jego użycia:

  • Auto (domyślnie): Dokument jest pobierany tylko wtedy, gdy jest istotny dla zapytania
  • Prompt: Dokument jest zawsze dodawany do promptu systemowego, niezależnie od trafności
Opcje trybu użycia dokumentu w bazie wiedzy

Ustawienie zbyt wielu dokumentów w trybie „Prompt” może przekroczyć limity kontekstu. Używaj tej opcji oszczędnie dla kluczowych informacji.

Przetestuj agenta z włączonym RAG

Po zapisaniu konfiguracji przetestuj agenta, zadając pytania związane z bazą wiedzy. Agent powinien teraz pobierać i przywoływać konkretne informacje z dokumentów.

Limity użycia

Aby zapewnić uczciwy podział zasobów, ElevenLabs stosuje limity łącznego rozmiaru dokumentów, które można zindeksować na potrzeby RAG w jednym obszarze roboczym, zależnie od planu subskrypcji.

Limity są następujące:

Plan subskrypcjiLimit łącznego rozmiaru dokumentówUwagi
Free1 MBIndeksy mogą zostać usunięte po okresie nieaktywności.
Starter2 MB
Creator20 MB
Pro100 MB
Scale500 MB
Business1 GB
Enterprise1 GBWyższe limity są dostępne zależnie od planu i umowy.

Uwaga:

  • Limity dotyczą łącznego oryginalnego rozmiaru plików dokumentów zindeksowanych dla RAG, a nie wewnętrznego rozmiaru indeksu RAG (który może być znacznie większy).
  • Dokumentów mniejszych niż 500 bajtów nie można indeksować dla RAG — będą automatycznie używane w prompcie.

Implementacja API

RAG możesz też wdrożyć przez 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
)