Kako dodati prilagođenu vrstu memorije u LangChain?

Kako Dodati Prilagodenu Vrstu Memorije U Langchain



LangChain se koristi za konfiguriranje/dizajn jezičnih modela ili chatbota koji mogu komunicirati s ljudima poput chata. Ove chat poruke su povezane kroz lance kao što naziv LangChain sugerira, a korisnik ih također može pohraniti u memoriju. LangChain omogućuje programerima korištenje memorijskih biblioteka koje omogućuju korištenje ugrađenih klasa ili prilagodbu vlastite memorije.

Brzi pregled

Ovaj će post pokazati:







Kako dodati prilagođenu vrstu memorije u LangChain



Zaključak



Kako dodati prilagođenu vrstu memorije u LangChain?

Dodavanje prilagođene vrste memorije u LangChain omogućuje korisniku da dobije najviše performansi kao memorije. Korisnik može konfigurirati vrstu memorije prema svojim zahtjevima. Da biste dodali prilagođenu vrstu memorije u LangChain, jednostavno prođite kroz sljedeće korake:





Korak 1: Instalacija Frameworks

Najprije instalirajte okvir LangChain da biste započeli s postupkom dodavanja prilagođene vrste memorije:

pip instalirati langchain

Pokretanje gornje naredbe u Python bilježnici instalirat će ovisnosti za LangChain kao što je prikazano u sljedećem isječku:



Instalirajte OpenAI modul kako biste dobili njegove biblioteke koje se mogu koristiti za konfiguriranje LLM-ova:

pip instaliraj openai

Ovaj će vodič koristiti okvir spaCy za dizajniranje prilagođene vrste memorije u LangChainu, a sljedeći se kod koristi za instalaciju modula:

pip instalirati prostorno

SpaCy model koristi hash tablicu za pohranu informacija kao zapažanja poput prethodnih poruka chata. Sljedeći kod koristi se za preuzimanje Large Language Model ili LLM iz spaCy knjižnice za izgradnju naprednog NLP modela:

! python -m spacy preuzimanje en_core_web_lg

Uvoz ' vas ' i ' getpass ” biblioteke služe za unos API ključa s OpenAI-jevog računa postaviti svoje okruženje :

uvoz vas
uvoz getpass

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

Korak 2: Uvoz biblioteka

Sljedeći korak je uvoz potrebnih biblioteka za prilagodbu vrste memorije prema modelu chata:

iz langchain. shema uvoz Osnovna memorija

iz langchain. lanci uvoz Lanac razgovora

iz pidantičan uvoz Osnovni model

iz langchain. llms uvoz OpenAI

iz tipkanje uvoz Popis , Dict , Bilo koje

Uvoz ' spaCy ' biblioteka za učitavanje ' en_core_web_lg ' i dodijelite ga ' nlp ” jer je to model obrade prirodnog jezika:

uvoz prostrano

nlp = prostrano. opterećenje ( 'en_core_web_lg' )

Korak 3: Izgradnja prilagođene memorije

Nakon toga jednostavno izgradite prilagođenu memoriju koristeći argumente BaseMemory i BaseModel u klasi Memory. Zatim konfigurirajte entitete (prikupljene/pohranjene iz podataka) koji se mogu pohraniti u memoriju kao cjelovita informacija ili kao jedna cjelina. Memorija je konfigurirana da sadrži sve entitete iz dokumenta kako bi se optimizirala izvedba memorije i modela:

razreda SpacyEntityMemory ( Osnovna memorija , Osnovni model ) :
''' Klasa memorije za pohranu informacija o entitetima'''
entiteti: izreka = { }
memorijski_ključ: str = 'entiteti'
def čisto ( sebe ) :
sebe . entiteta = { }
@ vlasništvo
def memorijske_varijable ( sebe ) - > Popis [ str ] :
''' Inicijaliziraj varijable dane upitu'''
povratak [ sebe . memorijski_ključ ]
#definirajte memorijske varijable pomoću argumenata
def load_memory_variables ( sebe , ulazi: Dikt [ str , Bilo koje ] ) - > Dict [ str , str ] :
''' Pozovite varijable za memoriju tj. ključ entiteta'''
doc = nlp ( ulazi [ popis ( ulazi. ključevi ( ) ) [ 0 ] ] )
#konfigurirajte entitete koji će se pohraniti u memoriju za pojedinu jedinicu
entiteta = [
sebe . entiteta [ str ( ent ) ] za ent u doc. ents ako str ( ent ) u sebe . entiteta
]
povratak { sebe . memorijski_ključ : ' \n ' . pridružiti ( entiteta ) }
#definirajte save_context() za korištenje memorije
def spremi_kontekst ( sebe , ulazi: Dikt [ str , Bilo koje ] , izlazi: Dikt [ str , str ] ) - > Nijedan :
'''Pohrani promatranje iz ovog chata u memoriju'''
tekst = ulazi [ popis ( ulazi. ključevi ( ) ) [ 0 ] ]
doc = nlp ( tekst )
za ent u doc. ents :
ent_str = str ( ent )
ako ent_str u sebe . entiteta :
sebe . entiteta [ ent_str ] + = f ' \n {tekst}'
drugo :
sebe . entiteta [ ent_str ] = tekst

Korak 4: Konfiguriranje predloška upita

Nakon toga, jednostavno konfigurirajte predložak upita koji objašnjava strukturu unosa koji daje korisnik/čovjek:

iz langchain. upita . potaknuti uvoz PromptTemplate

šablona = '''Sljedeće je interakcija između stroja i čovjeka Kaže da ne zna Ako stroj ne zna odgovor Stroj (AI) daje detalje iz svog konteksta i ako ne razumije odgovor na bilo koje pitanje jednostavno kaže oprosti

Podaci o entitetu:

{entities}

Komunikacija:

Čovjek: {input}

AI:'''


potaknuti = PromptTemplate ( ulazne_varijable = [ 'entiteti' , 'ulazni' ] , šablona = šablona )

Korak 5: Testiranje modela

Prije testiranja modela jednostavno konfigurirajte LLM pomoću metode OpenAI() i postavite funkciju ConversationChain() s argumentima:

llm = OpenAI ( temperatura = 0 )

razgovor = Lanac razgovora (

llm = llm , potaknuti = potaknuti , opširno = Pravi , memorija = SpacyEntityMemory ( )

)

Dajte informacije modelu koristeći ulazni argument dok pozivate metodu predict() s varijablom razgovora:

razgovor. predvidjeti ( ulazni = 'Harrison voli strojno učenje' )

Izlaz

Model je apsorbirao informacije i pohranio ih u memoriju te je također postavio pitanje vezano uz informacije za nastavak razgovora:

Korisnik može odgovoriti na pitanje iz modela kako bi dodao više informacija u memoriju ili testirao memoriju postavljanjem pitanja o informacijama:

razgovor. predvidjeti (

ulazni = 'Koji je Harrisonov omiljeni predmet'

)

Model daje izlaz na temelju prethodnih informacija i prikazuje ga na zaslonu kao što prikazuje sljedeći isječak:

To je sve o dodavanju prilagođene vrste memorije u LangChain.

Zaključak

Da biste dodali prilagođenu vrstu memorije u LangChain, jednostavno instalirajte potrebne module za uvoz biblioteka za izgradnju prilagođene memorije. SpaCy je važna biblioteka koja se koristi u ovom vodiču za dodavanje prilagođene memorije pomoću svog NLP modela. Nakon toga konfigurirajte prilagođenu memoriju i predložak upita kako biste dali strukturu sučelja za chat. Nakon što je konfiguracija gotova, jednostavno testirajte memoriju modela tražeći informacije vezane uz pohranjene podatke.