Quick Outline
Tämä viesti näyttää:
Kuinka lisätä mukautettu muistityyppi LangChainissa
- Kehysten asentaminen
- Kirjastojen tuonti
- Mukautetun muistin rakentaminen
- Kehotemallin määrittäminen
- Mallin testaus
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 langchainYllä 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 Perusmuistialkaen 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 tilavanlp = 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 PromptTemplatesapluuna = '''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.