Kako dodati memoriju u lanac s više ulaza u LangChainu?

Kako Dodati Memoriju U Lanac S Vise Ulaza U Langchainu



Milijuni diljem svijeta koriste chatbotove i modele velikih jezika, a ti modeli mogu generirati tekst na naredbu. LangChain je jedan od najučinkovitijih i najučinkovitijih okvira koji programerima omogućuju izradu takvih modela i robota. Korisnik daje upute ili upite kao unos, a model razumije naredbu prije generiranja teksta koji se čini najsrodnijim ili sličnim naredbi.

Ovaj će vodič ilustrirati postupak dodavanja memorije u lanac s višestrukim ulazima u LangChainu.

Kako dodati memoriju u lanac s više ulaza u LangChainu?

Memorija se može dodati LLM-ovima ili chatbotovima za pohranjivanje najnovijih poruka ili podataka kako bi model mogao razumjeti kontekst naredbe. Kako biste naučili postupak dodavanja memorije u lanac s više ulaza u LangChainu, jednostavno prođite kroz sljedeće korake:







Korak 1: Instalirajte module

Prvo instalirajte okvir LangChain jer ima niz ovisnosti za izgradnju jezičnih modela:



pip instalirati langchain



Instalirajte chromadb za pohranu podataka koje koristi memorija u Chroma vektorskoj pohrani:





pip instaliraj chromadb

Tiktoken je tokenizator koji se koristi za stvaranje malih dijelova velikih dokumenata kako bi se njima moglo lako upravljati:



pip instaliraj tiktoken

OpenAI je modul koji se može koristiti za izgradnju lanaca i LLM-ova pomoću metode OpenAI():

pip instaliraj openai

Korak 2: Postavite okruženje i učitajte podatke

Sljedeći korak nakon instaliranja svih potrebnih modula za ovaj proces je postavljanje okoline pomoću API ključa s OpenAI računa:

uvoz vas
uvoz getpass

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

Prenesite dokumente pomoću biblioteke datoteka za izgradnju lanaca u okviru LangChain:

iz google. ET AL uvoz datoteke

učitano = datoteke. Učitaj ( )

Korak 3: Uvezite biblioteke

Nakon što se dokument uspješno učita, jednostavno uvezite potrebne biblioteke iz Langchain modula:

iz langchain. ugradnje . openai uvoz OpenAIEembeddings

iz langchain. ugradnje . koherirati uvoz CohereEmbeddings

iz langchain. razdjelnik_teksta uvoz CharacterTextSplitter

iz langchain. vektorske trgovine . pretraživanje_elastičnog_vektora uvoz ElasticVectorSearch

iz langchain. vektorske trgovine uvoz Chroma

iz langchain. docstore . dokument uvoz Dokument

Korak 4: Izgradnja memorije pomoću Chroma baze podataka

Sada počnite graditi vektorski prostor za pohranjivanje umetanja i tokena ranije prenesenog dokumenta:

s otvoren ( 'state_of_the_union.txt' ) kao f:
država_u_uniji = f. čitati ( )
razdjelnik_teksta = CharacterTextSplitter ( veličina_komadka = 1000 , komad_preklapanja = 0 )
tekstovi = razdjelnik_teksta. split_text ( država_u_uniji )

ugradnje = OpenAIEembeddings ( )

Konfigurirajte Chroma bazu podataka za pohranjivanje teksta i umetanja iz dokumenta:

docsearch = Chroma. iz_tekstova (

tekstovi , ugradnje , metapodaci = [ { 'izvor' : i } za ja u domet ( samo ( tekstovi ) ) ]

)

Testirajte memoriju traženjem naredbe u varijabli upita, a zatim izvršite metodu similarity_search():

upit = 'Kada je formiran NATO'

dokumenti = docsearch. traženje_sličnosti ( upit )

Korak 5: Konfiguriranje predloška upita

Ovaj korak objašnjava postupak konfiguriranja predloška za upite uvozom sljedećih biblioteka:

iz langchain. lanci . pitanje_odgovaranje uvoz opterećenje_qa_lanac

iz langchain. llms uvoz OpenAI

iz langchain. upita uvoz PromptTemplate

iz langchain. memorija uvoz ConversationBufferMemory

Nakon toga jednostavno konfigurirajte predložak ili strukturu za upit i pokrenite lanac nakon što se memorija doda modelu:

predložak = '''Vi ste model koji razgovara s čovjekom
S obzirom na dijelove izvučene iz dugog dokumenta i pitanje, stvorite konačni odgovor

{kontekst}

{hist}
Čovjek: {input}
Chatbot:'''


potaknuti = PromptTemplate (
ulazne_varijable = [ 'povijest' , 'ulazni' , 'kontekst' ] , predložak = predložak
)
memorija = ConversationBufferMemory ( memorijski_ključ = 'povijest' , input_key = 'ulazni' )
lanac = opterećenje_qa_lanac (
OpenAI ( temperatura = 0 ) , vrsta_lanca = 'stvari' , memorija = memorija , potaknuti = potaknuti
)

Korak 6: Testiranje memorije

Ovdje je vrijeme da testirate model postavljanjem pitanja pomoću varijable upita i zatim izvršavanjem metode chain() s njezinim parametrima:

upit = 'Kada je formiran NATO'

lanac ( { 'ulazni_dokumenti' : dokumenti , 'ulazni' : upit } , povratni_samo_izlazi = Pravi )

Ispišite podatke pohranjene u međuspremniku jer je odgovor koji daje model nedavno pohranjen u memoriji:

ispisati ( lanac. memorija . pufer )

To je sve o dodavanju memorije u lanac s višestrukim ulazima u LangChainu.

Zaključak

Da biste dodali memoriju u lanac s višestrukim ulazima u LangChainu, jednostavno instalirajte module i vektorsku pohranu za pohranjivanje teksta i umetanja. Nakon toga prenesite podatke/dokument iz lokalnog sustava, a zatim uvezite potrebne biblioteke za pohranjivanje podataka za izgradnju memorije za LLM. Konfigurirajte predložak upita za pohranjivanje najnovijih poruka u međuspremnik, a zatim pošaljite tekstualnu poruku lancu. Ovaj vodič razradio je postupak dodavanja memorije u lanac s višestrukim ulazima u LangChainu.