Ako pracovať s ukladaním do vyrovnávacej pamäte v LangChain?

Ako Pracovat S Ukladanim Do Vyrovnavacej Pamate V Langchain



Ukladanie do vyrovnávacej pamäte je proces ukladania a získavania najnovších alebo často používaných údajov z modelu, takže ich nie je potrebné neustále prepočítavať. Vloženie textu možno použiť na konverziu textových údajov na čísla a použitie techník ukladania do vyrovnávacej pamäte môže zlepšiť efektivitu modelu. LangChain umožňuje vývojárom zostaviť model ukladania do vyrovnávacej pamäte pomocou knižnice CacheBackedEmbeddings.

Tento príspevok bude demonštrovať proces práce s vyrovnávacou pamäťou v LangChain.







Ako pracovať s ukladaním do vyrovnávacej pamäte v LangChain?

Ukladanie do vyrovnávacej pamäte v LangChain na modeloch vkladania textu možno použiť prostredníctvom rôznych množín údajov, ako je použitie vektorového úložiska, údajov v pamäti alebo údajov zo súborových systémov. Použitie metód vyrovnávacej pamäte môže získať výstup rýchlo a model môže efektívnejšie aplikovať vyhľadávanie podobností na údaje.



Ak sa chcete naučiť proces práce s vyrovnávacou pamäťou v LangChain, jednoducho prejdite uvedenými krokmi:



Krok 1: Nainštalujte moduly
Najprv začnite proces práce s vyrovnávacou pamäťou inštaláciou požadovaných modelov, prvým je LangChain, ktorý obsahuje všetky potrebné knižnice pre tento proces:





pip Inštalácia langchain

Modul FAISS je potrebný na vykonanie podobnostného vyhľadávania na extrakciu alebo generovanie výstupu na základe vstupu poskytnutého používateľom:



pip Inštalácia faiss-gpu

Posledný modul pre túto príručku, ktorý je potrebné nainštalovať, je OpenAI, ktorý možno použiť na vytvorenie vloženia údajov pomocou metódy OpenAIEmbeddings():

pip Inštalácia openai

Po inštalácii všetkých modulov stačí nastaviť prostredie pomocou API kľúča z prostredia OpenAI pomocou „ vy “ a „ getpass “knižnice:

importujte nás
importovať getpass

os.environ [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'OpenAI API Key:' )

Krok 2: Importovanie knižníc
Po dokončení nastavenia jednoducho importujte knižnice na prácu s technikami ukladania do vyrovnávacej pamäte v LangChain:

z langchain.storage importujte InMemoryStore
z langchain.embeddings importovať CacheBackedEmbeddings
z langchain.storage importujte LocalFileStore
z langchain.embeddings importovať OpenAIEmbeddings
z langchain.document_loaders importujte TextLoader
z langchain.embeddings.openai importovať OpenAIEmbeddings
z langchain.text_splitter importujte CharacterTextSplitter
z langchain.vectorstores import FAISS

Krok 3: Vytvorenie modelu ukladania do vyrovnávacej pamäte
Po importovaní knižníc jednoducho zavolajte metódu OpenAIEmbeddings() na zostavenie modelu a jeho uloženie do premennej:

podkladové_embeddings = OpenAIEmbeddings ( )

Teraz použite vyrovnávaciu pamäť pomocou metódy LocalFileStore() a metód CacheBackedEmbeddings() s viacerými argumentmi:

fs = LocalFileStore ( './cache/' )

cached_embedder = CacheBackedEmbeddings.from_bytes_store (
podkladové_embeddings, fs, menný priestor =podkladové_embeddings.model
)

Stačí získať zoznam vložení a zatiaľ je zoznam prázdny, pretože vloženia nie sú uložené v zozname:

zoznam ( fs.yield_keys ( ) )

Krok 4: Vytvorenie Vector Store
Získajte súbor z lokálneho systému pomocou knižnice súborov a kliknite na „ Vyberte Súbory “ po vykonaní kódu:

z importovaných súborov google.colab
nahrané = súbory.nahrať ( )

Teraz jednoducho vytvorte vektorový obchod, ktorý možno použiť na ukladanie vložených prvkov pomocou metódy TextLoader() s názvom dokumentu. Potom použite metódy rozdeľovania textu s veľkosťou častí a rozdeľte údaje na menšie časti:

raw_documents = TextLoader ( 'state_of_the_union.txt' ) .naložiť ( )
text_splitter = CharacterTextSplitter ( chunk_size = 1000 , chunk_overlap = 0 )
dokumenty = text_splitter.split_documents ( nespracované_dokumenty )

Po rozdelení textu uložte údaje do db premennej pomocou knižnice FAISS na získanie výstupu pomocou metódy vyhľadávania podobnosti:

db = FAISS.from_documents ( dokumenty, cache_embedder )

Teraz znova získajte zoznam vložení po ich uložení do databázy a obmedzte výstup iba na 5 indexov:

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

Krok 5: Používanie vyrovnávacej pamäte v pamäti
Ďalšie ukladanie do vyrovnávacej pamäte možno použiť prostredníctvom metód InMemoryStore() na definovanie premennej store:

store = InMemoryStore ( )

Zostavte model ukladania do vyrovnávacej pamäte pomocou metód OpenAIEmbeddings() a CacheBackedEmbeddings() s modelom, úložiskom a priestorom názvov ako jeho parametrami:

podkladové_embeddings = OpenAIEmbeddings ( )
embedder = CacheBackedEmbeddings.from_bytes_store (
podkladové_embeddings, store, menný priestor =podkladové_embeddings.model
)

Použiť vloženia na uložený dokument bez použitia vloženia vyrovnávacej pamäte na získanie údajov z dokumentu:

embeddings = embedder.embed_documents ( [ 'Ahoj' , 'Zbohom' ] )

Teraz použite vyrovnávaciu pamäť na vloženia, aby ste rýchlo získali údaje z dokumentov:

embeddings_from_cache = embedder.embed_documents ( [ 'Ahoj' , 'Zbohom' ] )

Uložte vloženia do vyrovnávacej pamäte do premennej vloženia, aby premenná vloženia mala uložené vloženia vo vyrovnávacej pamäti:

embeddings == embeddings_from_cache

Krok 6: Používanie vyrovnávacej pamäte systému súborov
Posledná metóda na použitie ukladania do vyrovnávacej pamäte vo vloženiach z dokumentu test_cache pomocou úložiska systému súborov:

fs = LocalFileStore ( './test_cache/' )

Aplikujte vloženia pomocou metódy CacheBackedEmbeddings() s modelom vkladania, úložiskom údajov a priestorom názvov ako parametrami:

embedder2 = CacheBackedEmbeddings.from_bytes_store (
podkladové_embeddings, fs, menný priestor =podkladové_embeddings.model
)

Na zavolanie metódy embedder() použite premennú embeddings s údajmi uloženými vo vyrovnávacej pamäti:

embeddings = embedder2.embed_documents ( [ 'Ahoj' , 'Zbohom' ] )

Teraz získajte vloženia pre vyššie uvedené dva svety uvedené ako parametre:

zoznam ( fs.yield_keys ( ) )

To je všetko o procese budovania a práce s cachovaním v LangChain.

Záver

Ak chcete pracovať s technikami ukladania do vyrovnávacej pamäte pre vkladanie v LangChain, jednoducho získajte požadované moduly pomocou príkazu pip, ako je FAISS, OpenAI atď. Potom importujte knižnice na vytváranie a prácu s ukladania do vyrovnávacej pamäte v LangChain. Efektívne získava vložky uložené v rôznych obchodoch. Vývojári môžu použiť viacero obchodov ako databázy na ukladanie vložení, ako sú vektorové obchody, systémy súborov alebo obchody v pamäti. Táto príručka demonštrovala proces práce s vyrovnávacou pamäťou v LangChain.