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 vasuvoz 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 PromptTemplateiz 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 faissiz 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.