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

API RAG (Czat z plikami)

API Retrieval-Augmented Generation (RAG) do indeksowania i pobierania dokumentów przy użyciu Langchain i FastAPI. To API integruje się z LibreChat, aby zapewniać odpowiedzi uwzględniające kontekst na podstawie plików przesłanych przez użytkownika.

RAG (Retrieval-Augmented Generation) API to potężne narzędzie, które integruje się z LibreChat, aby zapewniać odpowiedzi uwzględniające kontekst na podstawie plików przesłanych przez użytkownika.

Wykorzystuje on LangChain, PostgresQL + PGVector oraz Python FastAPI do indeksowania i pobierania odpowiednich dokumentów, co poprawia jakość konwersacji.

Aby uzyskać więcej szczegółów, zapoznaj się z przewodnikiem konfiguracji dostępnym tutaj: RAG API Configuration

image


Obecnie ta funkcja jest dostępna poprzez Agents, a także poprzez Custom Endpoints, OpenAI, Azure OpenAI, Anthropic oraz Google.

Asystenci OpenAI mają własną implementację RAG poprzez funkcję „Retrieval”. Dowiedz się więcej na ten temat tutaj.

Wdrożenie korzystania z RAG API wraz z Assistants API nadal będzie przydatne, ponieważ OpenAI pobiera opłaty zarówno za przechowywanie plików, jak i za korzystanie z funkcji „Retrieval”, co zostanie wprowadzone w przyszłej aktualizacji.

Nadal nie rozumiesz RAG? Przeczytaj sekcję, którą napisałem poniżej, wyjaśniającą ogólną koncepcję bardziej szczegółowo wraz z linkiem do pomocnego filmu.

Czym jest RAG?

RAG, czyli Retrieval-Augmented Generation, to framework AI zaprojektowany w celu poprawy jakości i dokładności odpowiedzi generowanych przez duże modele językowe (LLM). Osiąga to poprzez oparcie modelu LLM na zewnętrznych źródłach wiedzy, uzupełniając wewnętrzną reprezentację informacji modelu.

Funkcje

  • Indeksowanie dokumentów: API RAG indeksuje przesłane przez użytkownika pliki, tworząc embeddingi w celu wydajnego wyszukiwania.
  • Wyszukiwanie semantyczne: Wykonuje wyszukiwanie semantyczne w zaindeksowanych dokumentach, aby znaleźć najbardziej istotne informacje na podstawie danych wejściowych użytkownika.
  • Odpowiedzi uwzględniające kontekst: Dzięki wzbogaceniu promptu użytkownika o pobrane informacje, API umożliwia LibreChat generowanie dokładniejszych i bardziej dopasowanych kontekstowo odpowiedzi.
  • Przetwarzanie asynchroniczne: API obsługuje operacje asynchroniczne w celu poprawy wydajności i skalowalności.
  • Elastyczna konfiguracja: Umożliwia dostosowanie różnych parametrów, takich jak rozmiar fragmentu (chunk size), nakładanie się (overlap) oraz modele osadzeń (embedding models).

Kluczowe korzyści RAG

  1. Dostęp do aktualnych i wiarygodnych faktów: RAG zapewnia, że LLM ma dostęp do najbardziej aktualnych i wiarygodnych informacji poprzez pobieranie istotnych faktów z zewnętrznej bazy wiedzy.
  2. Przejrzystość i zaufanie: Użytkownicy mogą uzyskać dostęp do źródeł modelu, co pozwala im weryfikować dokładność generowanych odpowiedzi i budować zaufanie do systemu.
  3. Ograniczenie wycieku danych i halucynacji: Dzięki oparciu modelu LLM na zestawie zewnętrznych, weryfikowalnych faktów, RAG zmniejsza ryzyko wycieku przez model poufnych danych lub generowania nieprawdziwych bądź wprowadzających w błąd informacji.
  4. Niższe koszty obliczeniowe i finansowe: RAG ogranicza potrzebę ciągłego trenowania i aktualizowania parametrów modelu, co potencjalnie obniża koszty obliczeniowe i finansowe związane z obsługą chatbotów opartych na LLM w środowisku korporacyjnym.

Jak działa RAG

RAG składa się z dwóch głównych faz: wyszukiwania (retrieval) i generowania treści.

  1. Faza wyszukiwania (Retrieval Phase): Algorytmy przeszukują i pobierają fragmenty informacji istotne dla promptu lub pytania użytkownika z zewnętrznej bazy wiedzy. W środowisku otwartym (open-domain), przeznaczonym dla konsumentów, fakty te mogą pochodzić ze zindeksowanych dokumentów w Internecie. W środowisku zamkniętym (closed-domain), korporacyjnym, zazwyczaj stosuje się węższy zestaw źródeł w celu zwiększenia bezpieczeństwa i niezawodności.
  2. Faza generatywna: Pobrana wiedza zewnętrzna jest dołączana do promptu użytkownika i przekazywana do LLM. Następnie LLM korzysta z rozszerzonego promptu oraz wewnętrznej reprezentacji swoich danych treningowych, aby zsyntetyzować dostosowaną i angażującą odpowiedź dla użytkownika. Odpowiedź może zostać przekazana do chatbota wraz z linkami do jej źródeł.

Wyzwania i bieżące badania

Chociaż RAG jest obecnie jednym z najbardziej znanych narzędzi służących do opierania modeli LLM na najnowszych, weryfikowalnych informacjach oraz obniżania kosztów ciągłego douczania i aktualizacji, nie jest on idealny. Niektóre wyzwania obejmują:

  1. Rozpoznawanie pytań, na które nie można odpowiedzieć: Modele LLM muszą być wyraźnie trenowane w celu rozpoznawania pytań, na które nie są w stanie odpowiedzieć w oparciu o dostępne informacje. Może to wymagać dostrajania (fine-tuning) na tysiącach przykładów pytań, na które można i na które nie można odpowiedzieć.
  2. Usprawnianie wyszukiwania i generowania: Trwające badania koncentrują się na wprowadzaniu innowacji na obu końcach procesu RAG: poprawie wyszukiwania jak najbardziej istotnych informacji w celu dostarczenia ich do LLM oraz optymalizacji struktury tych informacji w celu uzyskania jak najbogatszych odpowiedzi od LLM.

Podsumowując, RAG to potężny framework, który zwiększa możliwości modeli LLM poprzez opieranie ich na zewnętrznej, weryfikowalnej wiedzy. Pomaga to zapewnić dokładniejsze, aktualne i godne zaufania odpowiedzi, jednocześnie redukując koszty związane z ciągłym douczaniem modeli. W miarę postępów badań w tej dziedzinie możemy spodziewać się dalszej poprawy jakości i wydajności systemów konwersacyjnej sztucznej inteligencji opartych na LLM.

Aby uzyskać bardziej szczegółowe wyjaśnienie RAG, możesz obejrzeć ten pouczający film przygotowany przez IBM na Youtube:

Podsumowanie

RAG API to potężny dodatek do LibreChat, umożliwiający generowanie odpowiedzi uwzględniających kontekst na podstawie plików przesłanych przez użytkownika. Dzięki wykorzystaniu Langchain i FastAPI zapewnia wydajne możliwości indeksowania, wyszukiwania i generowania dokumentów. Dzięki elastycznym opcjom konfiguracji i bezproblemowej integracji, RAG API wzbogaca konwersacje w LibreChat.

Aby uzyskać bardziej szczegółowe informacje na temat RAG API, w tym punktów końcowych API, formatów żądań/odpowiedzi oraz zaawansowanej konfiguracji, zapoznaj się z oficjalną dokumentacją RAG API.

Jaka jest ta instrukcja?