Denne veiledningen vil illustrere prosessen med å legge til minne til en kjede med flere innganger i LangChain.
Hvordan legge til minne til en kjede med flere innganger i LangChain?
Minnet kan legges til LLM-ene eller chatbotene for å lagre de nyeste meldingene eller dataene slik at modellen kan forstå konteksten til kommandoen. For å lære prosessen med å legge til minne til en kjede med flere innganger i LangChain, gå ganske enkelt gjennom følgende trinn:
Trinn 1: Installer moduler
Installer først LangChain-rammeverket, da det har en rekke avhengigheter for å bygge språkmodeller:
pip installer langkjede
Installer chromadb for å lagre dataene som brukes av minnet i Chroma vektorlageret:
pip installer chromadb
Tiktoken er tokenizeren som brukes til å lage små biter av store dokumenter slik at de enkelt kan administreres:
pip installer tiktoken
OpenAI er modulen som kan brukes til å bygge kjeder og LLM-er ved å bruke OpenAI()-metoden:
pip installer openai
Trinn 2: Konfigurer miljø og last opp data
Det neste trinnet etter å ha installert alle nødvendige moduler for denne prosessen er sette opp miljøet ved å bruke API-nøkkelen fra OpenAI-kontoen:
import duimport få pass
du . omtrent [ 'OPENAI_API_KEY' ] = få pass . få pass ( 'OpenAI API Key:' )
Last opp dokumentene ved å bruke filbiblioteket for å bygge kjedene i LangChain-rammeverket:
fra Google. ET AL import filerlastet opp = filer. laste opp ( )
Trinn 3: Importer biblioteker
Når dokumentet er lastet opp, importerer du ganske enkelt de nødvendige bibliotekene fra Langchain-modulen:
fra langkjede. innebygginger . openai import ÅpneAIEbeddingsfra langkjede. innebygginger . henge sammen import CohereEmbeddings
fra langkjede. tekstsplitter import CharacterTextSplitter
fra langkjede. vektorbutikker . elastic_vector_search import ElasticVectorSearch
fra langkjede. vektorbutikker import Chroma
fra langkjede. lege . dokument import Dokument
Trinn 4: Bygg minne ved å bruke Chroma-databasen
Begynn nå å bygge vektorrommet for å lagre innebyggingene og symbolene til dokumentet lastet opp tidligere:
med åpen ( 'state_of_the_union.txt' ) som f:nasjonens tilstand = f. lese ( )
tekstsplitter = CharacterTextSplitter ( chunk_size = 1000 , chunk_overlapp = 0 )
tekster = tekstsplitter. delt_tekst ( nasjonens tilstand )
innebygginger = ÅpneAIEbeddings ( )
Konfigurer Chroma-databasen for lagring av tekst og innebygging fra dokumentet:
docsearch = Chroma. fra_tekster (tekster , innebygginger , metadata = [ { 'kilde' : Jeg } til Jeg i område ( bare ( tekster ) ) ]
)
Test minnet ved å spørre kommandoen i spørringsvariabelen og utfør deretter similarity_search()-metoden:
spørsmål = 'Når ble NATO dannet'dokumenter = docsearch. likhetssøk ( spørsmål )
Trinn 5: Konfigurere ledetekstmal
Dette trinnet forklarer prosessen med å konfigurere malen for ledetekstene ved å importere følgende biblioteker:
fra langkjede. kjeder . spørsmål_svarer import load_qa_chainfra langkjede. llms import OpenAI
fra langkjede. spør import PromptTemplate
fra langkjede. hukommelse import ConversationBufferMemory
Deretter konfigurerer du bare malen eller strukturen for spørringen og kjører kjeden når minnet er lagt til modellen:
mal = '''Du er en modell som snakker med et menneskeGitt bitene hentet fra et langt dokument og et spørsmål, lag et endelig svar
{kontekst}
{histo}
Menneske: {input}
Chatbot:'''
ledetekst = PromptTemplate (
input_variables = [ 'hist' , 'inngang' , 'kontekst' ] , mal = mal
)
hukommelse = ConversationBufferMemory ( minnenøkkel = 'hist' , input_key = 'inngang' )
kjede = load_qa_chain (
OpenAI ( temperatur = 0 ) , kjedetype = 'ting' , hukommelse = hukommelse , ledetekst = ledetekst
)
Trinn 6: Testing av minnet
Her er tiden for å teste modellen ved å stille spørsmålet ved å bruke spørringsvariabelen og deretter utføre chain()-metoden med dens parametere:
spørsmål = 'Når ble NATO dannet'kjede ( { 'input_documents' : dokumenter , 'inngang' : spørring } , return_only_outputs = ekte )
Skriv ut dataene som er lagret i bufferminnet ettersom svaret gitt av modellen nylig er lagret i minnet:
skrive ut ( kjede. hukommelse . buffer )
Det handler om å legge til minne til en kjede med flere innganger i LangChain.
Konklusjon
For å legge til minne til en kjede med flere innganger i LangChain, installer ganske enkelt modulene og vektorlageret for å lagre teksten og innebyggingene. Deretter laster du opp dataene/dokumentet fra det lokale systemet og importerer deretter de nødvendige bibliotekene for å lagre dataene for å bygge minnet for LLM. Konfigurer forespørselsmalen til å lagre de siste meldingene i bufferminnet, og send tekstmeldinger til kjeden. Denne veiledningen har utdypet prosessen med å legge til minne til en kjede med flere innganger i LangChain.