Jak korzystać z funkcji odzyskiwania dokumentów nadrzędnych w LangChain?

Jak Korzystac Z Funkcji Odzyskiwania Dokumentow Nadrzednych W Langchain



Framework LangChain umożliwia programistom budowanie dużych modeli językowych, które potrafią rozumieć i generować tekst w języku naturalnym. Modele LangChain są szkolone na ogromnej ilości danych, dzięki czemu model może zrozumieć język, przechowując dane w magazynach wektorowych. Umożliwia także użytkownikowi budowanie programów pobierających, które mogą wyodrębniać dane z bazy danych lub magazynów wektorowych ze wszystkimi danymi przechowywanymi dla modelu.

W tym poście zademonstrujemy proces korzystania z narzędzia do pobierania dokumentów nadrzędnych w LangChain.

Jak korzystać z narzędzia do pobierania dokumentów nadrzędnych w LangChain?

Funkcja wyszukiwania dokumentów nadrzędnych w LangChain może zostać wykorzystana poprzez podzielenie dokumentów na mniejsze części, dzięki czemu nie stracą one znaczenia w momencie osadzania. Można powiedzieć, że dokumentem nadrzędnym jest cały dokument lub większa część, z której wyodrębnione są mniejsze fragmenty.







Aby poznać proces korzystania z modułu pobierania dokumentów nadrzędnych w LangChain, po prostu zapoznaj się z tym przewodnikiem:



Krok 1: Zainstaluj moduły



Najpierw zacznij korzystać z narzędzia do pobierania dokumentów nadrzędnych, instalując framework LangChain za pomocą polecenia pip:





pip zainstaluj langchain

Zainstaluj moduł bazy danych Chroma, aby zapisać osadzenia dokumentu i pobrać z niego dane:



pip zainstaluj chromadb

Aby zainstalować tiktoken, który jest tokenizerem pobierającym tokeny dokumentu poprzez tworzenie małych fragmentów:

pip zainstaluj tiktoken

Pobierz moduł OpenAI, wykonując następujące polecenie w notatniku Pythona, aby uzyskać jego zależności i biblioteki:

pip zainstaluj openai

Krok 2: Skonfiguruj środowisko i prześlij dane

Następnym krokiem jest skonfiguruj środowisko za pomocą klucza API z konta OpenAI:

import Ty
import przejść dalej

Ty . około [ „OPENAI_API_KEY” ] = przejść dalej . przejść dalej ( „Klucz API OpenAI:” )

Teraz prześlij dokumenty z systemu lokalnego po zaimportowaniu biblioteki plików, a następnie wywołaj metodę upload():

z Google. i wsp import akta
załadowany = akta. wgrywać ( )

Krok 3: Importuj biblioteki

Następny krok zawiera kod umożliwiający import wymaganych bibliotek do korzystania z narzędzi do pobierania dokumentów nadrzędnych przy użyciu frameworka LangChain:

z łańcuch językowy. retrievery import RodzicDocumentRetriever
z łańcuch językowy. sklepy wektorowe import Chroma
z łańcuch językowy. osadzania import OpenAIEmbeddings
z łańcuch językowy. rozdzielacz tekstu import Rekurencyjny rozdzielacz tekstu znaków
z łańcuch językowy. składowanie import w sklepie pamięci
z łańcuch językowy. ładowarki_dokumentów import Moduł ładujący tekst

Załaduj dokument, aby zbudować moduł pobierania, korzystając z metod TextLoader() i podając ścieżkę do plików:

ładowarki = [
Moduł ładujący tekst ( „Dane.txt” ) ,
Moduł ładujący tekst ( „stan_związku.txt” ) ,
]
dokumenty = [ ]
Do l W ładowarki:

Krok 4: Odzyskiwanie kompletnych dokumentów

Po załadowaniu dokumentów/plików do modelu po prostu zbuduj osady dokumentów i przechowuj je w magazynach wektorów:

dziecko_rozdzielacz = Rekurencyjny rozdzielacz tekstu znaków ( rozmiar_porcji = 400 )

sklep wektorowy = Chroma (
nazwa_kolekcji = „pełne_dokumenty” ,
funkcja osadzania = OpenAIEmbeddings ( )
)

sklep = w sklepie pamięci ( )
aporter = RodzicDocumentRetriever (
sklep wektorowy = sklep wektorowy ,
sklep z dokumentami = sklep ,
dziecko_rozdzielacz = dziecko_rozdzielacz ,
)

Teraz wywołaj metodę add_documents() za pomocą modułu pobierającego, aby pobrać moduł pobierający do dokumentów:

aporter. dodaj_dokumenty ( dokumenty , identyfikatory = Nic )

Poniższy kod wyodrębnia osadzone dokumenty, które zostały zapisane w bazie danych dla przesłanych plików:

lista ( sklep. klucze_zysku ( ) )

Po pobraniu osadzonych dokumentów wywołaj metodę podobieństwa_search() z zapytaniem, aby pobrać małe fragmenty z dokumentu:

pod_dokumenty = sklep wektorowy. wyszukiwanie_podobieństwa ( „breyer sprawiedliwości” )

Wywołaj metodę print(), aby wyświetlić fragmenty wywołane w poprzednim kodzie na podstawie zapytania:

wydrukować ( pod_dokumenty [ 0 ] . zawartość strony )

Wywołaj pełną funkcję retriever(), aby pobrać wszystkie tokeny przechowywane w bazie danych, używając następującego kodu:

pobrane_dokumenty = aporter. pobierz_relevant_documents ( „breyer sprawiedliwości” )

Drukowanie wszystkich dokumentów zajęłoby mnóstwo czasu i mocy obliczeniowej, więc po prostu sprawdź długość dokumentów pobranych wcześniej:

tylko ( pobrane_dokumenty [ 0 ] . zawartość strony )

Krok 5: Pobieranie większych kawałków

Ten krok nie obejmie całego dokumentu; jednakże wymagałoby to pobrania większej wiewiórki z dokumentu i pobrania z niej mniejszego fragmentu:

rodzic_rozdzielacz = Rekurencyjny rozdzielacz tekstu znaków ( rozmiar_porcji = 2000 )
dziecko_rozdzielacz = Rekurencyjny rozdzielacz tekstu znaków ( rozmiar_porcji = 400 )
sklep wektorowy = Chroma ( nazwa_kolekcji = „podzieleni_rodzice” , funkcja osadzania = OpenAIEmbeddings ( ) )
sklep = w sklepie pamięci ( )

Skonfiguruj moduł pobierania tak, aby uzyskać mniejszy token z ogromnej puli danych przechowywanych w „ sklep wektorowy ' zmienny:

aporter = RodzicDocumentRetriever (
sklep wektorowy = sklep wektorowy ,
sklep z dokumentami = sklep ,
dziecko_rozdzielacz = dziecko_rozdzielacz ,
rodzic_rozdzielacz = rodzic_rozdzielacz ,
)

Zadzwoń do retrievera, aby uzyskać większe kawałki ze sklepów wektorowych za pomocą dokumenty zmienna w argumencie funkcji:

aporter. dodaj_dokumenty ( dokumenty )

Uzyskaj długość tych dokumentów z dokumenty zmienna za pomocą poniższego polecenia:

tylko ( lista ( sklep. klucze_zysku ( ) ) )

Po prostu uzyskaj mniejszy fragment z większego, ponieważ poprzedni zrzut ekranu pokazuje, że w magazynie wektorów przechowywane są 23 dokumenty. Zapytanie służy do uzyskania odpowiednich danych za pomocą metody podobieństwo_wyszukiwania() metoda pobierania danych z magazynu wektorów:

pod_dokumenty = sklep wektorowy. wyszukiwanie_podobieństwa ( „breyer sprawiedliwości” )

Wydrukuj mniejsze fragmenty, korzystając z zapytania wspomnianego w poprzednim kodzie, aby wyświetlić je na ekranie:

wydrukować ( pod_dokumenty [ 0 ] . zawartość strony )

Teraz użyj modułu pobierającego na pełnym zestawie danych przechowywanym w bazie danych, używając zapytania jako argumentu funkcji:

pobrane_dokumenty = aporter. pobierz_relevant_documents ( „breyer sprawiedliwości” )

Uzyskaj długość całych fragmentów utworzonych i przechowywanych w bazie danych:

tylko ( pobrane_dokumenty [ 0 ] . zawartość strony )

Nie możemy wyświetlić wszystkich fragmentów, ale pierwszy fragment o numerze indeksu 0 jest wyświetlany przy użyciu następującego kodu:

wydrukować ( pobrane_dokumenty [ 0 ] . zawartość strony

To wszystko, jeśli chodzi o proces korzystania z narzędzia do pobierania dokumentów nadrzędnych w LangChain.

Wniosek

Aby skorzystać z narzędzia do wyszukiwania dokumentów nadrzędnych w LangChain, wystarczy zainstalować moduły i skonfigurować środowisko OpenAI przy użyciu jego klucza API. Następnie zaimportuj wymagane biblioteki z LangChain w celu użycia narzędzia do pobierania dokumentów nadrzędnych, a następnie załaduj dokumenty dla modelu. Użytkownik może używać dokumentów nadrzędnych jako całego dokumentu lub dużej części i uzyskać mniejszą część za pomocą zapytania. W tym poście szczegółowo omówiono proces korzystania z narzędzia do pobierania dokumentów nadrzędnych w LangChain.