Ovaj će post demonstrirati postupak korištenja nadređenog programa za preuzimanje dokumenata u LangChainu.
Kako koristiti nadređeni Document Retriever u LangChainu?
Parent document retriever u LangChainu može se koristiti dijeljenjem dokumenata u manje dijelove kako ne bi izgubili svoje značenje u trenucima ugrađivanja. Može se reći da je nadređeni dokument cijeli dokument ili veći dio iz kojeg su izdvojeni manji dijelovi.
Kako biste naučili postupak korištenja nadređenog programa za preuzimanje dokumenata u LangChainu, jednostavno pogledajte ovaj vodič:
Korak 1: Instalirajte module
Najprije počnite koristiti nadređeni dohvaćač dokumenata instaliranjem okvira LangChain pomoću naredbe pip:
pip instalirati langchain
Instalirajte Chroma modul baze podataka da biste spremili ugradnje dokumenta i dohvatili podatke iz njega:
pip instaliraj chromadb
Da biste instalirali tiktoken koji je tokenizer koji dobiva tokene dokumenta stvaranjem malih dijelova:
pip instaliraj tiktoken
Nabavite OpenAI modul izvršavanjem sljedeće naredbe na Python prijenosnom računalu da biste dobili njegove ovisnosti i biblioteke:
pip instaliraj openai
Korak 2: Postavite okruženje i učitajte podatke
Sljedeći korak je da postaviti okruženje pomoću API ključa s OpenAI računa:
uvoz vasuvoz getpass
vas . približno [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API ključ:' )
Sada prenesite dokumente iz lokalnog sustava nakon uvoza biblioteke datoteka i zatim pozovite metodu upload():
iz google. ET AL uvoz datotekeučitano = datoteke. Učitaj ( )
Korak 3: Uvezite biblioteke
Sljedeći korak sadrži kôd za uvoz potrebnih biblioteka za korištenje nadređenih preuzimatelja dokumenata pomoću okvira LangChain:
iz langchain. retriveri uvoz ParentDocumentRetrieveriz langchain. vektorske trgovine uvoz Chroma
iz langchain. ugradnje uvoz OpenAIEembeddings
iz langchain. razdjelnik_teksta uvoz RecursiveCharacterTextSplitter
iz langchain. skladištenje uvoz InMemoryStore
iz langchain. učitavači dokumenata uvoz TextLoader
Učitajte dokument za izradu retrivera koristeći TextLoader() metode s putanjom datoteka:
utovarivači = [TextLoader ( 'Data.txt' ) ,
TextLoader ( 'state_of_the_union.txt' ) ,
]
dokumenti = [ ]
za l u utovarivači:
Korak 4: Dohvaćanje kompletnih dokumenata
Nakon što se dokumenti/datoteke učitaju u model, jednostavno napravite ugradnje dokumenata i pohranite ih u vektorska spremišta:
dijete_razdjelnik = RecursiveCharacterTextSplitter ( veličina_komadka = 400 )vektorska trgovina = Chroma (
naziv_zbirke = 'puni_dokumenti' ,
funkcija_ugrađivanja = OpenAIEembeddings ( )
)
trgovina = InMemoryStore ( )
retriver = ParentDocumentRetriever (
vektorska trgovina = vektorska trgovina ,
docstore = trgovina ,
dijete_razdjelnik = dijete_razdjelnik ,
)
Sada pozovite metodu add_documents() koristeći retriver da dovedete retriver do dokumenata:
retriver. dodaj_dokumente ( dokumenti , ID-ovi = Nijedan )Sljedeći kod izdvaja ugradnje dokumenata koji su pohranjeni u bazi podataka za učitane datoteke:
popis ( trgovina. ključevi_prinosa ( ) )
Nakon što dobijete ugradnje dokumenata, pozovite metodu similarity_search() s upitom da biste dobili male dijelove iz dokumenta:
pod_dokumenti = vektorska trgovina. traženje_sličnosti ( 'pravda breyer' )Pozovite metodu print() za prikaz dijelova pozvanih u prethodnom kodu na temelju upita:
ispisati ( pod_dokumenti [ 0 ] . sadržaj_stranice )
Pozovite kompletnu funkciju retriever() da biste dobili sve tokene pohranjene u bazi podataka pomoću sljedećeg koda:
preuzeti_dokumenti = retriver. dobiti_relevantne_dokumente ( 'pravda breyer' )Ispis svih dokumenata oduzeo bi puno vremena i procesorske snage, stoga jednostavno nabavite duljinu dokumenata koji su prethodno dohvaćeni:
samo ( preuzeti_dokumenti [ 0 ] . sadržaj_stranice )
Korak 5: Dohvaćanje većih dijelova
Ovaj korak neće uzeti cijeli dokument; međutim, uzeo bi veću vjevericu iz dokumenta i dohvatio manji dio iz njega:
nadređeni_razdjelnik = RecursiveCharacterTextSplitter ( veličina_komadka = 2000. godine )dijete_razdjelnik = RecursiveCharacterTextSplitter ( veličina_komadka = 400 )
vektorska trgovina = Chroma ( naziv_zbirke = 'split_roditelji' , funkcija_ugrađivanja = OpenAIEembeddings ( ) )
trgovina = InMemoryStore ( )
Konfigurirajte retriver da dobije manji token iz ogromnog skupa podataka pohranjenih u ' vektorska trgovina ” varijabla:
retriver = ParentDocumentRetriever (vektorska trgovina = vektorska trgovina ,
docstore = trgovina ,
dijete_razdjelnik = dijete_razdjelnik ,
nadređeni_razdjelnik = nadređeni_razdjelnik ,
)
Pozovite retrivera da uzme veće komade iz skladišta vektora pomoću dokumenti varijabla u argumentu funkcije:
retriver. dodaj_dokumente ( dokumenti )Saznajte duljinu ovih dokumenata od dokumenti varijablu putem donje naredbe:
samo ( popis ( trgovina. ključevi_prinosa ( ) ) )
Jednostavno uzmite manji dio iz većeg jer prethodna snimka zaslona prikazuje da su u vektorskoj pohrani pohranjena 23 dokumenta. Upit se koristi za dobivanje relevantnih podataka pomoću sličnost_search() metoda za dohvaćanje podataka iz vektorske pohrane:
pod_dokumenti = vektorska trgovina. traženje_sličnosti ( 'pravda breyer' )Ispišite manje dijelove pomoću upita spomenutog u prethodnom kodu da biste ih prikazali na zaslonu:
ispisati ( pod_dokumenti [ 0 ] . sadržaj_stranice )
Sada upotrijebite retriver na kompletnom skupu podataka pohranjenom u bazi podataka koristeći upit kao argument funkcije:
preuzeti_dokumenti = retriver. dobiti_relevantne_dokumente ( 'pravda breyer' )Dohvatite duljinu kompletnih dijelova kreiranih i pohranjenih u bazi podataka:
samo ( preuzeti_dokumenti [ 0 ] . sadržaj_stranice )
Ne možemo prikazati sve dijelove, ali prvi dio s brojem indeksa 0 prikazuje se pomoću sljedećeg koda:
ispisati ( preuzeti_dokumenti [ 0 ] . sadržaj_stranice
To je sve o procesu korištenja nadređenog programa za preuzimanje dokumenata u LangChainu.
Zaključak
Za korištenje nadređenog programa za pronalaženje dokumenata u LangChainu, jednostavno instalirajte module i postavite OpenAI okruženje koristeći njegov API ključ. Nakon toga uvezite potrebne biblioteke iz LangChaina za korištenje nadređenog programa za preuzimanje dokumenata, a zatim učitajte dokumente za model. Korisnik može koristiti matične dokumente kao cijeli dokument ili veliki dio i dobiti manji dio pomoću upita. Ovaj post razradio je postupak korištenja nadređenog programa za preuzimanje dokumenata u LangChainu.