Kuinka lisätä muistia ketjuun, jossa on useita tuloja LangChainissa?

Kuinka Lisata Muistia Ketjuun Jossa On Useita Tuloja Langchainissa



Chatbotteja ja suuria kielimalleja käyttävät miljoonat eri puolilla maailmaa, ja nämä mallit voivat luoda tekstiä käskystä. LangChain on yksi tehokkaimmista ja tehokkaimmista kehyksistä, joiden avulla kehittäjät voivat rakentaa tällaisia ​​malleja ja botteja. Käyttäjä antaa kehotteita tai kyselyitä syötteenä ja malli ymmärtää komennon ennen kuin generoi tekstin, joka vaikuttaa eniten liittyvältä tai komennosta vastaavalta.

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 tiedostot

ladattu = tiedostot. lataa ( )

Vaihe 3: Tuo kirjastot

Kun asiakirja on ladattu onnistuneesti, tuo tarvittavat kirjastot Langchain-moduulista:

alkaen langchain. upotukset . openai tuonti OpenAIEembeddings

alkaen 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_chain

alkaen 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 kanssa
Kun 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.