Kā strādāt ar kešatmiņu programmā LangChain?

Ka Stradat Ar Kesatminu Programma Langchain



Kešatmiņa ir process, kurā tiek saglabāti un iegūti jaunākie vai biežāk lietotie dati no modeļa, lai tie nebūtu visu laiku jāpārrēķina. Teksta iegulšanu var izmantot, lai pārvērstu teksta datus skaitļos, un kešatmiņas paņēmienu izmantošana tiem var uzlabot modeļa efektivitāti. LangChain ļauj izstrādātājiem izveidot kešatmiņas modeli, izmantojot CacheBackedEmbeddings bibliotēku.

Šajā rakstā tiks parādīts process, kā strādāt ar LangChain kešatmiņu.







Kā strādāt ar kešatmiņu programmā LangChain?

Kešatmiņu programmā LangChain teksta iegulšanas modeļos var izmantot, izmantojot dažādas datu kopas, piemēram, izmantojot vektoru krātuvi, atmiņas datus vai datus no failu sistēmām. Lietojot kešatmiņas metodes, var ātri iegūt izvadi, un modelis var efektīvāk piemērot datu līdzības meklēšanu.



Lai uzzinātu, kā strādāt ar kešatmiņu programmā LangChain, vienkārši veiciet norādītās darbības:



1. darbība: instalējiet moduļus
Vispirms sāciet darbu ar kešatmiņu, instalējot nepieciešamos modeļus. Pirmais šeit ir LangChain, kurā ir visas procesam nepieciešamās bibliotēkas:





pip uzstādīt langchain

FAISS modulis ir nepieciešams, lai veiktu līdzības meklēšanu izvades iegūšanai vai ģenerēšanai, pamatojoties uz lietotāja sniegto ievadi:



pip uzstādīt faiss-gpu

Pēdējais šīs rokasgrāmatas modulis, kas ir nepieciešams, lai instalētu, ir OpenAI, ko var izmantot, lai izveidotu datu iegulšanu, izmantojot OpenAIEMbeddings() metodi:

pip uzstādīt openai

Pēc visu moduļu instalēšanas vienkārši iestatiet vidi, izmantojot API atslēgu no OpenAI vides, izmantojot “ tu ' un ' getpass ” bibliotēkas:

importē mūs
importēt getpass

os.environ [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'OpenAI API atslēga:' )

2. darbība. Bibliotēku importēšana
Kad iestatīšana ir pabeigta, vienkārši importējiet bibliotēkas darbam ar LangChain kešatmiņas metodēm:

no langchain.storage importēšanas InMemoryStore
no langchain.embeddings importējiet CacheBackedEmbeddings
no langchain.storage importēšanas LocalFileStore
no langchain.embeddings importējiet OpenAIEMbeddings
no langchain.document_loaders importējiet TextLoader
no langchain.embeddings.openai importējiet OpenAIEMbeddings
no langchain.text_splitter importēt CharacterTextSplitter
no langchain.vectorstores importēt FAISS

3. darbība. Kešatmiņas modeļa izveide
Pēc bibliotēku importēšanas vienkārši izsauciet OpenAIEMbeddings() metodi, lai izveidotu modeli un saglabātu to mainīgajā:

underlying_embeddings = OpenAIE iegulšana ( )

Tagad izmantojiet kešatmiņu, izmantojot LocalFileStore() metodi un CacheBackedEmbeddings() metodes ar vairākiem argumentiem:

fs = LocalFileStore ( './cache/' )

cached_embedder = CacheBackedEmbeddings.from_bytes_store (
underlying_embeddings, fs, nosaukumvieta =underlying_embeddings.model
)

Vienkārši iegūstiet iegulšanas sarakstu, un pagaidām saraksts ir tukšs, jo iegultie elementi sarakstā netiek saglabāti:

sarakstu ( fs.yield_keys ( ) )

4. darbība. Vektoru veikala izveide
Iegūstiet failu no vietējās sistēmas, izmantojot failu bibliotēku un noklikšķiniet uz “ Izvēlieties Faili ” pēc koda izpildes:

no google.colab importēšanas failiem
augšupielādēts = faili.augšupielādēt ( )

Tagad vienkārši izveidojiet vektoru krātuvi, ko var izmantot, lai saglabātu iegulšanu, izmantojot TextLoader() metodi ar dokumenta nosaukumu. Pēc tam izmantojiet teksta sadalītāja metodes ar gabalu lielumu un sadaliet datus mazākos gabalos:

raw_documents = TextLoader ( 'state_of_the_union.txt' ) .slodze ( )
text_splitter = RakstzīmjuTeksta sadalītājs ( chunk_size = 1000 , chunk_overlap = 0 )
dokumenti = text_splitter.split_documents ( raw_documents )

Pēc teksta sadalīšanas saglabājiet datus mapē db mainīgais, izmantojot FAISS bibliotēku, lai iegūtu izvadi, izmantojot līdzības meklēšanas metodi:

db = FAISS.from_documents ( dokumenti, cached_embedder )

Tagad atkal iegūstiet iegultu sarakstu pēc to saglabāšanas datu bāzē un ierobežojiet izvadi tikai līdz 5 indeksiem:

sarakstu ( fs.yield_keys ( ) ) [ : 5 ]

5. darbība: kešatmiņas izmantošana atmiņā
Nākamo kešatmiņu var izmantot, izmantojot InMemoryStore() metodes, lai definētu veikala mainīgo:

veikals = InMemoryStore ( )

Veidojiet kešatmiņas modeli, izmantojot OpenAIEmbeddings() un CacheBackedEmbeddings() metodes, kā parametrus izmantojot modeli, veikalu un nosaukumvietu:

underlying_embeddings = OpenAIE iegulšana ( )
embedder = CacheBackedEmbeddings.from_bytes_store (
underlying_embeddings, store, nosaukumvieta =underlying_embeddings.model
)

Lietojiet iegulšanu saglabātajā dokumentā, neizmantojot kešatmiņas iegulšanu, lai iegūtu datus no dokumenta:

embeddings = embedder.embed_documents ( [ 'Sveiki' , 'uz redzēšanos' ] )

Tagad izmantojiet kešatmiņu iegulumiem, lai ātri izgūtu datus no dokumentiem:

embeddings_from_cache = embedder.embed_documents ( [ 'Sveiki' , 'uz redzēšanos' ] )

Saglabājiet kešatmiņas iegulumus iegulšanas mainīgajā, lai iegulšanas mainīgajā tiktu saglabāti kešatmiņā saglabātie ieguljumi:

embeddings == embeddings_from_cache

6. darbība. Failu sistēmas kešatmiņas izmantošana
Pēdējā metode, kā lietot kešatmiņu iegulumos no dokumenta test_cache, izmantojot failu sistēmas veikalu:

fs = LocalFileStore ( './test_cache/' )

Lietojiet iegulšanu, izmantojot metodi CacheBackedEmbeddings() un kā parametrus iegulšanas modeli, datu krātuvi un nosaukumvietu:

embedder2 = CacheBackedEmbeddings.from_bytes_store (
underlying_embeddings, fs, nosaukumvieta =underlying_embeddings.model
)

Izmantojiet iegulšanas mainīgo ar tajā saglabātajiem kešatmiņas datiem, lai izsauktu embedder() metodi:

embeddings = embedder2.embed_documents ( [ 'Sveiki' , 'uz redzēšanos' ] )

Tagad iegūstiet iegulšanu iepriekš minētajām divām pasaulēm, kas minētas kā parametri:

sarakstu ( fs.yield_keys ( ) )

Tas viss attiecas uz LangChain kešatmiņas veidošanas un darba procesu.

Secinājums

Lai strādātu ar kešatmiņas paņēmieniem iegulšanai programmā LangChain, vienkārši iegūstiet nepieciešamos moduļus, izmantojot pip komandu, piemēram, FAISS, OpenAI utt. Pēc tam importējiet bibliotēkas, lai izveidotu un strādātu ar kešatmiņu programmā LangChain. Tas efektīvi iegūst dažādos veikalos glabātos iegulumus. Izstrādātāji var izmantot vairākus veikalus kā datu bāzes, lai saglabātu iegulšanu, piemēram, vektoru veikalus, failu sistēmas vai atmiņas veikalus. Šajā rokasgrāmatā tika parādīts process, kā strādāt ar kešatmiņu programmā LangChain.