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 sinaimportida 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 OpenAIEembeddingsalates 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_chainalates 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 inimesegaArvestades 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.