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 vasuvoz 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 datotekeuč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 OpenAIEembeddingsiz 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_lanaciz 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 čovjekomS 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.