Kako dodati pomnilnik v verigo z več vhodi v LangChain?

Kako Dodati Pomnilnik V Verigo Z Vec Vhodi V Langchain



Klepetalne robote in velike jezikovne modele uporabljajo milijoni po vsem svetu in ti modeli lahko ustvarijo besedilo na ukaz. LangChain je eno najučinkovitejših in najučinkovitejših ogrodij, ki razvijalcem omogočajo izdelavo takšnih modelov in botov. Uporabnik daje pozive ali poizvedbe kot vhod in model razume ukaz, preden ustvari besedilo, ki se zdi najbolj povezano ali podobno ukazu.

Ta vodnik bo prikazal postopek dodajanja pomnilnika v verigo z več vhodi v LangChain.

Kako dodati pomnilnik v verigo z več vhodi v LangChain?

Pomnilnik je mogoče dodati LLM-jem ali chatbotom za shranjevanje najnovejših sporočil ali podatkov, tako da lahko model razume kontekst ukaza. Če se želite naučiti postopka dodajanja pomnilnika v verigo z več vhodi v LangChain, preprosto pojdite skozi naslednje korake:







1. korak: Namestite module

Najprej namestite ogrodje LangChain, saj ima različne odvisnosti za gradnjo jezikovnih modelov:



pip namestite langchain



Namestite chromadb za shranjevanje podatkov, ki jih uporablja pomnilnik v vektorski shrambi Chroma:





pip namestite chromadb

Tiktoken je tokenizer, ki se uporablja za ustvarjanje majhnih kosov velikih dokumentov, tako da jih je mogoče enostavno upravljati:



pip namestite tiktoken

OpenAI je modul, ki ga je mogoče uporabiti za gradnjo verig in LLM z uporabo metode OpenAI():

pip namestite openai

2. korak: Nastavite okolje in naložite podatke

Naslednji korak po namestitvi vseh potrebnih modulov za ta postopek je postavitev okolja z uporabo ključa API iz računa OpenAI:

uvoz ti
uvoz getpass

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

Naložite dokumente z uporabo knjižnice datotek za izgradnjo verig v ogrodju LangChain:

od google. ET AL uvoz datoteke

naloženo = datoteke. nalaganje ( )

3. korak: Uvozite knjižnice

Ko je dokument uspešno naložen, preprosto uvozite zahtevane knjižnice iz modula Langchain:

od Langchain. vdelave . openai uvoz OpenAIEmbeddings

od Langchain. vdelave . povezovati uvoz CohereEmbeddings

od Langchain. razdelilnik besedila uvoz CharacterTextSplitter

od Langchain. vektorske trgovine . elastično_vektorsko_iskanje uvoz ElasticVectorSearch

od Langchain. vektorske trgovine uvoz Chroma

od Langchain. docstore . dokument uvoz Dokument

4. korak: Gradnja pomnilnika z uporabo Chroma Database

Zdaj začnite graditi vektorski prostor za shranjevanje vdelav in žetonov prej naloženega dokumenta:

z odprto ( 'state_of_the_union.txt' ) kot f:
stanje_unije = f. prebrati ( )
razdelilnik besedila = CharacterTextSplitter ( velikost_kosa = 1000 , chunk_overlap = 0 )
besedila = razdelilnik besedila. split_text ( stanje_unije )

vdelave = OpenAIEmbeddings ( )

Konfigurirajte podatkovno bazo Chroma za shranjevanje besedila in vdelav iz dokumenta:

docsearch = Chroma. iz_besedil (

besedila , vdelave , metapodatki = [ { 'vir' : jaz } za jaz v obseg ( samo ( besedila ) ) ]

)

Preizkusite pomnilnik tako, da vprašate ukaz v spremenljivki poizvedbe in nato izvedete metodo similarity_search():

poizvedbo = 'Kdaj je bil Nato ustanovljen'

dokumenti = docsearch. podobnost_iskanje ( poizvedbo )

5. korak: Konfiguriranje predloge poziva

Ta korak pojasnjuje postopek konfiguriranja predloge za pozive z uvozom naslednjih knjižnic:

od Langchain. verige . vprašanje_odgovarjanje uvoz load_qa_chain

od Langchain. llms uvoz OpenAI

od Langchain. pozive uvoz PromptTemplate

od Langchain. spomin uvoz ConversationBufferMemory

Po tem preprosto konfigurirajte predlogo ali strukturo za poizvedbo in zaženite verigo, ko je pomnilnik dodan modelu:

predlogo = '''Vi ste model, ki klepeta s človekom
Glede na dele, izvlečene iz dolgega dokumenta in vprašanja, ustvarite končni odgovor

{kontekst}

{hist}
Človek: {input}
Klepetalni robot:'''


poziv = PromptTemplate (
vhodne_spremenljivke = [ 'zgodovina' , 'vnos' , 'kontekst' ] , predlogo = predlogo
)
spomin = ConversationBufferMemory ( pomnilniški_ključ = 'zgodovina' , vhodna_ključ = 'vnos' )
veriga = load_qa_chain (
OpenAI ( temperatura = 0 ) , vrsta_verige = 'stvari' , spomin = spomin , poziv = poziv
)

6. korak: Testiranje pomnilnika

Tukaj je čas, da preizkusite model tako, da postavite vprašanje z uporabo poizvedbene spremenljivke in nato izvedete metodo chain() z njenimi parametri:

poizvedbo = 'Kdaj je bil Nato ustanovljen'

veriga ( { 'vhodni_dokumenti' : dokumenti , 'vnos' : poizvedba } , povratni_samo_izhodi = Prav )

Natisnite podatke, shranjene v vmesnem pomnilniku, saj je bil odgovor, ki ga je dal model, nedavno shranjen v pomnilniku:

tiskanje ( veriga. spomin . medpomnilnik )

To je vse o dodajanju pomnilnika v verigo z več vhodi v LangChain.

Zaključek

Če želite dodati pomnilnik v verigo z več vhodi v LangChain, preprosto namestite module in vektorsko shrambo za shranjevanje besedila in vdelav. Po tem naložite podatke/dokument iz lokalnega sistema in nato uvozite zahtevane knjižnice za shranjevanje podatkov za izgradnjo pomnilnika za LLM. Konfigurirajte predlogo poziva za shranjevanje najnovejših sporočil v vmesni pomnilnik in nato pošljite besedilo verigi. Ta priročnik podrobneje opisuje postopek dodajanja pomnilnika v verigo z več vhodi v LangChain.