Tämä opas havainnollistaa keskusteluyhteenvetopuskurin käyttöä LangChainissa.
Kuinka käyttää keskusteluyhteenvetopuskuria LangChainissa?
Keskustelu voi sisältää useita viestejä, jotka ovat kuin ihmisen ja koneen välistä vuorovaikutusta, ja puskuri voi tallentaa uusimmat viestit. The ConversationSummaryBufferMemory kirjastoa käytetään yhdistämään molemmat käsitteet, kuten uusimpien viestien tallentaminen ja niiden yhteenvedon purkaminen.
Oppiaksesi keskusteluyhteenvetopuskurin käyttämisen LangChainissa, käy läpi seuraava opas:
Vaihe 1: Asenna moduulit
Asenna ensin LangChain-moduuli pip-komennolla saadaksesi tarvittavat kirjastot:
pip asennus langchain
Asenna tikttoken-tokenizer, jonka avulla voit jakaa tekstiasiakirjat pieniksi paloiksi:
pip asentaa tiktoken
Asenna sen jälkeen OpenAI-moduulit, joilla voidaan rakentaa kielimalleja, kuten LLM:itä ja ketjuja:
pip install openai
Nyt, perustaa ympäristöä hankkimalla API-avaimen OpenAI-tililtä ja käyttämällä sitä mallissa:
tuonti sinätuonti getpass
sinä . suunnilleen [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API Key:' )
Vaihe 2: Keskustelun yhteenvetopuskurin käyttäminen
Aloita keskustelun yhteenvetopuskurin käyttö tuomalla kirjastot LLM:n rakentamiseksi OpenAI()-menetelmällä:
alkaen langchain. muisti tuonti ConversationSummaryBufferMemoryalkaen langchain. llms tuonti OpenAI
llm = OpenAI ( )
Rakenna muisti käyttämällä ConversationSummaryBufferMemory() -menetelmää ja tallenna keskustelu sitten muistiin:
muisti = ConversationSummaryBufferMemory ( llm = llm , max_token_limit = 10 )muisti. save_context ( { 'syöttö' : 'Hei' } , { 'lähtö' : 'Miten menee' } )
muisti. save_context ( { 'syöttö' : 'Minulle kuuluu hyvää Entä sinulle' } , { 'lähtö' : 'ei paljon' } )
Suorita nyt muisti soittamalla load_memory_variables () menetelmä viestien poimimiseksi muistista:
muisti. load_memory_variables ( { } )
Käytä nyt keskustelun puskurin yhteenvetoa puskurin määrittämiseen rajoittamalla puskuriin tallennettavien viestien määrää. Pura sen jälkeen yhteenveto näistä puskuriin tallennetuista viesteistä ja tallenna keskustelu sitten muistiin:
muisti = ConversationSummaryBufferMemory (llm = llm , max_token_limit = 10 , return_messages = Totta
)
muisti. save_context ( { 'syöttö' : 'Hei' } , { 'lähtö' : 'Miten menee' } )
muisti. save_context ( { 'syöttö' : 'Minulle kuuluu hyvää Entä sinulle' } , { 'lähtö' : 'ei paljon' } )
Hanki yhteenveto aiemmista puskurimuistiin tallennetuista viesteistä käyttämällä seuraavaa koodia:
viestejä = muisti. chat_memory . viestejäedellinen_yhteenveto = ''
muisti. ennustaa_uusi_yhteenveto ( viestejä , edellinen_yhteenveto )
Vaihe 3: Keskustelun yhteenvetopuskurin käyttäminen ketjussa
Rakenna ketjut käyttämällä Keskusteluketju() menetelmä, joka sisältää puskurimuistin arvon viestin tallentamiseksi siihen:
alkaen langchain. ketjut tuonti Keskusteluketjukeskustelu_yhteenvedon kanssa = Keskusteluketju (
llm = llm ,
muisti = ConversationSummaryBufferMemory ( llm = OpenAI ( ) , max_token_limit = 40 ) ,
monisanainen = Totta ,
)
keskustelu_yhteenvedon kanssa. ennustaa ( syöttö = 'Hei miten menee?' )
Anna syöttö tekstin muodossa käyttämällä ennustaa()-menetelmää saadaksesi yhteenvedon keskustelusta:
keskustelu_yhteenvedon kanssa. ennustaa ( syöttö = 'Työskentelen vain NLP-projektin parissa' )
Käytä mallin tulostetta ja lisää tietoja puskurimuistissa olevien sanomien avulla ja näytä sen yhteenveto:
keskustelu_yhteenvedon kanssa. ennustaa ( syöttö = 'Kyllä se on! Työskentelen LLM:ien suunnittelussa' )
Yhteenveto on, että tulos on helposti ymmärrettävä ja ihmisystävällisempi ja sopii paremmin chatboteille:
keskustelu_yhteenvedon kanssa. ennustaa (syöttö = 'Haluan käyttää LangChainia! Oletko kuullut siitä'
)
Siinä on kyse keskusteluyhteenvetopuskurin käytöstä LangChainissa.
Johtopäätös
Jos haluat käyttää keskusteluyhteenvetopuskurimuistia LangChainissa, asenna moduulit tai puitteet tarvittavien kirjastojen saamiseksi. Kun kirjastot on tuotu, luo LLM:t tai chatbotit ConverstaionSummaryBufferMemory()-funktion avulla saadaksesi yhteenvedon keskustelusta. Puskurimuistia käytetään rajoittamaan yhteenvedon purkamiseen käytettävien muistiin tallennettujen viestien määrää. Tässä viestissä on käsitelty keskusteluyhteenvetopuskurimuistin käyttöä LangChainissa.