Jak pracovat s ukládáním do mezipaměti v LangChain?

Jak Pracovat S Ukladanim Do Mezipameti V Langchain



Ukládání do mezipaměti je proces ukládání a načítání nejnovějších nebo často používaných dat z modelu, takže je není nutné neustále přepočítávat. Vložení textu lze použít k převodu textových dat na čísla a použití technik ukládání do mezipaměti může zlepšit efektivitu modelu. LangChain umožňuje vývojářům sestavit model ukládání do mezipaměti pomocí knihovny CacheBackedEmbeddings.

Tento příspěvek bude demonstrovat proces práce s ukládáním do mezipaměti v LangChain.







Jak pracovat s ukládáním do mezipaměti v LangChain?

Ukládání do mezipaměti v LangChain na modelech vkládání textu lze použít prostřednictvím různých datových sad, jako je použití vektorového úložiště, dat v paměti nebo dat ze systémů souborů. Použití metod mezipaměti může získat výstup rychle a model může efektivněji aplikovat podobnostní vyhledávání na data.



Chcete-li se naučit proces práce s ukládáním do mezipaměti v LangChain, jednoduše projděte uvedenými kroky:



Krok 1: Nainstalujte moduly
Nejprve začněte proces práce s ukládáním do mezipaměti instalací požadovaných modelů, první je zde LangChain, který obsahuje všechny potřebné knihovny pro tento proces:





pip Nainstalujte langchain

Modul FAISS je vyžadován k provádění podobnostního vyhledávání pro extrahování nebo generování výstupu na základě vstupu poskytnutého uživatelem:



pip Nainstalujte faiss-gpu

Posledním modulem pro tuto příručku, který je třeba nainstalovat, je OpenAI, který lze použít k vytvoření vložení dat pomocí metody OpenAIEmbeddings():

pip Nainstalujte openai

Po instalaci všech modulů stačí nastavit prostředí pomocí API klíče z prostředí OpenAI pomocí „ vy ' a ' getpass “knihovny:

importujte nás
importovat getpass

os.environ [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'Klíč OpenAI API:' )

Krok 2: Import knihoven
Po dokončení nastavení jednoduše importujte knihovny pro práci s technikami ukládání do mezipaměti v LangChain:

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

Krok 3: Vytvoření modelu ukládání do mezipaměti
Po importu knihoven jednoduše zavolejte metodu OpenAIEmbeddings() k vytvoření modelu a uložte jej do proměnné:

podkladové_embeddings = OpenAIEmbeddings ( )

Nyní použijte mezipaměť pomocí metody LocalFileStore() a metod CacheBackedEmbeddings() s více argumenty:

fs = LocalFileStore ( './mezipaměti/' )

cached_embedder = CacheBackedEmbeddings.from_bytes_store (
základní_embeddings, fs, jmenný prostor =podkladové_embeddings.model
)

Jednoduše získejte seznam vložení a prozatím je seznam prázdný, protože vložení nejsou uložena v seznamu:

seznam ( fs.yield_keys ( ) )

Krok 4: Vytvoření Vector Store
Získejte soubor z místního systému pomocí knihovny souborů a klikněte na „ Vyberte Soubory “ po provedení kódu:

z importu souborů google.colab
uploaded = files.upload ( )

Nyní jednoduše vytvořte vektorové úložiště, které lze použít k uložení vložení pomocí metody TextLoader() s názvem dokumentu. Poté použijte metody dělení textu s velikostí částí a rozdělte data na menší části:

raw_documents = TextLoader ( 'state_of_the_union.txt' ) .zatížení ( )
text_splitter = CharacterTextSplitter ( chunk_size = 1000 , chunk_overlap = 0 )
dokumenty = text_splitter.split_documents ( nezpracované_dokumenty )

Po rozdělení textu uložte data do db proměnnou pomocí knihovny FAISS k získání výstupu pomocí metody hledání podobnosti:

db = FAISS.from_documents ( dokumenty, cached_embedder )

Nyní znovu získejte seznam vložení po jejich uložení do databáze a omezte výstup pouze na 5 indexů:

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

Krok 5: Použití ukládání do mezipaměti
Další ukládání do mezipaměti lze použít pomocí metod InMemoryStore() k definování proměnné úložiště:

store = InMemoryStore ( )

Sestavte model ukládání do mezipaměti pomocí metod OpenAIEmbeddings() a CacheBackedEmbeddings() s modelem, úložištěm a jmenným prostorem jako jeho parametry:

podkladové_embeddings = OpenAIEmbeddings ( )
embedder = CacheBackedEmbeddings.from_bytes_store (
základní_embeddings, store, jmenný prostor =podkladové_embeddings.model
)

Použijte vložení na uložený dokument bez použití vložení mezipaměti k získání dat z dokumentu:

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

Nyní použijte mezipaměť na vložení a rychle načtěte data z dokumentů:

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

Uložte vložení do mezipaměti do proměnné embeddings, aby proměnná embeddings měla uložená vložení z mezipaměti:

embeddings == embeddings_from_cache

Krok 6: Použití mezipaměti systému souborů
Poslední metoda použití ukládání do mezipaměti ve vložení z dokumentu test_cache pomocí úložiště systému souborů:

fs = LocalFileStore ( './test_cache/' )

Použijte vložení pomocí metody CacheBackedEmbeddings() s modelem vložení, úložištěm dat a jmenným prostorem jako parametry:

embedder2 = CacheBackedEmbeddings.from_bytes_store (
základní_embeddings, fs, jmenný prostor =podkladové_embeddings.model
)

Použijte proměnnou embeddings s daty uloženými v mezipaměti k volání metody embedder():

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

Nyní získejte vložení pro výše uvedené dva světy uvedené jako parametry:

seznam ( fs.yield_keys ( ) )

To je vše o procesu vytváření a práce s mezipamětí v LangChain.

Závěr

Chcete-li pracovat s technikami ukládání do mezipaměti pro vkládání v LangChain, jednoduše získejte požadované moduly pomocí příkazu pip, jako je FAISS, OpenAI atd. Poté importujte knihovny pro vytváření a práci s ukládáním do mezipaměti v LangChain. Efektivně získává vložení uložené v různých obchodech. Vývojáři mohou používat více úložišť jako databáze k ukládání vložení, jako jsou vektorové úložiště, systémy souborů nebo úložiště v paměti. Tato příručka demonstrovala proces práce s ukládáním do mezipaměti v LangChain.