Hvordan legge til minne til en kjede med flere innganger i LangChain?

Hvordan Legge Til Minne Til En Kjede Med Flere Innganger I Langchain



Chatboter og store språkmodeller brukes av millioner over hele verden, og disse modellene kan generere tekst på kommando. LangChain er et av de mest effektive og effektive rammeverkene som gjør det mulig for utviklere å bygge slike modeller og roboter. Brukeren gir spørsmål eller spørringer som input, og modellen forstår kommandoen før den genererer teksten som virker mest relatert eller som kommandoen.

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 du
import 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 filer

lastet 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 ÅpneAIEbeddings

fra 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_chain

fra 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 menneske
Gitt 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.