Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

RAG-API (Chat mit Dateien)

Retrieval-Augmented Generation (RAG) API zur Dokumentenindizierung und -abfrage unter Verwendung von Langchain und FastAPI. Diese API lässt sich in LibreChat integrieren, um kontextbezogene Antworten auf Basis von benutzerhochgeladenen Dateien bereitzustellen.

Die RAG (Retrieval-Augmented Generation) API ist ein leistungsstarkes Tool, das in LibreChat integriert ist, um kontextbezogene Antworten basierend auf vom Benutzer hochgeladenen Dateien bereitzustellen.

Es nutzt LangChain, PostgresQL + PGVector und Python FastAPI, um relevante Dokumente zu indizieren und abzurufen, wodurch das Konversationserlebnis verbessert wird.

Weitere Details finden Sie im Konfigurationsleitfaden hier: RAG API Configuration

image


Derzeit ist diese Funktion über Agents sowie über Custom Endpoints, OpenAI, Azure OpenAI, Anthropic und Google verfügbar.

OpenAI Assistants verfügen über ihre eigene Implementierung von RAG durch die "Retrieval"-Funktion. Erfahren Sie hier mehr darüber.

Es wird weiterhin nützlich sein, die Nutzung der RAG API mit der Assistants API zu implementieren, da OpenAI sowohl für die Dateispeicherung als auch für die Nutzung von "Retrieval" Gebühren erhebt; dies wird in einem zukünftigen Update eingeführt.

Immer noch verwirrt bezüglich RAG? Lies den Abschnitt, den ich unten geschrieben habe, in dem das allgemeine Konzept mit einem Link zu einem hilfreichen Video näher erläutert wird.

Was ist RAG?

RAG, oder Retrieval-Augmented Generation, ist ein KI-Framework, das entwickelt wurde, um die Qualität und Genauigkeit der von großen Sprachmodellen (LLMs) generierten Antworten zu verbessern. Dies wird erreicht, indem das LLM auf externe Wissensquellen gestützt wird, was die interne Informationsdarstellung des Modells ergänzt.

Funktionen

  • Dokumentenindizierung: Die RAG-API indiziert vom Benutzer hochgeladene Dateien und erstellt Embeddings für einen effizienten Abruf.
  • Semantische Suche: Sie führt eine semantische Suche über die indizierten Dokumente durch, um basierend auf der Eingabe des Benutzers die relevantesten Informationen zu finden.
  • Kontextbezogene Antworten: Durch die Anreicherung der Benutzeranfrage mit abgerufenen Informationen ermöglicht die API es LibreChat, genauere und kontextuell relevantere Antworten zu generieren.
  • Asynchrone Verarbeitung: Die API unterstützt asynchrone Vorgänge für verbesserte Leistung und Skalierbarkeit.
  • Flexible Konfiguration: Sie ermöglicht die Anpassung verschiedener Parameter wie Chunk-Größe, Überlappung und Embedding-Modelle.

Hauptvorteile von RAG

  1. Zugriff auf aktuelle und zuverlässige Fakten: RAG stellt sicher, dass das LLM Zugriff auf die aktuellsten und zuverlässigsten Informationen hat, indem relevante Fakten aus einer externen Wissensdatenbank abgerufen werden.
  2. Transparenz und Vertrauen: Benutzer können auf die Quellen des Modells zugreifen, was es ihnen ermöglicht, die Genauigkeit der generierten Antworten zu überprüfen und Vertrauen in das System aufzubauen.
  3. Reduzierte Datenlecks und Halluzinationen: Durch die Verankerung des LLM auf einer Reihe externer, überprüfbarer Fakten reduziert RAG die Wahrscheinlichkeit, dass das Modell sensible Daten preisgibt oder falsche bzw. irreführende Informationen generiert.
  4. Geringere Rechen- und Finanzkosten: RAG reduziert die Notwendigkeit für kontinuierliches Training und die Aktualisierung der Modellparameter, was potenziell die Rechen- und Finanzkosten für den Betrieb von LLM-gestützten Chatbots in einer Unternehmensumgebung senkt.

Funktionsweise von RAG

RAG besteht aus zwei Hauptphasen: Retrieval und Content-Generierung.

  1. Abrufphase (Retrieval Phase): Algorithmen suchen nach Informationsschnipseln, die für die Eingabe oder Frage des Benutzers relevant sind, und rufen diese aus einer externen Wissensdatenbank ab. In einer offenen Domäne (Open-Domain) für Endverbraucher können diese Fakten aus indizierten Dokumenten im Internet stammen. In einer geschlossenen Unternehmensumgebung (Closed-Domain) wird typischerweise eine engere Auswahl an Quellen verwendet, um zusätzliche Sicherheit und Zuverlässigkeit zu gewährleisten.
  2. Generative Phase: Das abgerufene externe Wissen wird an den Prompt des Benutzers angehängt und an das LLM weitergeleitet. Das LLM greift dann auf den erweiterten Prompt und seine interne Repräsentation der Trainingsdaten zurück, um eine maßgeschneiderte, ansprechende Antwort für den Benutzer zu synthetisieren. Die Antwort kann mit Links zu den Quellen an einen Chatbot übermittelt werden.

Herausforderungen und laufende Forschung

Während RAG derzeit eines der bekanntesten Werkzeuge ist, um LLMs auf aktuellen, überprüfbaren Informationen zu basieren und die Kosten für ständiges Nachtrainieren und Aktualisieren zu senken, ist es nicht perfekt. Einige Herausforderungen sind:

  1. Erkennen unbeantwortbarer Fragen: LLMs müssen explizit darauf trainiert werden, Fragen zu erkennen, die sie auf Basis der verfügbaren Informationen nicht beantworten können. Dies kann ein Fine-Tuning mit Tausenden von Beispielen für beantwortbare und unbeantwortbare Fragen erfordern.
  2. Verbesserung von Retrieval und Generierung: Die laufende Forschung konzentriert sich auf Innovationen an beiden Enden des RAG-Prozesses: die Verbesserung des Abrufs der relevantesten Informationen für das LLM sowie die Optimierung der Struktur dieser Informationen, um die gehaltvollsten Antworten vom LLM zu erhalten.

Zusammenfassend lässt sich sagen, dass RAG ein leistungsstarkes Framework ist, das die Fähigkeiten von LLMs erweitert, indem es sie auf externes, überprüfbares Wissen stützt. Es trägt dazu bei, genauere, aktuellere und vertrauenswürdigere Antworten zu gewährleisten und gleichzeitig die Kosten zu senken, die mit einer kontinuierlichen Neuschulung der Modelle verbunden sind. Da die Forschung in diesem Bereich voranschreitet, können wir weitere Verbesserungen bei der Qualität und Effizienz von KI-gestützten Konversationssystemen auf Basis von LLMs erwarten.

Für eine detailliertere Erklärung von RAG können Sie sich dieses informative Video von IBM auf YouTube ansehen:

Fazit

Die RAG API ist eine leistungsstarke Erweiterung für LibreChat, die kontextbezogene Antworten auf Basis von benutzerhochgeladenen Dateien ermöglicht. Durch die Nutzung von Langchain und FastAPI bietet sie effiziente Funktionen zur Dokumentenindizierung, -abfrage und -generierung. Mit ihren flexiblen Konfigurationsoptionen und der nahtlosen Integration verbessert die RAG API das Konversationserlebnis in LibreChat.

Für detailliertere Informationen zur RAG API, einschließlich API endpoints, Anfrage-/Antwortformaten und erweiterter Konfiguration, lesen Sie bitte die offizielle RAG API Dokumentation.

Wie finden Sie diese Anleitung?