Jak używać Retrieverów w LangChain?

Jak Uzywac Retrieverow W Langchain



LangChain to platforma umożliwiająca programistom tworzenie dużych modeli językowych (LLM), których można używać do interakcji z ludźmi. Maszyny muszą uczyć się języków ludzkich, aby móc z nimi współdziałać za pomocą LangChain, ponieważ zapewnia on wszystkie niezbędne biblioteki i zależności do budowania tych modeli.

W tym poście zademonstrujemy proces używania retrieverów w LangChain.

Jak używać Retrieverów w LangChain?

Retrievery działają jako interfejs między modelami a ludźmi, dzięki czemu mogą go używać do uzyskania pożądanych wyników, korzystając z danych wejściowych dostarczonych w językach naturalnych. Magazyny wektorowe służą do przechowywania danych, z których można uzyskać/wydobyć informacje/dane.







Jednak retrievery są bardziej ogólne niż te bazy danych. Nie przechowują żadnych danych i służą wyłącznie do uzyskania lub odzyskania danych dla użytkowników. Aby poznać proces budowania i używania retrieverów poprzez LangChain, spójrz na następujące kroki:



Krok 1: Zainstaluj moduły
Najpierw zainstaluj wymagane moduły, takie jak LangChain, aby uzyskać biblioteki i zależności umożliwiające kontynuację procesu:



pypeć zainstalować łańcuch językowy





Zainstaluj magazyn wektorów chromadb, którego można użyć do przechowywania danych w bazie danych dla modułu pobierającego w celu pobrania danych ze sklepu:

pypeć zainstalować chromadb



Teraz zainstaluj framework OpenAI, aby uzyskać biblioteki umożliwiające osadzanie tekstu przed zbudowaniem modułu pobierającego:

pypeć zainstalować otwórz

Po zainstalowaniu wszystkich wymaganych modułów wystarczy skonfigurować środowisko za pomocą klucza OpenAI API:

importuj nas
zaimportuj getpass

os.środowisko [ „OPENAI_API_KEY” ] = getpass.getpass ( „Klucz API OpenAI:” )

Krok 2: Prześlij zbiór danych
Teraz wykonaj następujący kod, aby kliknąć plik 'Wybierz pliki' i prześlij dokument lub plik z systemu lokalnego:

z plików importowych google.colab
przesłane = pliki.przesłane ( )

Krok 3: Importuj biblioteki
Zaimportuj wymagane biblioteki, aby zbudować i używać modułów pobierających w LangChain, takich jak „ Lista „”, „ Oddzwonienia ', i wiele więcej:

z abc import ABC, metoda abstrakcyjna
po wpisaniu import Any, List
z dokumentu importu langchain.schema
z langchain.callbacks.manager importuj wywołania zwrotne

Krok 4: Utwórz utworzenie indeksu jednowierszowego
Ten krok tworzy indeks dla modułu pobierania, którego można użyć do pobrania danych w celu utworzenia magazynu wektorów poprzez zaimportowanie wymaganych bibliotek:

z langchain.chains importuj RetrievalQA
z langchain.llms importuje OpenAI

Tutaj załaduj dane za pomocą Moduł ładujący tekst() metodę ze ścieżką pliku przesłanego w kroku 2:

zaimportuj TextLoader z langchain.document_loaders
moduł ładujący = moduł ładujący tekst ( „stan_związku.txt” , kodowanie = „utf8” )

Importuj bibliotekę Kreator VectorstoreIndexCreator z LangChain, aby zbudować indeks dla bazy danych:

import VectorstoreIndexCreator z langchain.indexes

Zdefiniuj indeks zmienną przy użyciu metody VectorstoreIndexCreator() przy użyciu metody ładowarka zmienny:

indeks = VectorstoreIndexCreator ( ) .z_ładowarek ( [ ładowarka ] )

Zastosuj zapytanie, aby przetestować indeks, pobierając dane z dokumentu:

zapytanie = „Co powiedział prezydent Zełenski w swoim przemówieniu”
indeks.zapytanie ( zapytanie )

Uzyskaj szczegółowe informacje o indeksie, która baza danych zawiera indeks używając następującego kodu:

indeks.vectorstore

Poniższy kod wyjaśni wszystkie szczegóły dotyczące indeksu, jego typu i bazy danych:

indeks.vectorstore.as_retriever ( )

Użyj indeksu z metodą query() prosząc o podsumowanie dokumentu, używając argumentu source, aby użyć nazwy dokumentu:

indeks.zapytanie ( „Ogólne podsumowanie danych z tego dokumentu” , retriever_kwargs = { 'search_kwargs' : { 'filtr' : { 'źródło' : „stan_związku.txt” } } } )

Krok 5: Utwórz osadzenie
Załaduj dokument, aby utworzyć jego osadzenie i zapisz tekst w formie numerycznej, korzystając z magazynu wektorów:

dokumenty = moduł ładujący.ładuj ( )

Rozpocznij proces osadzania za pomocą rozdzielacz tekstu z argumentami dotyczącymi rozmiaru porcji i nakładania się:

z langchain.text_splitter zaimportuj CharacterTextSplitter
#używanie rozdzielacza tekstu do tworzenia małych fragmentów dokumentu do użycia przez narzędzie pobierające
text_splitter = CharacterTextSplitter ( rozmiar_porcji = 1000 , chunk_overlap = 0 )
teksty = tekst_rozdzielacz.split_dokumenty ( dokumenty )

Zastosuj metodę OpenAIEmbeddings(), którą można zaimportować z LangChain:

z langchain.embeddings importuj OpenAIEmbeddings
osadzania = OpenAIEembeddings ( )

Użyj magazynu chromadb do przechowywania osadzania utworzonego z dokumentu:

z langchain.vectorstores importuje Chroma
db = Chroma.from_documents ( teksty, embedingi )

Krok 6: Przetestuj retrievera
Po utworzeniu osadów i zapisaniu ich w bazie danych wystarczy zdefiniować zmienną pobierającą:

retriever = db.as_retriever ( )

Wywołuj łańcuchy za pomocą metody RetrievalQA() z funkcją OpenAI() i modułem pobierającym jako argumentami:

qa = PobieranieQA.from_chain_type ( llm =Otwórz AI ( ) , typ_łańcucha = 'rzeczy' , aporter = retriever )

Podaj dane wejściowe, aby przetestować retriever za pomocą zapytanie zmienna wewnątrz metody qa.run():

zapytanie = „Co powiedział prezydent Zełenski w swoim przemówieniu”
qa.run ( zapytanie )

Po prostu dostosuj Kreator VectorstoreIndexCreator () używając swoich argumentów do ustawiania różnych wartości:

Index_creator = VectorstoreIndexCreator (
wektorstore_cls =Barwa,
osadzanie =OpenAIEmbeddings ( ) ,
rozdzielacz tekstu =Rozdzielacz tekstu znaku ( rozmiar_porcji = 1000 , chunk_overlap = 0 )
)

To wszystko, jeśli chodzi o proces rozpoczynania pracy z retrieverami w LangChain.

Wniosek

Aby używać retrieverów w LangChain, wystarczy zainstalować zależności wymagane do skonfigurowania środowiska OpenAI, a następnie przesłać dokument w celu przetestowania retrieverów. Następnie zbuduj moduł pobierania przy użyciu abstrakcyjnej klasy bazowej lub biblioteki ABC, a następnie utwórz indeks bazy danych w celu pobrania danych. Skonfiguruj osadzenie dokumentu i uruchom moduł pobierania, aby uzyskać porównywalne wyniki z bazy danych. W tym poście szczegółowo omówiono proces wykorzystania retrieverów w LangChain.