Den här guiden kommer att illustrera processen att använda en konversationssammanfattningsbuffert i LangChain.
Hur man använder en konversationssammanfattningsbuffert i LangChain?
Konversation kan omfatta flera meddelanden som är som en interaktion mellan människa och maskin och bufferten kan lagra de senaste meddelandena. De ConversationSummaryBufferMemory bibliotek används för att kombinera båda koncepten som att lagra de senaste meddelandena och extrahera deras sammanfattning.
För att lära dig processen att använda konversationssammanfattningsbufferten i LangChain, gå helt enkelt igenom följande guide:
Steg 1: Installera moduler
Installera först LangChain-modulen med pip-kommandot för att få de nödvändiga biblioteken:
pip installera langkedja
Installera tiktoken tokenizer som kan användas för att dela upp textdokumenten i små bitar:
pip installera tiktoken
Därefter installerar du OpenAI-modulerna som kan användas för att bygga språkmodeller som LLM:er och kedjor:
pip installera openai
Nu, sätta upp miljön genom att hämta API-nyckeln från OpenAI-kontot och använda den i modellen:
importera duimportera getpass
du . ungefär [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API Key:' )
Steg 2: Använda konversationssammanfattningsbufferten
Starta processen med att använda konversationssammanfattningsbufferten genom att importera biblioteken för att bygga LLM med OpenAI()-metoden:
från långkedja. minne importera ConversationSummaryBufferMemoryfrån långkedja. llms importera OpenAI
llm = OpenAI ( )
Bygg minnet med metoden ConversationSummaryBufferMemory() och lagra sedan konversationen i minnet:
minne = ConversationSummaryBufferMemory ( llm = llm , max_token_limit = 10 )minne. save_context ( { 'inmatning' : 'Hallå' } , { 'produktion' : 'Hur mår du' } )
minne. save_context ( { 'inmatning' : 'Jag mår bra, du då' } , { 'produktion' : 'inte mycket' } )
Kör nu minnet genom att anropa load_memory_variables () metod för att extrahera meddelanden från minnet:
minne. load_memory_variables ( { } )
Använd nu buffertsammanfattningen av konversationen för att konfigurera bufferten genom att begränsa antalet meddelanden som ska lagras i bufferten. Efter det, extrahera sammanfattningen av dessa meddelanden lagrade i bufferten och lagra sedan konversationen i minnet:
minne = ConversationSummaryBufferMemory (llm = llm , max_token_limit = 10 , return_messages = Sann
)
minne. save_context ( { 'inmatning' : 'Hallå' } , { 'produktion' : 'Hur mår du' } )
minne. save_context ( { 'inmatning' : 'Jag mår bra, du då' } , { 'produktion' : 'inte mycket' } )
Få sammanfattningen av de tidigare meddelandena lagrade i buffertminnet med hjälp av följande kod:
meddelanden = minne. chat_memory . meddelandenföregående_sammanfattning = ''
minne. predict_new_summary ( meddelanden , föregående_sammanfattning )
Steg 3: Använda konversationssammanfattningsbufferten i en kedja
Bygg kedjorna med hjälp av ConversationChain() metod som innehåller värdet för buffertminnet för att lagra meddelandet i det:
från långkedja. kedjor importera ConversationChainkonversation_med_sammanfattning = ConversationChain (
llm = llm ,
minne = ConversationSummaryBufferMemory ( llm = OpenAI ( ) , max_token_limit = 40 ) ,
mångordig = Sann ,
)
konversation_med_sammanfattning. förutse ( inmatning = 'Hej läget?' )
Ange input i form av texten med metoden predict() för att få sammanfattningen av konversationen:
konversation_med_sammanfattning. förutse ( inmatning = 'Arbetar bara på NLP-projektet' )
Använd utdata från modellen och lägg till mer data med hjälp av meddelandena i buffertminnet och visa dess sammanfattning:
konversation_med_sammanfattning. förutse ( inmatning = 'ja det är det! Jag jobbar på att designa LLMs' )
Sammanfattningen är att resultatet blir lätt att förstå och mer mänskligt och är mer lämpligt för chatbots:
konversation_med_sammanfattning. förutse (inmatning = 'Jag vill använda LangChain! Har du hört talas om det'
)
Det handlar om att använda konversationssammanfattningsbufferten i LangChain.
Slutsats
För att använda konversationssammanfattningsbuffertminnet i LangChain, installera helt enkelt modulerna eller ramverken för att få de nödvändiga biblioteken. När biblioteken har importerats, bygg LLM:erna eller chatbotarna för att använda ConverstaionSummaryBufferMemory()-funktionen för att få sammanfattningen av konversationen. Buffertminnet används för att begränsa antalet meddelanden som är lagrade i minnet att använda för att extrahera sammanfattningen. Det här inlägget har utvecklat processen för att använda buffertminnet för konversationssammanfattningen i LangChain.