Kuinka lisätä mukautettu muistityyppi LangChainissa?

Kuinka Lisata Mukautettu Muistityyppi Langchainissa



LangChainia käytetään kielimallien tai chatbottien määrittämiseen/suunnitteluun, jotka voivat olla vuorovaikutuksessa ihmisten kanssa chatin tavoin. Nämä chat-viestit linkitetään ketjujen kautta LangChainin nimen mukaisesti ja käyttäjä voi myös tallentaa ne muistiin. LangChainin avulla kehittäjät voivat käyttää muistikirjastoja, jotka tarjoavat sisäänrakennettujen luokkien käytön tai oman muistinsa mukauttamisen.

Quick Outline

Tämä viesti näyttää:







Kuinka lisätä mukautettu muistityyppi LangChainissa



Johtopäätös



Kuinka lisätä mukautettu muistityyppi LangChainissa?

Mukautetun muistityypin lisääminen LangChainissa antaa käyttäjälle mahdollisuuden saada eniten suorituskykyä muistina. Käyttäjä voi määrittää muistityypin tarpeidensa mukaan. Voit lisätä mukautetun muistityypin LangChainissa suorittamalla seuraavat vaiheet:





Vaihe 1: Kehysten asentaminen

Asenna ensin LangChain-kehys aloittaaksesi mukautetun muistityypin lisäämisen:

pip asennus langchain

Yllä olevan komennon suorittaminen Python-muistikirjassa asentaa LangChainin riippuvuudet seuraavan katkelman mukaisesti:



Asenna OpenAI-moduuli saadaksesi sen kirjastot, joita voidaan käyttää LLM:ien määrittämiseen:

pip install openai

Tämä opas käyttää spaCy-kehystä mukautetun muistityypin suunnitteluun LangChainissa ja seuraavaa koodia käytetään moduulin asentamiseen:

pip asennustila

SpaCy-malli käyttää hajautustaulukkoa tietojen tallentamiseen havainnona kuten aikaisemmat chat-viestit. Seuraavaa koodia käytetään Large Language Modelin tai LLM:n lataamiseen spaCy-kirjastosta kehittyneen NLP-mallin luomiseksi:

! python -m spacy download en_core_web_lg

Tuodaan ' sinä ' ja ' getpass ” kirjastot on tarkoitettu API-avaimen syöttämiseen OpenAI:n tililtä perustaa ympäristönsä :

tuonti sinä
tuonti getpass

sinä . suunnilleen [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API Key:' )

Vaihe 2: Kirjastojen tuonti

Seuraava vaihe on tuoda tarvittavat kirjastot muistityypin mukauttamiseksi chat-mallin mukaan:

alkaen langchain. kaava tuonti Perusmuisti

alkaen langchain. ketjut tuonti Keskusteluketju

alkaen pydantinen tuonti Perusmalli

alkaen langchain. llms tuonti OpenAI

alkaen kirjoittamalla tuonti Lista , Dict , Minkä tahansa

Tuodaan ' spaCy ' kirjasto ladataksesi ' en_core_web_lg ' -malli ja määritä se ' nlp ”-muuttuja, koska se on Natural Language Processing -malli:

tuonti tilava

nlp = tilava. ladata ( 'en_core_web_lg' )

Vaihe 3: Mukautetun muistin luominen

Sen jälkeen rakenna mukautettu muisti käyttämällä BaseMemory- ja BaseModel-argumentteja Memory-luokassa. Määritä sitten entiteetit (kerätty/tallennettu tiedoista), jotka voidaan tallentaa muistiin täydellisenä tietona tai yhtenä yksikkönä. Muisti on määritetty sisältämään kaikki asiakirjan entiteetit muistin ja mallin toiminnan optimoimiseksi:

luokkaa SpaceEntityMemory ( Perusmuisti , Perusmalli ) :
''' Muistiluokka kokonaisuuksien tietojen tallentamiseen'''
entiteetit: sanele = { }
memory_key: str = 'entiteetit'
def asia selvä ( itse ) :
itse . kokonaisuuksia = { }
@ omaisuutta
def muisti_muuttujat ( itse ) - > Lista [ str ] :
''' Alusta kyselyyn annetut muuttujat'''
palata [ itse . muisti_avain ]
#määritä muistimuuttujat argumenttien avulla
def load_memory_variables ( itse , tulot: Dict [ str , Minkä tahansa ] ) - > Dict [ str , str ] :
''' Kutsu muistin muuttujia eli entiteettiavainta'''
doc = nlp ( tulot [ lista ( tulot. avaimet ( ) ) [ 0 ] ] )
#konfiguroi yksittäisen yksikön muistiin tallennettavat entiteetit
kokonaisuuksia = [
itse . kokonaisuuksia [ str ( ent ) ] varten ent sisään doc. ents jos str ( ent ) sisään itse . kokonaisuuksia
]
palata { itse . muisti_avain : ' \n ' . liittyä seuraan ( kokonaisuuksia ) }
#define save_context() käyttääksesi muistia
def save_context ( itse , tulot: Dict [ str , Minkä tahansa ] , lähdöt: Dict [ str , str ] ) - > Ei mitään :
'''Tallenna havainto tästä chatista muistiin'''
teksti = tulot [ lista ( tulot. avaimet ( ) ) [ 0 ] ]
doc = nlp ( teksti )
varten ent sisään doc. ents :
ent_str = str ( ent )
jos ent_str sisään itse . kokonaisuuksia :
itse . kokonaisuuksia [ ent_str ] + = f ' \n {teksti}'
muu :
itse . kokonaisuuksia [ ent_str ] = teksti

Vaihe 4: Kehotemallin määrittäminen

Sen jälkeen määritä vain kehotemalli, joka selittää käyttäjän/ihmisen syötteen rakenteen:

alkaen langchain. kehotteita . kehote tuonti PromptTemplate

sapluuna = '''Seuraava on koneen ja ihmisen välinen vuorovaikutus Se sanoo, että se ei tiedä Jos kone ei tiedä vastausta Kone (AI) antaa yksityiskohtia kontekstistaan ​​ja jos se ei ymmärrä vastausta mihinkään kysymykseen sanoo vain anteeksi

Entiteetin tiedot:

{entities}

Viestintä:

Ihminen: {input}

AI: '''


kehote = PromptTemplate ( input_variables = [ 'entiteetit' , 'syöttö' ] , sapluuna = sapluuna )

Vaihe 5: Mallin testaus

Ennen kuin testaat mallia, määritä LLM käyttämällä OpenAI()-menetelmää ja määritä ConversationChain()-funktio argumenteilla:

llm = OpenAI ( lämpötila = 0 )

keskustelu = Keskusteluketju (

llm = llm , kehote = kehote , monisanainen = Totta , muisti = SpaceEntityMemory ( )

)

Anna mallille tiedot syöteargumentilla, kun kutsut ennusta()-menetelmää keskustelumuuttujan kanssa:

keskustelu. ennustaa ( syöttö = 'Harrison pitää koneoppimisesta' )

Lähtö

Malli on omaksunut tiedon ja tallentanut sen muistiin ja esittänyt myös tiedoista kysymyksen keskustelun jatkamiseksi:

Käyttäjä voi vastata mallin kysymykseen lisätäkseen lisätietoa muistiin tai testata muistia esittämällä kysymyksen tiedoista:

keskustelu. ennustaa (

syöttö = 'Mikä on Harrisonin suosikkiaihe'

)

Malli antaa tulosteen aikaisempien tietojen perusteella ja näyttää sen näytöllä seuraavan katkelman mukaisesti:

Siinä on kyse mukautetun muistityypin lisäämisestä LangChainissa.

Johtopäätös

Jos haluat lisätä mukautetun muistityypin LangChainissa, asenna tarvittavat moduulit kirjastojen tuontia varten mukautetun muistin rakentamiseksi. SpaCy on tärkeä kirjasto, jota käytetään tässä oppaassa mukautetun muistin lisäämiseen sen NLP-mallin avulla. Tämän jälkeen määritä mukautettu muisti ja kehotemalli antamaan chat-liittymän rakenne. Kun asetukset on tehty, testaa mallin muistia pyytämällä tallennettuihin tietoihin liittyviä tietoja.