Kuidas lisada mälu mitme sisendiga ahelale LangChainis?

Kuidas Lisada Malu Mitme Sisendiga Ahelale Langchainis



Vestlusboteid ja suuri keelemudeleid kasutavad miljonid üle maailma ning need mudelid saavad käsu peale teksti genereerida. LangChain on üks tõhusamaid ja tõhusamaid raamistikke, mis võimaldavad arendajatel selliseid mudeleid ja roboteid luua. Kasutaja annab sisendiks viipasid või päringuid ja mudel mõistab käsku enne teksti genereerimist, mis näib olevat kõige seotud või käsk meeldib.

See juhend illustreerib mälu lisamise protsessi LangChainis mitme sisendiga ahelasse.

Kuidas lisada mälu mitme sisendiga ahelale LangChainis?

Mälu saab lisada LLM-idele või vestlusrobotidele, et salvestada uusimaid sõnumeid või andmeid, et mudel mõistaks käsu konteksti. LangChainis mitme sisendiga ahelasse mälu lisamise protsessi õppimiseks tehke lihtsalt järgmised sammud.







1. samm: installige moodulid

Esmalt installige LangChaini raamistik, kuna sellel on keelemudelite loomiseks mitmesuguseid sõltuvusi:



pip install langchain



Installige chromadb, et salvestada mälus kasutatavad andmed Chroma vektorite salves:





pip install chromadb

Tiktoken on märgistusseade, mida kasutatakse suurte dokumentide väikeste tükkide loomiseks, et neid saaks hõlpsasti hallata:



pip install tiktoken

OpenAI on moodul, mida saab kasutada ahelate ja LLM-ide koostamiseks OpenAI() meetodi abil:

pip install openai

2. samm: seadistage keskkond ja laadige andmed üles

Järgmine samm pärast kõigi selle protsessi jaoks vajalike moodulite installimist on keskkonna seadistamine kasutades OpenAI konto API-võtit:

importida sina
importida saada pass

sina . umbes [ 'OPENAI_API_KEY' ] = saada pass . saada pass ( 'OpenAI API võti:' )

LangChaini raamistikus kettide koostamiseks laadige dokumendid üles failiteegi abil:

alates google. ET AL importida failid

üles laaditud = failid. Laadi üles ( )

3. samm: importige teegid

Kui dokument on edukalt üles laaditud, importige lihtsalt vajalikud teegid Langchaini moodulist:

alates langchain. manused . openai importida OpenAIEembeddings

alates langchain. manused . sidusad importida Cohere Embeddings

alates langchain. teksti_jagaja importida CharacterTextSplitter

alates langchain. vektorpoed . elastse_vektori_otsing importida ElasticVectorSearch

alates langchain. vektorpoed importida Chroma

alates langchain. arstipood . dokument importida Dokument

4. samm: looge mälu Chroma andmebaasi abil

Nüüd alustage vektorruumi loomist, et salvestada varem üles laaditud dokumendi manuseid ja žetoone:

koos avatud ( 'liit_riik.txt' ) nagu f:
liidu_riik = f. lugeda ( )
text_splitter = CharacterTextSplitter ( tüki_suurus = 1000 , chunk_overlap = 0 )
tekstid = text_splitter. split_text ( liidu_riik )

manused = OpenAIEembeddings ( )

Konfigureerige Chroma andmebaas teksti ja dokumendi manuste salvestamiseks:

docsearch = Chroma. tekstidest_ (

tekstid , manused , metaandmed = [ { 'allikas' : i } jaoks i sisse ulatus ( ainult ( tekstid ) ) ]

)

Testige mälu, küsides päringumuutujas käsku ja seejärel käivitage meetod Sarnasus_search():

päring = 'Millal moodustati NATO'

dok = docsearch. sarnasuse_otsing ( päring )

5. samm: Viibamalli konfigureerimine

See samm selgitab viipade malli konfigureerimise protsessi järgmiste teekide importimise teel:

alates langchain. ketid . küsimus_vastamine importida load_qa_chain

alates langchain. llms importida OpenAI

alates langchain. viipasid importida PromptMall

alates langchain. mälu importida ConversationBufferMemory

Pärast seda konfigureerige lihtsalt päringu mall või struktuur ja käivitage kett, kui mälu on mudelile lisatud:

malli = '''Sa oled modell, kes vestleb inimesega
Arvestades pikast dokumendist eraldatud tükke ja küsimust, looge lõplik vastus

{Sisu}

{hist}
Inimene: {input}
Vestlusbot: '''


viip = PromptMall (
sisend_muutujad = [ 'ajalugu' , 'sisend' , 'Sisu' ] , malli = malli
)
mälu = ConversationBufferMemory ( mälu_võti = 'ajalugu' , sisend_võti = 'sisend' )
kett = load_qa_chain (
OpenAI ( temperatuuri = 0 ) , ahela_tüüp = 'kraam' , mälu = mälu , viip = viip
)

6. samm: mälu testimine

Siin on aeg testida mudelit, esitades küsimuse päringumuutuja abil ja seejärel käivitades meetodi chain() koos selle parameetritega:

päring = 'Millal moodustati NATO'

kett ( { 'sisend_dokumendid' : dokumendid , 'sisend' : päring } , return_only_outputs = Tõsi )

Printige puhvermällu salvestatud andmed, kuna mudeli antud vastus on hiljuti mällu salvestatud:

printida ( kett. mälu . puhver )

See kõik puudutab mälu lisamist LangChainis mitme sisendiga ahelasse.

Järeldus

LangChainis mitme sisendiga kettile mälu lisamiseks installige lihtsalt moodulid ja vektorpood, et salvestada teksti ja manuseid. Pärast seda laadige andmed/dokument kohalikust süsteemist üles ja seejärel importige vajalikud teegid andmete salvestamiseks, et luua LLM-i mälu. Konfigureerige viipamall, et talletada puhvermällu kõige värskemad sõnumid ja seejärel saata ahelale tekst. Selles juhendis on käsitletud mälu lisamise protsessi LangChainis mitme sisendiga ahelasse.