Kako koristiti VectorStoreRetrieverMemory u LangChainu?

Kako Koristiti Vectorstoreretrievermemory U Langchainu



Veliki jezični modeli ili LLM-ovi rješenje su za probleme obrade prirodnog jezika koji su izgrađeni pomoću okvira LangChain. Modul LangChain pruža sve potrebne ovisnosti ili biblioteke za dizajniranje modela chata ili LLM-ova. Korisnik također može postaviti retriver za izdvajanje podataka iz vektorskih pohrana ili baza podataka pomoću modela.

Ovaj vodič će ilustrirati kako koristiti VectorStoreRetrieverMemory koristeći okvir LangChain.

Kako koristiti VectorStoreRetrieverMemory u LangChainu?

VectorStoreRetrieverMemory je biblioteka LangChaina koja se može koristiti za izvlačenje informacija/podataka iz memorije pomoću vektorskih pohrana. Vektorske pohrane mogu se koristiti za pohranjivanje i upravljanje podacima za učinkovito izdvajanje informacija u skladu s odzivom ili upitom.







Kako biste naučili postupak korištenja VectorStoreRetrieverMemory u LangChainu, jednostavno prođite kroz sljedeći vodič:



Korak 1: Instalirajte module

Pokrenite postupak korištenja retrievera memorije instaliranjem LangChaina pomoću naredbe pip:



pip instalirati langchain





Instalirajte FAISS module da dobijete podatke pomoću pretraživanja semantičke sličnosti:

pip instaliraj faiss-gpu



Instalirajte chromadb modul za korištenje Chroma baze podataka. Radi kao vektorska pohrana za izgradnju memorije za retriver:

pip instaliraj chromadb

Za instalaciju je potreban još jedan modul tiktoken koji se može koristiti za stvaranje tokena pretvaranjem podataka u manje dijelove:

pip instaliraj tiktoken

Instalirajte OpenAI modul da biste koristili njegove biblioteke za izgradnju LLM-ova ili chatbota koristeći njegovo okruženje:

pip instaliraj openai

Postavite okruženje na Python IDE ili prijenosnom računalu pomoću API ključa s OpenAI računa:

uvoz vas

uvoz getpass

vas . približno [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API ključ:' )

Korak 2: Uvezite biblioteke

Sljedeći korak je preuzimanje biblioteka iz ovih modula za korištenje retrievera memorije u LangChainu:

iz langchain. upita uvoz PromptTemplate

iz Datum vrijeme uvoz Datum vrijeme

iz langchain. llms uvoz OpenAI

iz langchain. ugradnje . openai uvoz OpenAIEembeddings

iz langchain. lanci uvoz Lanac razgovora

iz langchain. memorija uvoz VectorStoreRetrieverMemory

Korak 3: Inicijalizacija Vector Store

Ovaj vodič koristi bazu podataka Chroma nakon uvoza biblioteke FAISS za izdvajanje podataka pomoću naredbe za unos:

uvoz faiss

iz langchain. docstore uvoz InMemoryDocstore
#importing knjižnice za konfiguriranje baza podataka ili vektorskih pohrana
iz langchain. vektorske trgovine uvoz FAISS

#stvoriti ugradnje i tekstove za njihovo pohranjivanje u vektorske pohrane
veličina_ugradnje = 1536
indeks = faiss. IndexFlatL2 ( veličina_ugradnje )
ugradnja_fn = OpenAIEembeddings ( ) . ugraditi_upit
vektorska trgovina = FAISS ( ugradnja_fn , indeks , InMemoryDocstore ( { } ) , { } )

Korak 4: Izrada Retrievera uz podršku Vector Store-a

Izgradite memoriju za pohranjivanje najnovijih poruka u razgovoru i dobivanje konteksta chata:

retriver = vektorska trgovina. kao_retriver ( search_kwargs = izreka ( k = 1 ) )
memorija = VectorStoreRetrieverMemory ( retriver = retriver )

memorija. spremi_kontekst ( { 'ulazni' : 'Volim jesti pizzu' } , { 'izlaz' : 'fantastičan' } )
memorija. spremi_kontekst ( { 'ulazni' : 'Dobar sam u nogometu' } , { 'izlaz' : 'u redu' } )
memorija. spremi_kontekst ( { 'ulazni' : 'Ne volim politiku' } , { 'izlaz' : 'Naravno' } )

Testirajte memoriju modela koristeći unos koji je korisnik dao s njegovom poviješću:

ispisati ( memorija. load_memory_variables ( { 'potaknuti' : 'koji sport da gledam?' } ) [ 'povijest' ] )

Korak 5: Korištenje Retrievera u lancu

Sljedeći korak je korištenje memorijskog retrivera s lancima izgradnjom LLM-a pomoću metode OpenAI() i konfiguriranjem predloška upita:

llm = OpenAI ( temperatura = 0 )
_DEFAULT_TEMPLATE = '''To je interakcija između čovjeka i stroja
Sustav proizvodi korisne informacije s detaljima koristeći kontekst
Ako sustav nema odgovor za vas, jednostavno kaže da nemam odgovor

Važne informacije iz razgovora:
{povijest}
(ako tekst nije relevantan nemojte ga koristiti)

Trenutačni chat:
Čovjek: {input}
AI:'''

POTAKNUTI = PromptTemplate (
ulazne_varijable = [ 'povijest' , 'ulazni' ] , predložak = _DEFAULT_TEMPLATE
)
#konfigurirajte ConversationChain() koristeći vrijednosti za njegove parametre
razgovor_sa_sažetkom = Lanac razgovora (
llm = llm ,
potaknuti = POTAKNUTI ,
memorija = memorija ,
opširno = Pravi
)
razgovor_sa_sažetkom. predvidjeti ( ulazni = 'Bok, zovem se Perry, što ima?' )

Izlaz

Izvršenje naredbe pokreće lanac i prikazuje odgovor koji daje model ili LLM:

Nastavite s razgovorom koristeći upit na temelju podataka pohranjenih u vektorskoj pohrani:

razgovor_sa_sažetkom. predvidjeti ( ulazni = 'koji je moj omiljeni sport?' )

Prethodne poruke pohranjene su u memoriji modela koju model može koristiti za razumijevanje konteksta poruke:

razgovor_sa_sažetkom. predvidjeti ( ulazni = 'Koja je moja omiljena hrana' )

Dobijte odgovor modelu u jednoj od prethodnih poruka da provjerite kako uređaj za vraćanje memorije radi s modelom chata:

razgovor_sa_sažetkom. predvidjeti ( ulazni = 'Kako se zovem?' )

Model je ispravno prikazao izlaz koristeći pretragu sličnosti iz podataka pohranjenih u memoriji:

To je sve o korištenju vektorskog retrivera pohrane u LangChainu.

Zaključak

Za korištenje retrivera memorije temeljenog na vektorskoj pohrani u LangChainu, jednostavno instalirajte module i okvire i postavite okruženje. Nakon toga uvezite biblioteke iz modula da biste izgradili bazu podataka koristeći Chroma, a zatim postavite predložak upita. Testirajte retriver nakon pohranjivanja podataka u memoriju započinjanjem razgovora i postavljanjem pitanja vezanih uz prethodne poruke. Ovaj vodič razradio je postupak korištenja knjižnice VectorStoreRetrieverMemory u LangChainu.