Kuidas kasutada vanemdokumendi retriiverit LangChainis?

Kuidas Kasutada Vanemdokumendi Retriiverit Langchainis



LangChaini raamistik võimaldab arendajatel luua suuri keelemudeleid, mis suudavad mõista ja luua teksti loomulikus keeles. LangChaini mudeleid õpetatakse kasutama tohutul hulgal andmeid, et mudel saaks keelest aru, talletades andmeid vektorpoodides. Samuti võimaldab see kasutajal luua retriivereid, mis suudavad kogu mudeli jaoks salvestatud andmetega andmebaasist või vektormäludest andmeid ekstraheerida.

See postitus demonstreerib põhidokumendi retriiveri kasutamise protsessi LangChainis.

Kuidas kasutada vanemdokumendi retriiverit LangChainis?

LangChaini põhidokumentide otsijat saab kasutada, kui jagate dokumendid väiksemateks tükkideks, et need ei kaotaks manustamise hetkel oma tähendust. Eeldokumendiks võib öelda, et see on kogu dokument või suurem osa, millest eraldatakse väiksemad osad.







LangChainis põhidokumendi retriiveri kasutamise protsessi tundmaõppimiseks lugege lihtsalt seda juhendit:



1. samm: installige moodulid



Kõigepealt alustage vanemdokumendi retriiveri kasutamist, installides LangChaini raamistiku, kasutades käsku pip:





pip install langchain

Paigaldage Chroma andmebaasimoodul, et salvestada dokumendi manustused ja sealt andmeid hankida.



pip install chromadb

Tiktokeni installimiseks, mis on tokenisaator, mis hangib dokumendi märgid, luues väikesed jupid:

pip install tiktoken

Hankige OpenAI moodul, käivitades Pythoni märkmikus selle sõltuvuste ja teekide hankimiseks järgmise käsu:

pip install openai

2. samm: keskkonna seadistamine ja andmete üleslaadimine

Järgmine samm on seada keskkonda kasutades OpenAI konto API-võtit:

importida sina
importida saada pass

sina . umbes [ 'OPENAI_API_KEY' ] = saada pass . saada pass ( 'OpenAI API võti:' )

Nüüd laadige dokumendid üles kohalikust süsteemist pärast failiteegi importimist ja seejärel kutsuge üles üleslaadimismeetod ():

alates google. ET AL importida failid
üles laaditud = failid. Laadi üles ( )

3. samm: importige teegid

Järgmine samm sisaldab koodi vajalike teekide importimiseks, et kasutada LangChaini raamistikku kasutavaid emadokumendi otsijaid:

alates langchain. retriiverid importida ParentDocumentRetriiver
alates langchain. vektorpoed importida Chroma
alates langchain. manused importida OpenAIEembeddings
alates langchain. teksti_jagaja importida Recursive CharacterTextSplitter
alates langchain. ladustamine importida InMemoryStore
alates langchain. document_loaders importida TextLoader

Laadige dokument, et luua retriiver, kasutades TextLoader() meetodeid koos failide teega:

laadurid = [
TextLoader ( 'Data.txt' ) ,
TextLoader ( 'liit_riik.txt' ) ,
]
dok = [ ]
jaoks l sisse laadurid:

4. samm: täielike dokumentide toomine

Kui dokumendid/failid on mudelisse laaditud, looge lihtsalt dokumentide manused ja salvestage need vektorpoodidesse:

laps_jagaja = Recursive CharacterTextSplitter ( tüki_suurus = 400 )

vektorpood = Chroma (
kollektsiooni_nimi = 'täielikud_dokumendid' ,
manustamise_funktsioon = OpenAIEembeddings ( )
)

poodi = InMemoryStore ( )
retriiver = ParentDocumentRetriiver (
vektorpood = vektorpood ,
arstipood = poodi ,
laps_jagaja = laps_jagaja ,
)

Nüüd kutsuge retriiveri abil meetod add_documents(), et tuua retriiver dokumentide juurde:

retriiver. lisa_dokumendid ( dok , ID-d = Mitte ühtegi )

Järgmine kood ekstraheerib üleslaaditud failide andmebaasi salvestatud dokumentide manused:

nimekirja ( poodi. saagi_võtmed ( ) )

Pärast dokumentide manustamist kutsuge päringuga välja meetod Sarnasus_search(), et saada dokumendist väikesed osad:

alam_dokumendid = vektorpood. sarnasuse_otsing ( 'Õigluse breyer' )

Eelmises koodis päringu põhjal kutsutud tükkide kuvamiseks kutsuge print() meetod:

printida ( alam_dokumendid [ 0 ] . page_content )

Kutsuge täielik funktsioon retriever(), et saada kõik andmebaasi salvestatud märgid järgmise koodi abil:

allalaaditud_dokumendid = retriiver. hankige_asjakohased_dokumendid ( 'Õigluse breyer' )

Kõigi dokumentide printimine võtaks tohutult aega ja töötlemisvõimsust, nii et hankige lihtsalt varem hangitud dokumentide pikkus:

ainult ( allalaaditud_dokumendid [ 0 ] . page_content )

5. samm: suuremate tükkide hankimine

See samm ei hõlma kogu dokumenti; aga see võtaks dokumendist suurema tüki ja tooks sealt välja väiksema tüki:

vanem_jagaja = Recursive CharacterTextSplitter ( tüki_suurus = 2000 )
laps_jagaja = Recursive CharacterTextSplitter ( tüki_suurus = 400 )
vektorpood = Chroma ( kollektsiooni_nimi = 'eraldi_vanemad' , manustamise_funktsioon = OpenAIEembeddings ( ) )
poodi = InMemoryStore ( )

Seadistage retriiver nii, et see saaks väiksemat märki tohutust andmekogumist, mis on salvestatud ' vektorpood ” muutuja:

retriiver = ParentDocumentRetriiver (
vektorpood = vektorpood ,
arstipood = poodi ,
laps_jagaja = laps_jagaja ,
vanem_jagaja = vanem_jagaja ,
)

Helistage retriiverile, et hankida vektorpoodidest suuremad tükid, kasutades dok muutuja funktsiooni argumendis:

retriiver. lisa_dokumendid ( dok )

Hankige nende dokumentide pikkus aadressilt dok muutuja alloleva käsu kaudu:

ainult ( nimekirja ( poodi. saagi_võtmed ( ) ) )

Võtke lihtsalt suuremast väiksem tükk, kuna eelmine ekraanipilt näitab, et vektorite poes on salvestatud 23 dokumenti. Päringut kasutatakse asjakohaste andmete hankimiseks, kasutades Sarnasuse_otsing() meetod andmete hankimiseks vektorite salvest:

alam_dokumendid = vektorpood. sarnasuse_otsing ( 'Õigluse breyer' )

Printige väiksemad osad ekraanil kuvamiseks, kasutades eelmises koodis mainitud päringut:

printida ( alam_dokumendid [ 0 ] . page_content )

Nüüd kasutage retriiverit kogu andmebaasi salvestatud andmekogumis, kasutades funktsiooni argumendina päringut:

allalaaditud_dokumendid = retriiver. hankige_asjakohased_dokumendid ( 'Õigluse breyer' )

Hankige andmebaasis loodud ja salvestatud täielike tükkide pikkus:

ainult ( otsitud_dokumendid [ 0 ] . page_content )

Me ei saa kõiki tükke kuvada, kuid esimene osa indeksinumbriga 0 kuvatakse järgmise koodi abil:

printida ( otsitud_dokumendid [ 0 ] . page_content

See on kõik, mis puudutab põhidokumendi otsija kasutamist LangChainis.

Järeldus

LangChainis emadokumendi retriiveri kasutamiseks installige lihtsalt moodulid ja seadistage OpenAI keskkond, kasutades selle API-võtit. Pärast seda importige LangChainist vajalikud teegid põhidokumendi taastaja kasutamiseks ja laadige seejärel mudeli dokumendid. Kasutaja saab kasutada põhidokumente kogu dokumendina või suure osana ja saada päringu abil väiksema osa. Selles postituses on käsitletud põhidokumendi retriiveri kasutamise protsessi LangChainis.