Kaip dirbti su talpyklos kaupimu „LangChain“?

Kaip Dirbti Su Talpyklos Kaupimu Langchain



Talpykla yra naujausių arba dažniausiai naudojamų modelio duomenų saugojimo ir gavimo procesas, todėl jų nereikėtų nuolat skaičiuoti iš naujo. Teksto įterpimas gali būti naudojamas tekstiniams duomenims paversti skaičiais, o pritaikant talpyklos metodus galima pagerinti modelio efektyvumą. „LangChain“ leidžia kūrėjams sukurti talpyklos modelį naudojant „CacheBackedEmbeddings“ biblioteką.

Šis įrašas parodys darbo su talpyklomis „LangChain“ procesą.





Kaip dirbti su talpyklos kaupimu „LangChain“?

„LangChain“ talpyklos kaupimas teksto įdėjimo modeliuose gali būti naudojamas naudojant skirtingus duomenų rinkinius, pvz., naudojant vektorių saugyklą, atmintyje esančius duomenis arba duomenis iš failų sistemų. Taikant talpyklos metodus galima greitai gauti išvestį, o modelis gali efektyviau taikyti duomenų panašumo paieškas.



Norėdami išmokti darbo su talpyklomis „LangChain“ procesą, tiesiog atlikite nurodytus veiksmus:



1 veiksmas: įdiekite modulius
Pirmiausia pradėkite darbo su talpyklomis procesą įdiegdami reikiamus modelius. Pirmasis čia yra „LangChain“, kuriame yra visos reikalingos proceso bibliotekos:





pip diegti langchain

FAISS modulis reikalingas norint atlikti panašumo paiešką, kad būtų galima išgauti arba generuoti išvestį pagal vartotojo pateiktą įvestį:



pip diegti faiss-gpu

Paskutinis šio vadovo modulis, kurį reikia įdiegti, yra OpenAI, kurį galima naudoti duomenų įterpimui naudojant OpenAIEMbeddings() metodą:

pip diegti openai

Įdiegę visus modulius, tiesiog nustatykite aplinką naudodami API raktą iš OpenAI aplinkos naudodami „ tu “ ir „ gauti pasą “ bibliotekos:

importuoti mus
importuoti getpass

os.aplinka [ „OPENAI_API_KEY“ ] = getpass.getpass ( 'OpenAI API raktas:' )

2 veiksmas: bibliotekų importavimas
Baigę sąranką, tiesiog importuokite bibliotekas, kad galėtumėte dirbti su „LangChain“ talpyklos metodais:

iš langchain.storage importuoti InMemoryStore
iš langchain.embeddings importuoti CacheBackedEmbeddings
iš langchain.storage importuoti LocalFileStore
iš langchain.embeddings importuoti OpenAIEMbeddings
iš langchain.document_loaders importuokite TextLoader
iš langchain.embeddings.openai importuoti OpenAIEMbeddings
iš langchain.text_splitter importuoti CharacterTextSplitter
iš langchain.vectorstores importuoti FAISS

3 veiksmas: talpyklos modelio kūrimas
Importavę bibliotekas, tiesiog iškvieskite OpenAIEMbeddings() metodą, kad sukurtumėte modelį ir išsaugotumėte jį kintamajame:

underlying_embeddings = OpenAIE įterpimai ( )

Dabar pritaikykite talpyklą naudodami LocalFileStore() metodą ir CacheBackedEmbeddings() metodus su keliais argumentais:

fs = LocalFileStore ( './cache/' )

cached_embedder = CacheBackedEmbeddings.from_bytes_store (
underlying_embeddings, fs, vardų erdvė =pagrindiniai_įterpimai.modelis
)

Tiesiog gaukite įterpimų sąrašą ir kol kas sąrašas tuščias, nes įterpimai sąraše nesaugomi:

sąrašą ( fs.yield_keys ( ) )

4 veiksmas: vektorinės parduotuvės kūrimas
Gaukite failą iš vietinės sistemos naudodami failų biblioteką ir spustelėkite „ Pasirinkite Failai “ po kodo vykdymo:

iš google.colab importo failų
įkelta = failai.įkelti ( )

Dabar tiesiog sukurkite vektorių saugyklą, kurią galima naudoti įterpimams saugoti naudojant TextLoader() metodą su dokumento pavadinimu. Po to taikykite teksto skaidymo metodus atsižvelgdami į dalių dydį ir padalykite duomenis į mažesnius gabalus:

raw_documents = TextLoader ( 'sąjungos_būsena.txt' ) .pakrauti ( )
text_splitter = CharacterTextSplitter ( gabalo_dydis = 1000 , chunk_overlap = 0 )
dokumentai = text_splitter.split_documents ( raw_documents )

Padalinę tekstą, išsaugokite duomenis db kintamasis naudojant FAISS biblioteką, kad gautumėte išvestį naudodami panašumo paieškos metodą:

db = FAISS.from_documents ( dokumentai, talpykloje esantis_įterpiklis )

Išsaugoję juos duomenų bazėje, vėl gaukite įterpimų sąrašą ir apribokite išvestį iki 5 indeksų:

sąrašą ( fs.yield_keys ( ) ) [ : 5 ]

5 veiksmas: talpyklos talpyklos naudojimas atmintyje
Kitas kaupimas talpykloje gali būti naudojamas naudojant InMemoryStore() metodus, norint apibrėžti parduotuvės kintamąjį:

parduotuvė = InMemoryStore ( )

Sukurkite talpyklos modelį naudodami OpenAIEMbeddings() ir CacheBackedEmbeddings() metodus, kurių parametrai yra modelis, parduotuvė ir vardų sritis:

underlying_embeddings = OpenAIE įterpimai ( )
embedder = CacheBackedEmbeddings.from_bytes_store (
underlying_embeddings, store, vardų erdvė =pagrindiniai_įterpimai.modelis
)

Taikykite įterpimus saugomame dokumente nenaudodami talpyklos įdėjimo, kad gautumėte duomenis iš dokumento:

embeddings = embedder.embed_documents ( [ 'Sveiki' , 'sudie' ] )

Dabar pritaikykite talpyklą įterpimams, kad greitai gautumėte duomenis iš dokumentų:

embeddings_from_cache = embedder.embed_documents ( [ 'Sveiki' , 'sudie' ] )

Išsaugokite talpyklos įterpimus į įterpimo kintamąjį, kad įterpimų kintamajame būtų saugomi talpyklos įterpimai:

embeddings == įterpimai_iš talpyklos

6 veiksmas: failų sistemos talpyklos naudojimas
Paskutinis būdas pritaikyti talpyklą įterpimams iš test_cache dokumento naudojant failų sistemos saugyklą:

fs = LocalFileStore ( './test_cache/' )

Taikykite įterpimus naudodami CacheBackedEmbeddings() metodą, kaip parametrus įterpimo modelį, duomenų saugyklą ir vardų erdvę:

embedder2 = CacheBackedEmbeddings.from_bytes_store (
underlying_embeddings, fs, vardų erdvė =pagrindiniai_įterpimai.modelis
)

Norėdami iškviesti embedder() metodą, naudokite įterpimo kintamąjį su talpykloje saugomais duomenimis:

embeddings = embedder2.embed_documents ( [ 'Sveiki' , 'sudie' ] )

Dabar gaukite pirmiau minėtų dviejų pasaulių, nurodytų kaip parametrai, įterpimus:

sąrašą ( fs.yield_keys ( ) )

Tai viskas apie „LangChain“ talpyklos kūrimo ir darbo su jais procesą.

Išvada

Norėdami dirbti su talpyklos metodais, skirtais įterpti LangChain, tiesiog gaukite reikiamus modulius naudodami pip komandą, pvz., FAISS, OpenAI ir kt. Po to importuokite bibliotekas, skirtas kurti ir dirbti su talpyklomis LangChain. Jis efektyviai gauna įvairiose parduotuvėse saugomus įterpimus. Kūrėjai gali naudoti kelias parduotuves kaip duomenų bazes, kad saugotų įterpimus, pvz., vektorines saugyklas, failų sistemas arba atminties saugyklas. Šiame vadove parodytas darbo su talpyklomis „LangChain“ procesas.