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ásimportovat 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.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é:
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:
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ě:
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ů:
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.