Jak používat VectorStoreRetrieverMemory v LangChain?

Jak Pouzivat Vectorstoreretrievermemory V Langchain



Velké jazykové modely neboli LLM jsou řešením problémů se zpracováním přirozeného jazyka, které jsou vytvořeny pomocí rámce LangChain. Modul LangChain poskytuje všechny potřebné závislosti nebo knihovny pro navrhování modelů chatu nebo LLM. Uživatel může také nastavit retriever pro extrahování dat z vektorových úložišť nebo databází pomocí modelů.

Tato příručka ilustruje, jak používat VectorStoreRetrieverMemory pomocí rámce LangChain.

Jak používat VectorStoreRetrieverMemory v LangChain?

VectorStoreRetrieverMemory je knihovna LangChain, kterou lze použít k extrahování informací/dat z paměti pomocí vektorových úložišť. Vektorové úložiště lze použít k ukládání a správě dat k efektivnímu extrahování informací podle výzvy nebo dotazu.







Chcete-li se naučit proces používání VectorStoreRetrieverMemory v LangChain, jednoduše si projděte následující průvodce:



Krok 1: Nainstalujte moduly

Zahajte proces používání paměťového retrieveru instalací LangChain pomocí příkazu pip:



pip install langchain





Nainstalujte moduly FAISS, abyste získali data pomocí vyhledávání sémantické podobnosti:

pip install faiss-gpu



Nainstalujte modul chromadb pro používání databáze Chroma. Funguje jako vektorové úložiště pro vytvoření paměti pro retrívra:

pip install chromadb

K instalaci je potřeba další tiktoken modulu, který lze použít k vytvoření tokenů převodem dat na menší části:

pip nainstalovat tiktoken

Nainstalujte modul OpenAI, abyste mohli používat jeho knihovny pro vytváření LLM nebo chatbotů pomocí jeho prostředí:

pip install openai

Nastavte prostředí na Python IDE nebo notebooku pomocí klíče API z účtu OpenAI:

import vy

import getpass

vy . přibližně [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'Klíč OpenAI API:' )

Krok 2: Import knihoven

Dalším krokem je získání knihoven z těchto modulů pro použití paměťového retrieveru v LangChain:

z langchain. vyzve import PromptTemplate

z čas schůzky import čas schůzky

z langchain. llms import OpenAI

z langchain. vložení . openai import OpenAIEmbeddings

z langchain. řetězy import ConversationChain

z langchain. Paměť import VectorStoreRetrieverMemory

Krok 3: Inicializace Vector Store

Tato příručka používá databázi Chroma po importu knihovny FAISS k extrahování dat pomocí příkazu input:

import faiss

z langchain. lékárna import InMemoryDocstore
#importing knihovny pro konfiguraci databází nebo vektorových úložišť
z langchain. vectorstores import FAISS

#create vložení a texty pro jejich uložení do vektorových obchodů
embedding_size = 1536
index = faiss. IndexFlatL2 ( embedding_size )
embedding_fn = OpenAIEmbeddings ( ) . embed_query
vectorstore = FAISS ( embedding_fn , index , InMemoryDocstore ( { } ) , { } )

Krok 4: Stavba retrívra s podporou vektorového obchodu

Vytvořte si paměť pro ukládání nejnovějších zpráv v konverzaci a získejte kontext chatu:

retriever = vectorstore. jako_retrívr ( search_kwargs = diktát ( k = 1 ) )
Paměť = VectorStoreRetrieverMemory ( retriever = retriever )

Paměť. uložit_kontext ( { 'vstup' : 'Mám rád pizzu' } , { 'výstup' : 'fantastický' } )
Paměť. uložit_kontext ( { 'vstup' : 'Jsem dobrý ve fotbale' } , { 'výstup' : 'OK' } )
Paměť. uložit_kontext ( { 'vstup' : 'Nemám rád politiku' } , { 'výstup' : 'Tak určitě' } )

Otestujte paměť modelu pomocí vstupu poskytnutého uživatelem s jeho historií:

tisk ( Paměť. load_memory_variables ( { 'výzva' : 'Jaký sport bych měl sledovat?' } ) [ 'Dějiny' ] )

Krok 5: Použití retrívra v řetězci

Dalším krokem je použití paměťového retrieveru s řetězci vytvořením LLM pomocí metody OpenAI() a konfigurací šablony výzvy:

llm = OpenAI ( teplota = 0 )
_DEFAULT_TEMPLATE = '''Je to interakce mezi člověkem a strojem
Systém vytváří užitečné informace s podrobnostmi pomocí kontextu
Pokud systém pro vás odpověď nemá, jednoduše řekne, že odpověď nemám

Důležité informace z rozhovoru:
{Dějiny}
(pokud text není relevantní, nepoužívejte jej)

Aktuální chat:
Člověk: {input}
AI:'''

VÝZVA = PromptTemplate (
vstupní_proměnné = [ 'Dějiny' , 'vstup' ] , šablona = _DEFAULT_TEMPLATE
)
#nakonfigurujte metodu ConversationChain() pomocí hodnot jejích parametrů
konverzace_se_souhrnem = ConversationChain (
llm = llm ,
výzva = VÝZVA ,
Paměť = Paměť ,
podrobný = Skutečný
)
konverzace_se_souhrnem. předpovědět ( vstup = 'Ahoj, jmenuji se Perry, co se děje?' )

Výstup

Provedením příkazu se spustí řetězec a zobrazí se odpověď poskytnutá modelem nebo LLM:

Pokračujte v konverzaci pomocí výzvy založené na datech uložených ve vektorovém úložišti:

konverzace_se_souhrnem. předpovědět ( vstup = 'Jaký je můj oblíbený sport?' )

Předchozí zprávy jsou uloženy v paměti modelu, kterou může model použít k pochopení kontextu zprávy:

konverzace_se_souhrnem. předpovědět ( vstup = 'Jaké je moje oblíbené jídlo' )

Získejte odpověď poskytnutou modelu v jedné z předchozích zpráv a zkontrolujte, jak paměťový modul pracuje s modelem chatu:

konverzace_se_souhrnem. předpovědět ( vstup = 'Jak se jmenuji?' )

Model správně zobrazil výstup pomocí podobnostního vyhledávání z dat uložených v paměti:

To je vše o použití vektorového retrieveru v LangChain.

Závěr

Chcete-li použít paměťový retriever založený na vektorovém úložišti v LangChain, jednoduše nainstalujte moduly a rámce a nastavte prostředí. Poté naimportujte knihovny z modulů pro sestavení databáze pomocí Chroma a poté nastavte šablonu výzvy. Vyzkoušejte retriever po uložení dat do paměti zahájením konverzace a položením otázek souvisejících s předchozími zprávami. Tato příručka podrobně popisuje proces používání knihovny VectorStoreRetrieverMemory v LangChain.