Tämä opas havainnollistaa muistin lisäämisen ketjuun, jossa on useita tuloja LangChainissa.
Kuinka lisätä muistia ketjuun, jossa on useita tuloja LangChainissa?
Muisti voidaan lisätä LLM:iin tai chatboteihin uusimpien viestien tai tietojen tallentamiseksi, jotta malli voi ymmärtää komennon kontekstin. Jos haluat oppia lisäämään muistia ketjuun, jossa on useita syötteitä LangChainissa, käy läpi seuraavat vaiheet:
Vaihe 1: Asenna moduulit
Asenna ensin LangChain-kehys, koska siinä on useita riippuvuuksia kielimallien rakentamiseen:
pip asennus langchain
Asenna chromadb tallentaaksesi muistin käyttämät tiedot Chroma-vektorisäilöön:
pip asennus chromadb
Tiktoken on tokenisaattori, jota käytetään luomaan pieniä paloja suurista asiakirjoista, jotta niitä voidaan hallita helposti:
pip asentaa tiktoken
OpenAI on moduuli, jota voidaan käyttää ketjujen ja LLM:ien rakentamiseen OpenAI()-menetelmällä:
pip install openai
Vaihe 2: Määritä ympäristö ja lataa tiedot
Seuraava vaihe kaikkien tähän prosessiin tarvittavien moduulien asentamisen jälkeen on ympäristön perustaminen käyttämällä OpenAI-tilin API-avainta:
tuonti sinätuonti getpass
sinä . suunnilleen [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API Key:' )
Lataa asiakirjat tiedostokirjaston avulla luodaksesi ketjut LangChain-kehyksessä:
alkaen Google. ET AL tuonti tiedostotladattu = tiedostot. lataa ( )
Vaihe 3: Tuo kirjastot
Kun asiakirja on ladattu onnistuneesti, tuo tarvittavat kirjastot Langchain-moduulista:
alkaen langchain. upotukset . openai tuonti OpenAIEembeddingsalkaen langchain. upotukset . johdonmukainen tuonti Cohere Embeddings
alkaen langchain. text_splitter tuonti CharacterTextSplitter
alkaen langchain. vektorivarastot . elastinen_vektorihaku tuonti ElasticVectorSearch
alkaen langchain. vektorivarastot tuonti Chroma
alkaen langchain. lääkärikauppa . asiakirja tuonti Asiakirja
Vaihe 4: Muistin rakentaminen Chroma-tietokannan avulla
Aloita nyt vektoritilan rakentaminen aiemmin ladatun asiakirjan upotusten ja tunnuksien tallentamiseksi:
kanssa avata ( 'liiton_tila.txt' ) kuten f:liiton_tila = f. lukea ( )
text_splitter = CharacterTextSplitter ( chunk_size = 1000 , chunk_overlap = 0 )
tekstit = text_splitter. split_text ( liiton_tila )
upotukset = OpenAIEembeddings ( )
Määritä Chroma-tietokanta asiakirjan tekstin ja upotusten tallentamista varten:
docsearch = Chroma. from_texts (tekstit , upotukset , metatiedot = [ { 'lähde' : i } varten i sisään alue ( vain ( tekstit ) ) ]
)
Testaa muistia kysymällä komento kyselymuuttujassa ja suorita sitten samankaltaisuus_search() -metodi:
kysely = 'Milloin NATO perustettiin'asiakirjoja = docsearch. samankaltaisuus_haku ( kysely )
Vaihe 5: Kehotemallin määrittäminen
Tämä vaihe selittää prosessin, jolla kehotteiden malli määritetään tuomalla seuraavat kirjastot:
alkaen langchain. ketjut . kysymys_vastaus tuonti load_qa_chainalkaen langchain. llms tuonti OpenAI
alkaen langchain. kehotteita tuonti PromptTemplate
alkaen langchain. muisti tuonti ConversationBufferMemory
Sen jälkeen yksinkertaisesti määritä kyselyn malli tai rakenne ja suorita ketju, kun muisti on lisätty malliin:
sapluuna = '''Olet malli, joka juttelee ihmisen kanssaKun otetaan huomioon pitkästä asiakirjasta ja kysymyksestä poimitut palaset, luo lopullinen vastaus
{konteksti}
{hist}
Ihminen: {input}
Chatbot: '''
kehote = PromptTemplate (
input_variables = [ 'historia' , 'syöttö' , 'konteksti' ] , sapluuna = sapluuna
)
muisti = ConversationBufferMemory ( muisti_avain = 'historia' , syöttöavain = 'syöttö' )
ketju = load_qa_chain (
OpenAI ( lämpötila = 0 ) , ketjun_tyyppi = 'tavaraa' , muisti = muisti , kehote = kehote
)
Vaihe 6: Muistin testaus
Tässä on aika testata mallia esittämällä kysymys kyselymuuttujan avulla ja suorittamalla sitten chain()-metodi sen parametrein:
kysely = 'Milloin NATO perustettiin'ketju ( { 'syöttö_asiakirjat' : asiakirjat , 'syöttö' : kysely } , return_only_outputs = Totta )
Tulosta puskurimuistiin tallennetut tiedot, koska mallin antama vastaus on äskettäin tallennettu muistiin:
Tulosta ( ketju. muisti . puskuri )
Siinä on kyse muistin lisäämisestä ketjuun, jossa on useita tuloja LangChainissa.
Johtopäätös
Jos haluat lisätä muistia LangChainin useiden tulojen ketjuun, asenna moduulit ja vektorimuisti tekstin ja upotusten tallentamiseksi. Lataa sen jälkeen tiedot/asiakirja paikallisesta järjestelmästä ja tuo sitten tarvittavat kirjastot tietojen tallentamista varten LLM:n muistin rakentamiseksi. Määritä kehotemalli tallentamaan viimeisimmät viestit puskurimuistiin ja lähettämään sitten tekstiviesti ketjulle. Tässä oppaassa on käsitelty muistin lisäämisprosessia LangChainin useiden tulojen ketjuun.