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
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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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ą:
- 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ć.
- 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?